330 likes | 484 Views
Chapter 2: Processes. Topics Processes Threads Process Scheduling Inter Process Communication (IPC). Reference: Operating Systems Design and Implementation (Second Edition) by Andrew S. Tanenbaum, Albert S. Woodhull. Processes: The Process Model. a) Multiprogramming of four programs
E N D
Chapter 2: Processes Topics • Processes • Threads • Process Scheduling • Inter Process Communication (IPC) Reference: Operating Systems Design and Implementation (Second Edition) by Andrew S. Tanenbaum, Albert S. Woodhull
Processes: The Process Model a) Multiprogramming of four programs b) Conceptual model of 4 independent, sequential processes c) Only one program active at any instant
Process Hierarchies • Parent creates a child process, child processes can create its own process • Forms a hierarchy • UNIX calls this a "process group" • Windows has no concept of process hierarchy • all processes created are equal
Process States (1) • Possible process states • running • blocked • ready Transition among states
Process States (2) • Lowest layer of process-structured OS • handles interrupts, scheduling • Above that layer are sequential processes
The Thread Model (1) (a) Three processes each with one thread (b) One process with three threads
The Thread Model (2) Items shared by all threads Items private to each thread
The Thread Model (3) Each thread has its own stack
Thread Usage (1) A word processor with three threads
Implementing Threads in User Space • Advantage • Fast switching among threads A user-level threads package • Disadvantage • when one thread blocks, the kernel blocks the entire process
Implementing Threads in the Kernel A threads package managed by the kernel
Process Scheduling • When more than one process is runnable, the OS must decide which one to run first. • Scheduler makes this decision using some scheduling algorithm • Property of good scheduling algorithm • Fairness: Each process gets fair share of CPU • Efficiency: 100% utilization of CPU • Response time: minimize response time for users • Turnaround: minimize the time batch users must wait for output • Throughput: maximize the number of jobs processed per hour
Process Scheduling Algorithm • Round Robin Scheduling • Priority Scheduling • Shortest Job First • Guaranteed Scheduling • Lottery Scheduling
list of runnable processes after • B uses up its quantum • list of runnable processes Round Robin Scheduling(1) • Simplest, fairest and most widely used • Each process is assigned a quantum (time interval) which it is allowed to run • If the process is still running at the end of quantum, the CPU is preempted and given to another process • Also the CPU switches when a process blocks • All Processes are equally important
Round Robin Scheduling(2) • Suppose quantum is 20 ms and context switch takes 5 ms (total 25 ms) Cause 20% CPU time wastage • If quantum is 500 ms Cause less than 1% CPU time wastage but poor response time
Priority Scheduling • Each process is assigned a priority and the runnable process with the highest priority is allowed to run • To prevent high-priority processes from running indefinitely, the scheduler may decrease the priority of currently running process at each clock tick. • I/O bound processes are given highest priority A scheduling algorithm with four priority classes Round Robin
Shortest Job First • Appropriate for batch jobs • Mean Turnaround time is optimal • Consider 4 jobs with run time of a, b, c and d respectively. • The mean turnaround time is (4a +3b +2c + d)/4 Shortest job first scheduling
Interprocess Communication (IPC) • Processes frequently need to communicate with other processes. • Example • In a shell pipeline, the output of the first process must be passed to the second process • Generally shared memory is used to establish the connection among processes. • This memory must be shared carefully to avoid inconsistency
IPC: Race Condition Two processes want to access shared memory at same time Race Condition The situation where 2 or more processes are reading or writing some shared data is called race condition
IPC: Critical Regions (1) Critical Region/ Critical Section The part of the program where the shared memory is accessed is called the critical region Four conditions to provide mutual exclusion • No two processes simultaneously in critical region • No assumptions made about speeds or numbers of CPUs • No process running outside its critical region may block another process • No process must wait forever to enter its critical region
IPC: Critical Regions (2) Mutual exclusion using critical regions
How to Manage Race Condition • Mutual Exclusion with Busy Waiting • Strict Alternation • Peterson’s Solution • Mutual Exclusion without Busy Waiting • Sleep and wakeup • Semaphore • Message Passing • Monitor
Strict Alternation Process 1 Process 2 Drawback • Not a good idea when one process is much slower than the • other. Why? • Wastage of CPU time by busy waiting
Peterson’s Solution Drawback Busy Waiting
Sleep and Wakeup: Consumer Producer Problem Drawback Both may sleep forever Solution Use wakeup waiting bit What happens if more than one consumer? More waiting bit ? Problem is still there.
Semaphores: Consumer Producer Problem(1) • Semaphore • An integer to keep count of wakeups saved for future use • Down (semaphore) • If value > 0, Decrement it and continue (one stored wakeup is used) • If value = 0, Process is put to sleep without completing Down • Up (semaphore) • if one or more processes were sleeping on that semaphore (unable to • complete down operation), one of them is chosen by the system at • random and allowed to complete its Down Atomic Action Checking value, changing it and possibly going to sleep
Semaphores: Consumer Producer Problem(2) NO busy wait
Monitors (1) • One have to be very careful while • using semaphore • Monitor is like class where only one • procedure is active at one time • It is sufficient to put only the critical regions into monitor procedures as no two processes will ever execute their critical regions at the same time
Monitors (2) Block when buffer full Only one monitor procedure active at one time Send signal when buffer has one more slot
Monitors (3) Solution to producer-consumer problem in Java (part 1)
Monitors (4) Solution to producer-consumer problem in Java (part 2)
Message Passing • No shared memory • N message is analogous to • N slots in a shared buffer