Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 3: Processes. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Outline n Process Concept n Process.

Similar presentations


Presentation on theme: "Chapter 3: Processes. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Outline n Process Concept n Process."— Presentation transcript:

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


Download ppt "Chapter 3: Processes. 3.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts - 7 th Edition, Feb 7, 2006 Outline n Process Concept n Process."

Similar presentations


Ads by Google