Chapter 3 Processes Operating System Concepts 9 th

  • Slides: 63
Download presentation
Chapter 3: Processes Operating System Concepts – 9 th Edition Silberschatz, Galvin and Gagne

Chapter 3: Processes Operating System Concepts – 9 th Edition Silberschatz, Galvin and Gagne © 2013

Chapter 3: Processes n Process Concept n Process Scheduling n Operations on Processes n

Chapter 3: Processes n Process Concept n Process Scheduling n Operations on Processes n Interprocess Communication n Examples of IPC Systems n Communication in Client-Server Systems Operating System Concepts – 9 th Edition 3. 2 Silberschatz, Galvin and Gagne © 2013

Process Concept n An operating system executes a variety of programs: Batch system –

Process Concept n An operating system executes a variety of programs: Batch system – jobs l Time-shared systems – user programs or tasks n Textbook uses the terms job and process almost interchangeably n Process – a program in execution; process execution must progress in sequential fashion l n Multiple parts l The program code, also called text section l Current activity including program counter, processor registers l Stack containing temporary data 4 Function parameters, return addresses, local variables l Data section containing global variables l Heap containing memory dynamically allocated during run time Operating System Concepts – 9 th Edition 3. 3 Silberschatz, Galvin and Gagne © 2013

Process Concept (Cont. ) n Program is passive entity stored on disk (executable file),

Process Concept (Cont. ) n Program is passive entity stored on disk (executable file), process is active l Program becomes process when executable file loaded into memory n Execution of program started via GUI mouse clicks, command line entry of its name, etc n One program can be several processes l Consider multiple users executing the same program Operating System Concepts – 9 th Edition 3. 4 Silberschatz, Galvin and Gagne © 2013

The Process Model (3) Figure 2 -1 (c) Only one program is active at

The Process Model (3) Figure 2 -1 (c) Only one program is active at any instant. Operating System Concepts – 9 th Edition 3. 5 Silberschatz, Galvin and Gagne © 2013

Process in Memory Operating System Concepts – 9 th Edition 3. 6 Silberschatz, Galvin

Process in Memory Operating System Concepts – 9 th Edition 3. 6 Silberschatz, Galvin and Gagne © 2013

Process State n As a process executes, it changes state l new: The process

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 Operating System Concepts – 9 th Edition 3. 7 Silberschatz, Galvin and Gagne © 2013

Process Creation Principal events that cause processes to be created: 1. System initialization. 2.

Process Creation Principal events that cause processes to be created: 1. System initialization. 2. Execution of a process creation system call by a running process. 3. A user request to create a new process. 4. Initiation of a batch job. Operating System Concepts – 9 th Edition 3. 8 Silberschatz, Galvin and Gagne © 2013

Process Termination Conditions that cause a process to terminate: 1. Normal exit (voluntary). 2.

Process Termination Conditions that cause a process to terminate: 1. Normal exit (voluntary). 2. Error exit (voluntary). 3. Fatal error (involuntary). 4. Killed by another process (involuntary). Operating System Concepts – 9 th Edition 3. 9 Silberschatz, Galvin and Gagne © 2013

Recall (61 C): What happens during execution? R 0 … R 31 F 0

Recall (61 C): What happens during execution? R 0 … R 31 F 0 … F 30 PC Addr 232 -1 Fetch Exec • Execution sequence: – – – Fetch Instruction at PC Decode Execute (possibly using registers) Write results to registers/mem PC = Next Instruction(PC) Repeat Operating System Concepts – 9 th Edition 3. 10 … Data 1 Data 0 Inst 237 Inst 236 … Inst 5 Inst 4 Inst 3 Inst 2 Inst 1 Inst 0 PC PC Addr 0 Silberschatz, Galvin and Gagne © 2013

Diagram of Process State • As a process executes, it changes state – new:

Diagram of Process State • As a process executes, it changes state – new: The process is being created – ready: The process is waiting to run – running: Instructions are being executed – waiting: Process waiting for some event to occur – terminated: The process has finished execution Operating System Concepts – 9 th Edition 3. 11 Silberschatz, Galvin and Gagne © 2013

