Download presentation
Presentation is loading. Please wait.
Published byWilfrid Morgan Modified over 9 years ago
1
OPERATING SYSTEMS DESIGN AND IMPLEMENTATION Third Edition ANDREW S. TANENBAUM ALBERT S. WOODHULL Yan hao (Wilson) Wu wwu@uwc.ac.za University of the Western Cape Computer Science Department
2
The Producer-Consumer Problem Producer Consume r 1 N -1 20 Buffer InOut Description: Producer and consumer share a buffer with N slots Producer: produce one data and put into a empty slot at one time. Block itself if no empty slot available l Consumer: consume one data a time. Block itself if no data available Out = Out % NIn = In % N
3
The Producer-Consumer Problem (1) Figure 2-13. The producer-consumer problem with a fatal race condition.
4
The Producer-Consumer Problem (2) Figure 2-13. The producer-consumer problem with a fatal race condition
5
The Producer-Consumer Problem Mutual exclusion Mutex: only one process or thread can operate a slot at a time Synchronization empty: indicate how many slots is empty now full: indicate how many slots is full now relationship: when “empty = empty -1”, “full = full +1” (P V)
6
Monitors (1) Figure 2-15. A monitor.
7
Monitors (2) Figure 2-16. An outline of the producer-consumer problem with monitors. Only one monitor procedure at a time is active. The buffer has N slots
8
The Producer-Consumer Problem (3) Figure 2-14. The producer-consumer problem using semaphores. Note:when buffer is full, producer will block at the second down with mutex =0 -> Deadlock: Producer block by empty semaphore, Consumer block by mutex semaphore
9
The Producer-Consumer Problem (4) Figure 2-14. The producer-consumer problem using semaphores.
10
Message Passing (1) Figure 2-17. The producer-consumer problem with N messages.
11
Message Passing (2)
12
The Dining Philosophers Problem (1) Figure 2-18. Lunch time in the Philosophy Department. There are 5 philosophers sitting at a round table. Between each adjacent pair of philosophers is a chopstick. In other words, there are five chopsticks. Each philosopher does two things: think and eat. The philosopher thinks for a while, and then stops thinking and becomes hungry. When the philosopher becomes hungry, he/she cannot eat until he/she owns the chopsticks to his/her left and right. When the philosopher is done eating he/she puts down the chopsticks and begins thinking again.
13
The Dining Philosophers Problem (2) Figure 2-19. A nonsolution to the dining philosophers problem. Deadlock->Starvation: All the programs continue to run indefinitely but fail to make any progress is called starvation
14
The Dining Philosophers Problem (3)
15
The Dining Philosophers Problem (4)
16
The Dining Philosophers Problem (5) Figure 2-20. A solution to the dining philosophers problem.
17
The Readers and Writers Problem (1)
18
The Readers and Writers Problem (2)
19
Process Behavior (1) Figure 2-22. Bursts of CPU usage alternate with periods of waiting for I/O. (a) A CPU-bound process. (b) An I/O-bound process.
20
When to Schedule When scheduling is absolutely required: 1. When a process exits. 2. When a process blocks on I/O, or a semaphore. When scheduling usually done (though not absolutely required) 1. When a new process is created. 2. When an I/O interrupt occurs. 3. When a clock interrupt occurs.
21
Scheduling Algorithms (1)
22
Scheduling Algorithms (2) Figure 2-24. An example of shortest job first scheduling. (a) Running four jobs in the original order. (b) Running them in shortest job first order.
23
Shortest Job First 8 4121620240 P1 P2 P3 P4 Turnaround time: P1 P2 P3 P4 average time:
24
Three Level Scheduling (1) Figure 2-25. Three-level scheduling.
25
Three Level Scheduling (2) Criteria for deciding which process to choose(memory scheduler): How long has it been since the process was swapped in or out? How much CPU time has the process had recently? How big is the process? How important is the process?
26
Round-Robin Scheduling Figure 2-26. Round-robin scheduling. (a) The list of runnable processes. (b) The list of runnable processes after B uses up its quantum.
27
Priority Scheduling Figure 2-27. A scheduling algorithm with four priority classes.
28
Real time scheduling 0 50 100 A:20ms 10ms B:50ms 25ms ABAB m ∑ i=1 CiCi PiPi <=1 Schedulable
29
Thread Scheduling (1) Figure 2-28. (a) Possible scheduling of user-level threads with a 50- msec process quantum and threads that run 5 msec per CPU burst.
30
Thread Scheduling (2) Figure 2-28. (b) Possible scheduling of kernel-level threads with the same characteristics as (a).
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.