Download presentation
Presentation is loading. Please wait.
Published byWilfrid Hawkins Modified over 8 years ago
1
Chapter 3: Processes
2
3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Outline n Process Concept n Process Scheduling n Operations on Processes n Cooperating Processes n Interprocess Communication n Communication in Client-Server Systems
3
3.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Process Concept n An OS executes a variety of programs: Batch system – jobs Time-shared systems – user programs or tasks l Textbook uses the terms job and process almost interchangeably Process – a program in execution; process execution must progress in sequential fashion l A process includes: program counter stack data section
4
3.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Process in Memory
5
3.5 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Process State n As a process executes, it changes state l new : The process is being created l running : Instructions are being executed l waiting : The process is waiting for some event to occur l ready : The process is waiting to be assigned to a processor l terminated : The process has finished execution
6
3.6 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Diagram of Process State
7
3.7 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Process Control Block (PCB) Information associated with each process n Process state n Program counter n CPU registers n CPU scheduling information n Memory-management information n Accounting information n I/O status information
8
3.8 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Process Control Block (PCB)
9
3.9 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 CPU Switch From Process to Process
10
3.10 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Process Scheduling Queues Job queue – set of all processes in the system Ready queue – set of all processes residing in main memory, ready and waiting to execute Device queues – set of processes waiting for an I/O device n Processes migrate among the various queues
11
3.11 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Ready Queue and Various I/O Device Queues
12
3.12 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Representation of Process Scheduling
13
3.13 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Schedulers Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU
14
3.14 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Addition of Medium Term Scheduling
15
3.15 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Schedulers (Cont.) n Short-term scheduler is invoked very frequently (milliseconds) must be fast n Long-term scheduler is invoked very infrequently (seconds, minutes) may be slow n The long-term scheduler controls the degree of multiprogramming n Processes can be described as either: I/O-bound process – spends more time doing I/O than computations, many short CPU bursts CPU-bound process – spends more time doing computations; few very long CPU bursts
16
3.16 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Context Switch n When CPU switches to another process, the system must save the state of the old process and load the saved state for the new process n Context-switch time is overhead; the system does no useful work while switching n Time dependent on hardware support
17
3.17 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Process Creation n Parent process create children processes, which, in turn create other processes, forming a tree of processes n Resource sharing l Parent and children share all resources Children share subset of parent ’ s resources l Parent and child share no resources n Execution l Parent and children execute concurrently l Parent waits until children terminate
18
3.18 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Process Creation (Cont.) n Address space l Child duplicate of parent l Child has a program loaded into it n UNIX examples l fork system call creates new process exec system call used after a fork to replace the process ’ memory space with a new program
19
3.19 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Process Creation
20
3.20 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 C Program Forking Separate Process int main() { pid_t pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1); } else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); } else { /* parent process */ /* parent will wait for the child to complete */ wait (NULL); printf ("Child Complete"); exit(0); }
21
3.21 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 A Tree of Processes on a Typical Solaris
22
3.22 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Process Termination n Process executes last statement and asks the OS to delete it ( exit ) l Output data from child to parent (via wait ) Process ’ resources are deallocated by OS n Parent may terminate execution of children processes ( abort ) l Child has exceeded allocated resources l Task assigned to child is no longer required l If parent is exiting Some OS do not allow child to continue if its parent terminates – All children terminated - cascading termination
23
3.23 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Cooperating Processes n Independent process cannot affect or be affected by the execution of another process n Cooperating process can affect or be affected by the execution of another process n Advantages of process cooperation l Information sharing l Computation speed-up l Modularity l Convenience
24
3.24 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Producer-Consumer Problem n Paradigm for cooperating processes, producer process produces information that is consumed by a consumer process l unbounded-buffer places no practical limit on the size of the buffer l bounded-buffer assumes that there is a fixed buffer size
25
3.25 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Bounded-Buffer – Shared-Memory Solution n Shared data #define BUFFER_SIZE 10 typedef struct {... } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; n Solution is correct, but can only use BUFFER_SIZE-1 elements
26
3.26 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Bounded-Buffer – Insert() Method while (true) { // Produce an item while (((in + 1) % BUFFER_SIZE) == out) ; // do nothing -- no free buffers buffer[in] = item; in = (in + 1) % BUFFER_SIZE; }
27
3.27 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Bounded Buffer – Remove() Method while (true) { while (in == out) ; // do nothing -- nothing to consume // remove an item from the buffer item = buffer[out]; out = (out + 1) % BUFFER_SIZE; } return item;
28
3.28 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Interprocess Communication (IPC) n Mechanism for processes to communicate and to synchronize their actions Message system – processes communicate with each other without resorting to shared variables n IPC facility provides two operations: send ( message ) – message size fixed or variable l receive ( message ) n If P and Q wish to communicate, they need to: l establish a communication link between them l exchange messages via send/receive n Implementation of communication link l physical (e.g., shared memory, hardware bus) l logical (e.g., logical properties)
29
3.29 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Implementation Questions n How are links established? n Can a link be associated with more than two processes? n How many links can there be between every pair of communicating processes? n What is the capacity of a link? n Is the size of a message that the link can accommodate fixed or variable? n Is a link unidirectional or bi-directional?
30
3.30 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Communications Models
31
3.31 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Direct Communication n Processes must name each other explicitly: send ( P, message ) – send a message to process P receive ( Q, message ) – receive a message from process Q n Properties of communication link l Links are established automatically l A link is associated with exactly one pair of communicating processes l Between each pair there exists exactly one link l The link may be unidirectional, but is usually bi- directional
32
3.32 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Indirect Communication n Messages are directed and received from mailboxes (also referred to as ports) l Each mailbox has a unique id l Processes can communicate only if they share a mailbox n Properties of communication link l Link established only if processes share a common mailbox l A link may be associated with many processes l Each pair of processes may share several communication links l Link may be unidirectional or bi-directional
33
3.33 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Indirect Communication n Operations l create a new mailbox l send and receive messages through mailbox l destroy a mailbox n Primitives are defined as: send ( A, message ) – send a message to mailbox A receive ( A, message ) – receive a message from mailbox A
34
3.34 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Indirect Communication n Mailbox sharing l P 1, P 2, and P 3 share mailbox A l P 1, sends; P 2 and P 3 receive l Who gets the message? n Solutions l Allow a link to be associated with at most two processes l Allow only one process at a time to execute a receive operation l Allow the system to select arbitrarily the receiver. Sender is notified who the receiver was
35
3.35 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Synchronization n Message passing: either blocking or non-blocking n Blocking is considered synchronous l Blocking send has the sender block until the message is received l Blocking receive has the receiver block until a message is available n Non-blocking is considered asynchronous l Non-blocking send has the sender send the message and continue l Non-blocking receive has the receiver receive a valid message or null
36
3.36 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Buffering n Queue of messages attached to the link; implemented in one of three ways 1.Zero capacity – 0 messages Sender must wait for receiver (rendezvous) 2.Bounded capacity – finite length of n messages Sender must wait if link full 3.Unbounded capacity – infinite length Sender never waits
37
3.37 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Client-Server Communication n Sockets n Remote Procedure Calls n Remote Method Invocation (Java)
38
3.38 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Sockets n A socket is defined as an endpoint for communication l Concatenation of IP address and port l The socket 161.25.19.8:1625 refers to port 1625 on host 161.25.19.8 n Communication consists between a pair of sockets
39
3.39 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Socket Communication
40
3.40 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Remote Procedure Calls n Remote procedure call (RPC) abstracts procedure calls between processes on networked systems Stubs – client-side proxy for the actual procedure on the server n The client-side stub locates the server and marshalls the parameters n The server-side stub receives this message, unpacks the marshalled parameters, and performs the procedure on the server
41
3.41 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Execution of RPC
42
3.42 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Remote Method Invocation n Remote Method Invocation (RMI) is a Java mechanism similar to RPCs n RMI allows a Java program on one machine to invoke a method on a remote object
43
3.43 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Marshalling Parameters
44
End of Chapter 3
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.