Process Control Block (PCB) Information associated with each process (also called task control block)

Process Control Block (PCB) Information associated with each process (also called task control block) n Process state – running, waiting, etc n Program counter – location of instruction to next execute n CPU registers – contents of all process- centric registers n CPU scheduling information- priorities, scheduling queue pointers n Memory-management information – memory allocated to the process n Accounting information – CPU used, clock time elapsed since start, time limits n I/O status information – I/O devices allocated to process, list of open files Operating System Concepts – 9 th Edition 3. 12 Silberschatz, Galvin and Gagne © 2013

How do we multiplex processes? • The current state of process held in a

How do we multiplex processes? • The current state of process held in a process control block (PCB): – This is a “snapshot” of the execution and protection environment – Only one PCB active at a time • Give out CPU time to different processes (Scheduling): – Only one process “running” at a time – Give more time to important processes • Give pieces of resources to different processes (Protection): – Controlled access to non-CPU resources – Sample mechanisms: » Memory Mapping: Give each process their own address space » Kernel/User duality: Arbitrary multiplexing of I/O through system calls Operating System Concepts – 9 th Edition 3. 13 Process Control Block Silberschatz, Galvin and Gagne © 2013

CPU Switch From Process to Process Operating System Concepts – 9 th Edition 3.

CPU Switch From Process to Process Operating System Concepts – 9 th Edition 3. 14 Silberschatz, Galvin and Gagne © 2013

How can we give the illusion of multiple processors? CPU 1 CPU 2 CPU

How can we give the illusion of multiple processors? CPU 1 CPU 2 CPU 3 CPU 1 CPU 2 Time Shared Memory • Assume a single processor. How do we provide the illusion of multiple processors? – Multiplex in time! • Each virtual “CPU” needs a structure to hold: – Program Counter (PC), Stack Pointer (SP) – Registers (Integer, Floating point, others…? ) • How switch from one CPU to the next? – Save PC, SP, and registers in current state block – Load PC, SP, and registers from new state block • What triggers switch? – Timer, voluntary yield, I/O, other things Operating System Concepts – 9 th Edition 3. 15 Silberschatz, Galvin and Gagne © 2013

Process Scheduling n Maximize CPU use, quickly switch processes onto CPU for time sharing

Process Scheduling n Maximize CPU use, quickly switch processes onto CPU for time sharing n Process scheduler selects among available processes for next execution on CPU n Maintains scheduling queues of processes l Job queue – set of all processes in the system l Ready queue – set of all processes residing in main memory, ready and waiting to execute l Device queues – set of processes waiting for an I/O device l Processes migrate among the various queues Operating System Concepts – 9 th Edition 3. 16 Silberschatz, Galvin and Gagne © 2013

Process Scheduling • PCBs move from queue to queue as they change state –

Process Scheduling • PCBs move from queue to queue as they change state – Decisions about which order to remove from queues are Scheduling decisions – Many algorithms possible (few weeks from now) Operating System Concepts – 9 th Edition 3. 17 Silberschatz, Galvin and Gagne © 2013

What does it take to create a process? • Must construct new PCB –

What does it take to create a process? • Must construct new PCB – Inexpensive • Must set up new page tables for address space – More expensive • Copy data from parent process? (Unix fork() ) – Semantics of Unix fork() are that the child process gets a complete copy of the parent memory and I/O state – Originally very expensive – Much less expensive with “copy on write” • Copy I/O state (file handles, etc) – Medium expense Operating System Concepts – 9 th Edition 3. 18 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 19 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 19 Silberschatz, Galvin and Gagne © 2013

Schedulers n n Short-term scheduler (or CPU scheduler) – selects which process should be

Schedulers n n Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU l Sometimes the only scheduler in a system l Short-term scheduler is invoked frequently (milliseconds) (must be fast) Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue l Long-term scheduler is invoked infrequently (seconds, minutes) (may be slow) l The long-term scheduler controls the degree of multiprogramming 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 Long-term scheduler strives for good process mix Operating System Concepts – 9 th Edition 3. 20 Silberschatz, Galvin and Gagne © 2013

