Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Operating Systems Certificate Program in Software Development CSE-TC and CSIM, AIT September -- November, 2002 4. Processes and Threads (Ch. 4 S&G) Objectives chs 4 and 5 in the 6th ed. – a review of OS processes and threads OSes: 4. Processes 1 Overview 1. 2. 3. 4. 5. 6. OSes: 4. Processes Processes Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication (IPC) Client/Server Communication continued 2 7. Threads 8. Thread Types 9. Multithreading Models 10. Pthreads OSes: 4. Processes 3 1. Processes A process is an executing program. Each process has its own program counter, stack pointer, address space. Several processes may execute the same program, but they will have copies of the program data. OSes: 4. Processes 4 Process Control Block (PCB) Fig. 4.2., p.91 process next previous state Process ID (PID) program counter registers memory structure open file table etc OSes: 4. Processes 5 States of a Process dispatch new ready Fig. 4.1, p.90 running exit interrupt terminated event completed OSes: 4. Processes waiting I/O event or wait 6 2. Process Scheduling Job scheduler (long-term scheduler) – select processes from storage to add to ready queue CPU scheduler (short-term scheduler) – allocates a processor to a ready process OSes: 4. Processes 7 Queuing Diagram Fig. 4.5, p.95; VUW CS 305 ready queue I/O cpu I/O queue child executes join wait queue resource queue OSes: 4. Processes I/O request time slice expired fork a child resource request 8 Medium-term Scheduling swap in partially executed swapped out processes ready queue I/O OSes: 4. Processes Fig. 4.6, p.96 swap out cpu I/O queue end I/O request 9 Context Switching Switching from one process to another – often takes tens of microseconds Save executing process in its PCB – registers, program counter, state, … Load/reload OSes: 4. Processes a process from its PCB continued 10 OSes: 4. Processes 11 3. Operations on Processes Process creation (fork) – parent/child relationship – child is usually a copy of its parent – usually they continue in parallel Process termination – exit, abort, or kill Suspension – internal (wait) or external (resource wait) OSes: 4. Processes 12 4. Cooperating Processes Cooperating processes can affect each other – compare to independent processes Advantages of process cooperation: – information sharing, (possible) computation speed-up, modularity, convenience OSes: 4. Processes 13 Producer/Consumer A producer process produces information that is consumed by a consumer process. Many variations, e.g.: – unbounded-buffer – bounded-buffer shared memory buffer p OSes: 4. Processes c 14 5. Interprocess Communication (IPC) IPC is allows processes to communicate and synchronize their actions. A message-based approach: – processes communicate without shared vars Two basic operations: – send(message) – receive(message) OSes: 4. Processes 15 Messaging Issues Message format Unidirectional, bi-directional? One-to-one, broadcasting, multicasting? Direct, indirect links? – names, locating, mailboxes Blocking (synchronous), non-blocking (asynchronous)? Sender/receiver buffering OSes: 4. Processes 16 6. Client/Server Communication A server is a program (or collection of cooperating programs) that provides services and/or manages resources on the behalf of other programs (its clients). OSes: 4. Processes 17 Client/Server Environment clients LAN or WAN network Server OSes: 4. Processes Data 18 Example The ATM network: – the clients are the ATM machines user interfaces; some simple application processing – the server is at the bank most application processing; very large database of customer accounts OSes: 4. Processes 19 Architectural Requirements Reliable, robust communication between the clients and server. Client/server cooperation – started by the client Application processing is usually distributed between a client and the server. Server controls services/data that the client accesses. Server handles conflicting requests. OSes: 4. Processes 20 Communication Types Sockets – (TCP) sockets are like telephones – the client and server sockets are the endpoints of their communications link Remote Procedure Calls (RPC) – the client ‘calls’ a function in the server Remote Method Invocation (RMI) – the Java version of RPC OSes: 4. Processes 21 7. Threads A thread shares its data and OS resources (e.g. open files) with its peer threads Sharing and smaller size makes threads less expensive to create & context switch – sometimes called light-weight processes (LWPs) OSes: 4. Processes 22 Threads Diagram Fig. 4.8, p.104 PC PC PC peer threads shared data OSes: 4. Processes 23 Typical Thread States JUST_CREATED READY RUNNING BLOCKED OSes: 4. Processes 24 Typical Thread Operations fork() – creates a new thread sharing global structures yield() – yields processor, enters ready queue sleep() – yields processor, enters a wait queue finish() OSes: 4. Processes 25 Threading Issues Semantics of fork() and exec() calls Thread cancellation Signal handling Thread pools Thread specific data OSes: 4. Processes 26 8. Thread Types Kernel threads – useful for parallelising system features – e.g. Windows 9x/NT/2000, Linux User threads – scheduled within a user process – not seen by the kernel – e.g. POSIX Pthreads, Solaris threads OSes: 4. Processes 27 9. Multithreading Models Many-to-One One-to-One Many-to-Many OSes: 4. Processes 28 9.1 Many-to-One Many user-level threads are mapped to a single kernel thread (or process). Often used on systems that do not support kernel threads. OSes: 4. Processes 29 9.2. One-to-One Each user-level thread maps to a kernel thread. Examples – Windows 9x/NT/2000 – OS/2 OSes: 4. Processes 30 Windows 2000 Each – – – – OSes: 4. Processes thread contains a thread id a register set separate user and kernel stacks a private data storage area 31 9.3. Many-to-Many Model Allows many user level threads to be mapped to many kernel threads. Examples: – Solaris 2 – Windows NT/2000 with the ThreadFiber package OSes: 4. Processes 32 Solaris 2 Fig. 4.9, p.107 user threads tasks lwp lwp lwp lwp lwp lwp kernel threads kernel cpu OSes: 4. Processes cpu cpu 33 10. Pthreads A POSIX standard API for thread creation and synchronization. The API specifies the behavior of the thread library, but the implementation is up to the library developer. Commonly OSes: 4. Processes found in UNIX, and variants. 34