1 / 34

Implementing Processes, Threads, and Resources

Chapter 6. Implementing Processes, Threads, and Resources. P i CPU. P j CPU. P k CPU. …. P i Executable Memory. P j Executable Memory. P k Executable Memory. P i Address Space. P k Address Space. P j Address Space. Implementing the Process Abstraction. OS interface.

manchu
Download Presentation

Implementing Processes, Threads, and Resources

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 6 Implementing Processes, Threads, and Resources

  2. Pi CPU Pj CPU Pk CPU … Pi Executable Memory Pj Executable Memory Pk Executable Memory Pi Address Space Pk Address Space Pj Address Space Implementing the Process Abstraction OS interface OSAddress Space CPU ALU Machine Executable Memory Control Unit …

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

  4. 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)

  5. Thrdj in Pi Thrdk in Pi … Modern Processes and Threads … Pi CPU … … OS interface

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

  7. 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.

  8. 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.

  9. Files Other objects The Address Space Executable Memory Address Space Address Binding Process

  10. 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

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

  12. 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

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

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

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

  16. 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)

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

  18. 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

  19. 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

  20. ETHREAD EPROCESS KPROCESS Windows NT Thread Descriptor KTHREAD NT Kernel NT Executive

  21. Creating a Process in UNIX pid = fork(); UNIX kernel Process Table … Process Descriptor

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

  23. Windows NT Handles

  24. Simple State Diagram Request Done Running Request Schedule Start Allocate Ready Blocked

  25. 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

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

  27. 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.

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

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

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

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

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

  33. 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

More Related