Context Switch n When CPU switches to another process, the system must save the

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 l The more complex the OS and the PCB the longer the context switch n Time dependent on hardware support l Some hardware provides multiple sets of registers per CPU multiple contexts loaded at once Operating System Concepts – 9 th Edition 3. 21 Silberschatz, Galvin and Gagne © 2013

Operations on Processes n System must provide mechanisms for: l process creation, l process

Operations on Processes n System must provide mechanisms for: l process creation, l process termination, l and so on as detailed next Operating System Concepts – 9 th Edition 3. 22 Silberschatz, Galvin and Gagne © 2013

Process =? Program main () { …; Stack } } A() { A main

Process =? Program main () { …; Stack } } A() { A main … … } Heap Program } Process • More to a process than just a program: – Program is just part of the process state – I run emacs on lectures. txt, you run it on homework. java – Same program, different processes • Less to a process than a program: – A program can invoke more than one process – cc starts up cpp, cc 1, cc 2, as, and ld Operating System Concepts – 9 th Edition 3. 23 Silberschatz, Galvin and Gagne © 2013

Multiple Processes Collaborate on a Task Proc 1 Proc 2 Proc 3 • High

Multiple Processes Collaborate on a Task Proc 1 Proc 2 Proc 3 • High Creation/memory Overhead • (Relatively) High Context-Switch Overhead • Need Communication mechanism: – Separate Address Spaces Isolates Processes – Shared-Memory Mapping » Accomplished by mapping addresses to common DRAM » Read and Write through memory – Message Passing » send() and receive() messages » Works across network Operating System Concepts – 9 th Edition 3. 24 Silberschatz, Galvin and Gagne © 2013

Shared Memory Communication Code Data Heap Stack Shared Data 2 Stack 1 Code Data

Shared Memory Communication Code Data Heap Stack Shared Data 2 Stack 1 Code Data Heap Stack Shared Heap 1 Code 1 Stack 2 Data 1 Prog 2 Prog 1 Heap 2 Virtual Address Code 2 Address Space 2 Space 1 Shared • Communication occurs by “simply” reading/writing to shared address page – Really low overhead communication – Introduces complex synchronization problems Operating System Concepts – 9 th Edition 3. 25 Silberschatz, Galvin and Gagne © 2013

Inter-process Communication (IPC) • Mechanism for processes to communicate and to synchronize their actions

Inter-process Communication (IPC) • Mechanism for processes to communicate and to synchronize their actions • Message system – processes communicate with each other without resorting to shared variables • IPC facility provides two operations: – send(message) – message size fixed or variable – receive(message) • If P and Q wish to communicate, they need to: – establish a communication link between them – exchange messages via send/receive • Implementation of communication link – physical (e. g. , shared memory, hardware bus, systcall/trap) – logical (e. g. , logical properties) Operating System Concepts – 9 th Edition 3. 26 Silberschatz, Galvin and Gagne © 2013

Process Creation n Parent process create children processes, which, in turn create other processes,

Process Creation n Parent process create children processes, which, in turn create other processes, forming a tree of processes n Generally, process identified and managed via a process identifier (pid) n Resource sharing options l Parent and children share all resources l Children share subset of parent’s resources l Parent and child share no resources n Execution options l Parent and children execute concurrently l Parent waits until children terminate Operating System Concepts – 9 th Edition 3. 27 Silberschatz, Galvin and Gagne © 2013

Providing Illusion of Separate Address Space: Load new Translation Map on Switch Data 2

Providing Illusion of Separate Address Space: Load new Translation Map on Switch Data 2 Code Data Heap Stack 1 Heap 1 Code 1 Stack 2 Prog 1 Virtual Address Space 1 Prog 2 Virtual Address Space 2 Data 1 Heap 2 Code 2 OS code Translation Map 1 OS data Translation Map 2 OS heap & Stacks Physical Address Space Operating System Concepts – 9 th Edition 3. 28 Silberschatz, Galvin and Gagne © 2013

A Tree of Processes in Linux Operating System Concepts – 9 th Edition 3.

