Presentation is loading. Please wait.

Presentation is loading. Please wait.

Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Processes.

Similar presentations


Presentation on theme: "Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Processes."— Presentation transcript:

1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Processes

2 3.2 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Outline n Process Concept n Process Scheduling n Operations on Processes n Interprocess Communication n Examples of IPC Systems n Communication in Client-Server Systems

3 3.3 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Objectives n To introduce the notion of a process -- a program in execution, which forms the basis of all computation n To describe the various features of processes, including scheduling, creation and termination, and communication n To describe communication in client-server systems

4 3.4 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Process Concept n An OS executes a variety of programs: l Batch system – jobs l Time-shared systems – user programs or tasks l Textbook uses the terms job and process almost interchangeably n Process – a program in execution; process execution must progress in sequential fashion l A process includes:  program counter  stack  data section

5 3.5 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Process in Memory

6 3.6 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Process State n As a process executes, it changes state l new : being created l running : instructions are being executed l waiting : waiting for some event to occur l ready : waiting to be assigned to a processor l terminated : has finished execution

7 3.7 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Diagram of Process State

8 3.8 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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

9 3.9 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Process Control Block (PCB)

10 3.10 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition CPU Switch from Process to Process

11 3.11 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Process Scheduling Queues n Job queue – set of all processes in the system n Ready queue – set of all processes residing in main memory, ready and waiting to execute n Device queues – set of processes waiting for an I/O device n Processes migrate among various queues

12 3.12 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Ready Queue and Various I/O Device Queues

13 3.13 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Representation of Process Scheduling

14 3.14 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Schedulers n Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue n Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU

15 3.15 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Addition of Medium Term Scheduling swapping

16 3.16 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Schedulers (Cont) n Short-term scheduler: invoked very frequently (milliseconds)  (must be fast) n Long-term scheduler: invoked very infrequently (seconds, minutes)  (may be slow) l The long-term scheduler controls the degree of multiprogramming n Processes can be described as either: l I/O-bound process – spends more time doing I/O than computations, many short CPU bursts l CPU-bound process – spends more time doing computations; few very long CPU bursts

17 3.17 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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 via a context switch n Context of a process represented in the PCB n Context-switch time is overhead; the system does no useful work while switching n Time dependent on hardware support

18 3.18 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Process Creation n Parent process create children processes, which, in turn create other processes, forming a tree of processes l Generally, process identified and managed via a process identifier ( pid ) n Resource sharing l Parent and children share all resources l 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

19 3.19 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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 l exec() system call used after a fork() to replace the process’ memory space with a new program

20 3.20 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Process Creation

21 3.21 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition C Program Forking Separate Process (Fig. 3.10) 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); }

22 3.22 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Process Creation in Win32 API (Fig. 3.12) n CreateProcess() l Similar to fork() in UNIX n WaitForSingleObject() l Similar to wait() in UNIX n CloseHandle() l Similar to exit() in UNIX

23 3.23 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition A Tree of Processes on a Typical Solaris

24 3.24 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Process Termination n Process executes last statement and asks the OS to delete it ( exit ) l Output data from child to parent (via wait ) l 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

25 3.25 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Interprocess Communication n Processes within a system may be independent or cooperating l Cooperating process can affect or be affected by other processes, including sharing data l Cooperating processes need interprocess communication ( IPC ) n Two models of IPC l Shared memory l Message passing

26 3.26 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Communications Models

27 3.27 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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

28 3.28 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Producer-Consumer Problem n Paradigm for cooperating processes, producer process produces information that is consumed by a consumer process l unbounded-buffer : no practical limit on buffer size l bounded-buffer : a fixed buffer size

29 3.29 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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

30 3.30 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Bounded-Buffer – Producer (Fig. 3.14) while (true) { /* Produce an item */ while (((in + 1) % BUFFER_SIZE) == out) ; // do nothing - no free buffers buffer[in] = item; in = (in + 1) % BUFFER_SIZE; }

31 3.31 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Bounded Buffer – Consumer (Fig. 3.15) 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; }

32 3.32 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Interprocess Communication – Message Passing n Mechanism for processes to communicate and to synchronize their actions n Message system – processes communicate with each other without resorting to shared variables n IPC facility provides two operations: l 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)

