Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 6 Implementing Processes, Threads, and Resources.

Similar presentations


Presentation on theme: "Chapter 6 Implementing Processes, Threads, and Resources."— Presentation transcript:

1

2 Chapter 6 Implementing Processes, Threads, and Resources

3 Implementing the Process Abstraction
Pi Address Space Pi CPU Pi Executable Memory Pj Address Space Pj CPU Pj Executable Memory Pk Address Space Pk CPU Pk Executable Memory OS interface OS Address Space CPU ALU Machine Executable Memory Control Unit

4 External View of the Process Manager
Application Program Device Mgr Process Mgr Memory Mgr File Mgr Windows CreateThread() CreateProcess() CloseHandle() WaitForSingleObject() fork() wait() exec() Device Mgr Process Mgr Memory Mgr File Mgr UNIX Hardware

5 Process Manager Responsibilities
Define & implement the essential characteristics of a process and thread Algorithms to define the behavior Data structures to preserve the state of the execution Define what “things” threads in the process can reference – the address space (most of the “things” are memory locations) Manage the resources used by the processes/threads Tools to create/destroy/manipulate processes & threads Tools to time-multiplex the CPU – Scheduling the (Chapter 7) Tools to allow threads to synchronization the operation with one another (Chapters 8-9) Mechanisms to handle deadlock (Chapter 10) Mechanisms to handle protection (Chapter 14)

6 Modern Processes and Threads
Thrdj in Pi Thrdk in Pi Pi CPU OS interface

7 Processes &Threads State Stack State Stack Map Address Space Map
Program Static data Resources

8 Process Address Space Process address space is the collection of addresses that a thread can reference. Normally, it refers to an executable memory location. However, due to the nature of a process, a process address space can also be associated with other machine abstract elements-such as, files, device registers and other objects.

9 Memory-Mapped-Resources
1. Most of the components in a computer system can be referenced by memory addresses. (One of the exception is the processor it self) 2. The address space provides a uniform mechanism by which a process can reference bytes in all memory-mapped resources. 3. Each resource manager is responsible for binding addresses with addressable elements of the resource.

10 The Address Space Process Executable Memory Address Space Address
Binding Process Files Other objects

11 Building the Address Space
Some parts are built into the environment Files System services Some parts are imported at runtime Mailboxes Network connections Memory addresses are created at compile (and run) time

12 Tracing the Hardware Process
Machine is Powered up Bootstap Process Manager Interrupt Handler P1 P,2 Pn Loader Load the kernel Initialization Execute a thread Schedule Hardware process progress Service an interrupt

13 Responsibilities of Process Manager
1. Process Creation and Termination 2. Thread Creation and Termination 3. Process/Thread Synchronization 4. Resource Allocation 5. Resource Protection 6. Co-operate with Device Manager to Implement I/O 7. Co-operate with the Memory Manager to Implement Memory Space

14 The Abstract Machine Interface
Application Program Abstract Machine Instructions Trap Instruction Supervisor Mode Instructions fork() create() open() OS User Mode Instructions User Mode Instructions

15 Context Switching-Abstract Machine switching
Executable Memory Initialization 1 Process Manager 9 6 4 2 5 8 3 7 Interrupt Interrupt Handler P1 P2 Pn

16 OS Families-Example POSIX Standard Description Release
POSIX system interfaces and headers SunOS 4.1 POSIX POSIX update Solaris 2.0 POSIX.1b-1993 real-time extensions Solaris 2.4 POSIX.1c-1996 threads extensions Solaris 2.6 POSIX shell and utilities Solaris 2.5 POSIX.2a-1992 interactive shell and utilities Solaris 2.5

17 Process Descriptors OS creates/manages process abstraction
Descriptor is data structure for each process Register values Logical state Type & location of resources it holds List of resources it needs Security keys etc. (see Table 6.1 and the source code of your favorite OS)

18 Windows NT Process Descriptor
EPROCESS void *UniqueProcessId; NT Executive KPROCESS uint32 KernelTime; uint32 UserTime; Byte state; NT Kernel

19 Windows NT Process Descriptor (2)
Kernel process object including: Pointer to the page directory Kernel & user time Process base priority Process state List of the Kernel thread descriptors that are using this process

20 Windows NT Process Descriptor (3)
Parent identification Exit status Creation and termination times. Memory status Security information executable image Process priority class used by the thread scheduler. A list of handles used by this process A pointer to Win32-specific information

21 Windows NT Thread Descriptor
EPROCESS KPROCESS ETHREAD KTHREAD NT Kernel NT Executive

22 Creating a Process in UNIX
pid = fork(); UNIX kernel Process Table Process Descriptor

23 Creating a Process in NT
CreateProcess(…); Win32 Subsystem ntCreateProcess(…); ntCreateThread(…); NT Executive Handle Table NT Kernel Process Descriptor

24 Windows NT Handles

25 Simple State Diagram Request Done Running Request Schedule Start
Allocate Blocked Ready

26 UNIX State Transition Diagram
Request Wait by parent Done Running zombie Schedule Request Sleeping I/O Request Start Allocate Runnable I/O Complete Resume Traced or Stopped Uninterruptible Sleep

27 Windows NT Thread States
CreateThread Terminated Initialized Reinitialize Activate Dispatch Exit Wait Waiting Ready Running Wait Complete Wait Complete Select Preempt Transition Dispatch Standby

28 Resources Resource: Anything that a process can request, then be blocked because that thing is not available. R = {Rj | 0  j < m} = resource types C = {cj  0 |  RjR (0  j < m)} = units of Rj available Reusable resource: After a unit of the resource has been allocated, it must ultimately be released back to the system. E.g., CPU, primary memory, disk space, … The maximum value for cj is the number of units of that resource Consumable resource: There is no need to release a resource after it has been acquired. E.g., a message, input data, … Notice that cj is unbounded.

29 Using the Model There is a resource manager, Mgr(Rj) for every Rj
pi can only request ni  cj units of reusable Rj pi can request unbounded # of units of consumable Rj Process pi can request units of Rj if it is currently running request Mgr(Rj) can allocate units of Rj to pi allocate Mgr(Rj) Process

30 A Generic Resource Manager
Blocked Processes Policy Process request() Process release() Resource Pool

31 Process Hierarchies Parent-child relationship may be significant: parent controls children’s execution Request Done Running Yield Suspend Request Schedule Suspend Start Ready-Active Activate Ready-Suspended Allocate Allocate Suspend Blocked-Active Blocked-Suspended Activate

32 Process Manager Overview
Program Process Abstract Computing Environment Deadlock Process Description File Manager Protection Synchronization Device Manager Memory Manager Resource Manager Scheduler Devices Memory CPU Other H/W

33 UNIX Organization Process Libraries Process Process
System Call Interface Deadlock Process Description File Manager Protection Synchronization Device Manager Memory Manager Resource Manager Scheduler Monolithic Kernel Devices Memory CPU Other H/W

34 Windows NT Organization
Process Process T T Process T T T T Libraries T T T Subsystem Subsystem Subsystem User I/O Subsystem NT Executive NT Kernel Hardware Abstraction Layer Processor(s) Main Memory Devices


Download ppt "Chapter 6 Implementing Processes, Threads, and Resources."

Similar presentations


Ads by Google