A Tree of Processes in Linux Operating System Concepts – 9 th Edition 3. 29 Silberschatz, Galvin and Gagne © 2013

Process Creation (Cont. ) n Address space l Child duplicate of parent l Child

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 Operating System Concepts – 9 th Edition 3. 30 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 31 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 31 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 32 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 32 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 33 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 33 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 34 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 34 Silberschatz, Galvin and Gagne © 2013

SIMPLE FORK PROGRAM n #include <stdio. h> n main ( ) { n int

SIMPLE FORK PROGRAM n #include <stdio. h> n main ( ) { n int fork(void), value; n value = fork (); ***** Create New Process * n printf( "IN main: value = %dn", value); n } n In main: value =12719 n In main: value = 0 n Operating System Concepts – 9 th Edition 3. 35 Silberschatz, Galvin and Gagne © 2013

Continue FORK () EXAMPLE n main() n { n int i; n printf("simpfork: pid

Continue FORK () EXAMPLE n main() n { n int i; n printf("simpfork: pid = %dn", getpid()); n i = fork(); n printf("Did a fork. It returned %d. getpid = %d. getppid = %dn", n i, getpid(), getppid()); } n UNIX> simpfork n simpfork: pid = 914 n Did a fork. It returned 915. getpid = 914. getppid = 381 n Did a fork. It returned 0. getpid = 915. getppid = 914 n UNIX> Operating System Concepts – 9 th Edition 3. 36 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 37 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 37 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 38 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 38 Silberschatz, Galvin and Gagne © 2013

Process Termination n Process executes last statement and then asks the operating system to

Process Termination n Process executes last statement and then asks the operating system to delete it using the exit() system call. l Returns status data from child to parent (via wait()) l Process’ resources are deallocated by operating system n Parent may terminate the execution of children processes using the abort() system call. Some reasons for doing so: l Child has exceeded allocated resources l Task assigned to child is no longer required l The parent is exiting and the operating systems does not allow a child to continue if its parent terminates Operating System Concepts – 9 th Edition 3. 39 Silberschatz, Galvin and Gagne © 2013

Process Termination n Some operating systems do not allow child to exists if its

Process Termination n Some operating systems do not allow child to exists if its parent has terminated. If a process terminates, then all its children must also be terminated. l cascading termination. All children, grandchildren, etc. are terminated. l The termination is initiated by the operating system. n The parent process may wait for termination of a child process by using the wait()system call. The call returns status information and the pid of the terminated process pid = wait(&status); n If no parent waiting (did not invoke wait()) process is a zombie n If parent terminated without invoking wait , process is an orphan Operating System Concepts – 9 th Edition 3. 40 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 41 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 41 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 42 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 42 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 43 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 43 Silberschatz, Galvin and Gagne © 2013

Zombie Example Operating System Concepts – 9 th Edition 3. 44 Silberschatz, Galvin and

Zombie Example Operating System Concepts – 9 th Edition 3. 44 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 45 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 45 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 46 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 46 Silberschatz, Galvin and Gagne © 2013

Interprocess Communication n Processes within a system may be independent or cooperating n Cooperating

Interprocess Communication n Processes within a system may be independent or cooperating n Cooperating process can affect or be affected by other processes, including sharing data n Reasons for cooperating processes: l Information sharing l Computation speedup l Modularity l Convenience n Cooperating processes need interprocess communication (IPC) n Two models of IPC l Shared memory l Message passing Operating System Concepts – 9 th Edition 3. 47 Silberschatz, Galvin and Gagne © 2013

Communications Models (a) Message passing. Operating System Concepts – 9 th Edition (b) shared

Communications Models (a) Message passing. Operating System Concepts – 9 th Edition (b) shared memory. 3. 48 Silberschatz, Galvin and Gagne © 2013

Interprocess Communication – Shared Memory n An area of memory shared among the processes

Interprocess Communication – Shared Memory n An area of memory shared among the processes that wish to communicate n The communication is under the control of the users processes not the operating system. n Major issues is to provide mechanism that will allow the user processes to synchronize their actions when they access shared memory. n Synchronization is discussed in great details in Chapter 5. Operating System Concepts – 9 th Edition 3. 49 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 50 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 50 Silberschatz, Galvin and Gagne © 2013

Operating System Concepts – 9 th Edition 3. 51 Silberschatz, Galvin and Gagne ©

Operating System Concepts – 9 th Edition 3. 51 Silberschatz, Galvin and Gagne © 2013

Waite Example with Shared Operating System Concepts – 9 th Edition 3. 52 Silberschatz,

Waite Example with Shared Operating System Concepts – 9 th Edition 3. 52 Silberschatz, Galvin and Gagne © 2013

Wiate Example without Shared Operating System Concepts – 9 th Edition 3. 53 Silberschatz,

Wiate Example without Shared Operating System Concepts – 9 th Edition 3. 53 Silberschatz, Galvin and Gagne © 2013

Interprocess Communication – Message Passing n Mechanism for processes to communicate and to synchronize

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: send(message) l receive(message) l n The message size is either fixed or variable Operating System Concepts – 9 th Edition 3. 54 Silberschatz, Galvin and Gagne © 2013

Message Passing (Cont. ) n If processes P and Q wish to communicate, they

Message Passing (Cont. ) n If processes P and Q wish to communicate, they need to: Establish a communication link between them l Exchange messages via send/receive n Implementation issues: l l How are links established? l Can a link be associated with more than two processes? l How many links can there be between every pair of communicating processes? l What is the capacity of a link? l Is the size of a message that the link can accommodate fixed or variable? l Is a link unidirectional or bi-directional? Operating System Concepts – 9 th Edition 3. 55 Silberschatz, Galvin and Gagne © 2013

Message Passing (Cont. ) n Implementation of communication link Physical: 4 Shared memory 4

Message Passing (Cont. ) n Implementation of communication link Physical: 4 Shared memory 4 Hardware bus 4 Network l Logical: 4 Direct or indirect 4 Synchronous or asynchronous 4 Automatic or explicit buffering l Operating System Concepts – 9 th Edition 3. 56 Silberschatz, Galvin and Gagne © 2013

Direct Communication n Processes must name each other explicitly: l send (P, message) –

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 Operating System Concepts – 9 th Edition 3. 57 Silberschatz, Galvin and Gagne © 2013

Indirect Communication n Messages are directed and received from mailboxes (also referred to as

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 Operating System Concepts – 9 th Edition 3. 58 Silberschatz, Galvin and Gagne © 2013

Indirect Communication n Operations l create a new mailbox (port) l send and receive

Indirect Communication n Operations l create a new mailbox (port) 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 Operating System Concepts – 9 th Edition 3. 59 Silberschatz, Galvin and Gagne © 2013

Indirect Communication n Mailbox sharing l P 1, P 2, and P 3 share

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. Operating System Concepts – 9 th Edition 3. 60 Silberschatz, Galvin and Gagne © 2013

Synchronization n Message passing may be either blocking or non-blocking n Blocking is considered

Synchronization n Message passing may be either blocking or non-blocking n Blocking is considered synchronous n l Blocking send -- the sender is blocked until the message is received l Blocking receive -- the receiver is blocked until a message is available Non-blocking is considered asynchronous l Non-blocking send -- the sender sends the message and continue l Non-blocking receive -- the receiver receives: l A valid message, or l Null message n Different combinations possible l If both send and receive are blocking, we have a rendezvous Operating System Concepts – 9 th Edition 3. 61 Silberschatz, Galvin and Gagne © 2013

Buffering n Queue of messages attached to the link. n implemented in one of

Buffering n Queue of messages attached to the link. n implemented in one of three ways 1. Zero capacity – no messages are queued on a link. 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 Operating System Concepts – 9 th Edition 3. 62 Silberschatz, Galvin and Gagne © 2013

End of Chapter 3 Operating System Concepts – 9 th Edition Silberschatz, Galvin and

End of Chapter 3 Operating System Concepts – 9 th Edition Silberschatz, Galvin and Gagne © 2013