33 3.33 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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?

34 3.34 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Direct Communication n Processes must name each other explicitly: l send ( P, message ) – send a message to process P l 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

35 3.35 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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

36 3.36 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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

37 3.37 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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

38 3.38 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Synchronization n Message passing may be 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

39 3.39 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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

40 3.40 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Examples of IPC Systems – POSIX (Fig. 3.16) n POSIX Shared Memory l Process first creates shared memory segment seg_id = shmget(IPC_PRIVATE, size, S_IRUSR | S_IWUSR); l Process wanting access to that shared memory must attach to it shared_memory = (char *) shmat(seg_id, NULL, 0); l Now the process could write to the shared memory sprintf(shared_memory, "Writing to shared memory"); l When done a process can detach the shared memory from its address space shmdt(shared_memory);

41 3.41 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Examples of IPC Systems - Mach n Mach: communication is message based l Even system calls are messages l Each task gets two mailboxes at creation - Kernel and Notify l Only three system calls needed for message transfer msg_send(), msg_receive(), msg_rpc() l Mailboxes needed for communication, created via port_allocate()

42 3.42 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Examples of IPC Systems – Windows XP n Message-passing centric via local procedure call (LPC) facility l Only works between processes on the same system l Uses ports (like mailboxes) to establish and maintain communication channels l Communication works as follows:  The client opens a handle to the subsystem’s connection port object  The client sends a connection request  The server creates two private communication ports and returns the handle to one of them to the client  The client and server use the corresponding port handle to send messages or callbacks and to listen for replies

43 3.43 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Local Procedure Calls in Windows XP

44 3.44 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Communications in Client-Server Systems n Sockets n Remote Procedure Calls n Pipes

45 3.45 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Sockets n A socket: an endpoint for communication l Concatenation of IP address and port l The socket 161.25.19.8:1625 : port 1625 on host 161.25.19.8 n Communication consists of a pair of sockets

46 3.46 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Socket Communication

47 3.47 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition BSD Socket n BSD Socket l socket() l close() n Server l bind() l listen() l accept() n Client l connect() n Data transfer l send()/read() l recv()/write()

48 3.48 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Example Java Socket Programs n An example Date server (Fig. 3.19) l ServerSocket l Socket  accept()  getOutputStream()  close() n An example Date client (Fig. 3.20) l Socket  getInputStream()

49 3.49 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Remote Procedure Calls n Remote procedure call (RPC) abstracts procedure calls between processes on networked systems n 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

50 3.50 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Execution of RPC

51 3.51 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Pipes n Acts as a conduit allowing two processes to communicate n Issues l Is communication unidirectional or bidirectional? l In the case of two-way communication, is it half or full-duplex? l Must there exist a relationship (i.e. parent-child) between the communicating processes? l Can the pipes be used over a network?

52 3.52 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Ordinary Pipes n Ordinary Pipes allow communication in standard producer-consumer style n Producer writes to one end (the write-end of the pipe) n Consumer reads from the other end (the read-end of the pipe) n Ordinary pipes are therefore unidirectional n Require parent-child relationship between communicating processes

53 3.53 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Ordinary Pipes

54 3.54 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Ordinary Pipes in UNIX n (Fig. 3.23 & Fig. 3.24) n Functions l pipe() l read() l write() l close()

55 3.55 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Anonymous Pipes in Windows n (Fig. 3.25-3.27) n Functions l CreatePipe() l WriteFile() l ReadFile() l CloseHandle()

56 3.56 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Named Pipes n Named Pipes are more powerful than ordinary pipes n Communication is bidirectional n No parent-child relationship is necessary between the communicating processes n Several processes can use the named pipe for communication n Provided on both UNIX and Windows systems

57 3.57 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Named Pipes in UNIX and Windows n FIFO in UNIX l mkfifo() l open() l read() l write() l close() n Named pipes in Windows l CreateNamedPipe() l ConnectNamedPipe() l ReadFile() l WriteFile()

58 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, End of Chapter 3


Download ppt "Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Processes."

Similar presentations


Ads by Google