The document summarizes key points from a lecture on operating system scheduling algorithms. It discusses UNIX System V scheduling, algorithm evaluation methods like deterministic modeling, queuing modeling and simulation. It also covers process synchronization and the bounded buffer problem as an example where processes need synchronization to safely access shared data.
2. Agenda for Today
Review of previous lecture
UNIX System V scheduling
Algorithm evaluation
Process synchronization
Recap of lecture
19 September 2012 息 Copyright Virtual University of
Pakistan
3. Review of Lecture 17
Multi-level queues scheduling
Multi-level feedback queues
scheduling
UNIX System V scheduling
algorithm
19 September 2012 息 Copyright Virtual University of
Pakistan
4. UNIX System V
Scheduling Algorithm
Every second, the priority number of all
those processes that are in the main
memory and ready to run is updated by
using the following formula:
Priority# = (Recent CPU Usage)/2 + Thr. Pri.+ nice
Threshold priority and nice values are
always positive to prevent a user from
migrating out of its assigned group
19 September 2012 息 Copyright Virtual University of
Pakistan
5. UNIX System V Example
PA PB PC
CPU CPU CPU
Time Priority Count Priority Count Priority Count
60 0 60 0
0 60 0
1
60
75 30 60 0
1 1 60 0
30 60
2 67 15 75 30 60 0
1
30
15 60
3 63 7 67 75
8 30
67 30
4 76 33 63 7
8
67 15
67
68
19 September 2012
5 16息 Copyright Virtual University of
76 33 7
63
Pakistan
6. Round Robin Scheduling
and Process Priorities
60
Higher Priority
B
B A
A
A
1 2 3
B A B B A runs first
A
19 September 2012 息 Copyright Virtual University of
4 Pakistan
5 6
7. Algorithm Evaluation
Analytic Evaluation
The algorithm and some system
workload are used to produce a
formula or number which gives the
performance of the algorithm for that
workload.
Deterministic modeling
Queuing models
Implementation
19 September 2012 息 Copyright Virtual University of
Pakistan
8. Deterministic Modeling
Predetermined workload and
performance of each algorithm for
that workload. Use of Gantt charts.
Simple and fast
Exact numbers for comparison
Requires exact input
Performance figures may not be
true in general
19 September 2012 息 Copyright Virtual University of
Pakistan
10. Queuing Modeling
Computer system viewed as a
network of queues and servers:
ready queue, I/O queue, event
queues, CPUs, I/O device
controllers, etc.
Input: Arrival and service rates
Output: CPU utilization, average
queue length, average
waiting time,
19 September 2012 息 Copyright Virtual University of
Pakistan
11. Queuing Modeling
Littles Formula:
n = 了* W
where
n = average queue length
了 = average arrival rate
W = average waiting time in a
queue
19 September 2012 息 Copyright Virtual University of
Pakistan
12. Queuing Modeling
Let the average job arrival rate be 0.5
Algorithm Average Wait Average Queue
Time Length(n)
W=tw
FCFS 4.6 2.3
SJF 3.6 1.8
SRTF 3.2 1.6
RR (q=1) 7.0 3.5
RR (q=4)
19 September 2012
6.0
息 Copyright Virtual University of
3.0
Pakistan
13. Queuing Modeling
Complicated mathematics
Distributions (Poisson, uniform,
exponential, etc) for the arrival and
departure rates can be difficult to
work with
Assumptions may not be accurate
Approximation of the real system
19 September 2012 息 Copyright Virtual University of
Pakistan
14. Simulation
Programming model for the
computer system
Workload generated by
assuming some distribution and
a random number generator, or
by collecting data from the
actual system.
19 September 2012 息 Copyright Virtual University of
Pakistan
15. Simulation
Characteristics
Expensive: hours of
programming and execution
time
May be erroneous because
of the assumptions about
distributions
19 September 2012 息 Copyright Virtual University of
Pakistan
17. Implementation
Best
Most expensive
Good option due to Open
Source kernels such as Linux
19 September 2012 息 Copyright Virtual University of
Pakistan
18. Process
Synchronization
Concurrent access to shared
data may result in data
inconsistency.
Maintaining data consistency
requires mechanisms to ensure
that cooperating processes
access shared data
sequentially.
19 September 2012 息 Copyright Virtual University of
Pakistan
19. Bounded-Buffer Problem
Shared data
#define BUFFER_SIZE 10
typedef struct {
...
} item;
item buffer[BUFFER_SIZE];
int in = 0, out = 0;
int counter = 0;
19 September 2012 息 Copyright Virtual University of
Pakistan
20. Bounded-Buffer Problem
Producer process
item nextProduced;
while (1) {
while (counter == BUFFER_SIZE) ;
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
counter++;
}
19 September 2012 息 Copyright Virtual University of
Pakistan
21. Bounded-Buffer Problem
Consumer process
item nextConsumed;
while (1) {
while (counter == 0) ;
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
counter--;
}
19 September 2012 息 Copyright Virtual University of
Pakistan
22. Bounded-Buffer Problem
counter++ in assembly language
MOV R1, counter
INC R1
MOV counter, R1
counter-- in assembly language
MOV R2, counter
DEC R2
MOV counter, R2
19 September 2012 息 Copyright Virtual University of
Pakistan
23. Bounded-Buffer Problem
If both the producer and consumer
attempt to update the buffer
concurrently, the machine language
statements may get interleaved.
Interleaving depends upon how the
producer and consumer processes
are scheduled.
19 September 2012 息 Copyright Virtual University of
Pakistan
24. Bounded-Buffer Problem
Assume counter is initially 5. One
interleaving of statements is:
producer: MOV R1, counter (R1 = 5)
INC R1 (R1 = 6)
consumer: MOV R2, counter (R2 = 5)
DEC R2 (R2 = 4)
producer: MOV counter, R1 (counter = 6)
consumer: MOV counter, R2 (counter = 4)
The value of count may be either 4 or
6, where the correct resultofshould be 5.
19 September 2012 息 Copyright Virtual University
Pakistan
25. Process
Synchronization
Race Condition: The situation
where several processes access
and manipulate shared data
concurrently, the final value of the
data depends on which process
finishes last.
19 September 2012 息 Copyright Virtual University of
Pakistan
26. Process
Synchronization
Critical Section: A piece of code
in a cooperating process in which
the process may updates shared
data (variable, file, database, etc.).
Critical Section Problem:
Serialize executions of critical
sections in cooperating processes
19 September 2012 息 Copyright Virtual University of
Pakistan
27. Solution of the Critical
Problem
Software based solutions
Hardware based solutions
Operating system based
solution
19 September 2012 息 Copyright Virtual University of
Pakistan
28. Structure of Solution
do {
entry section
critical section
exit section
reminder section
} while (1);
19 September 2012 息 Copyright Virtual University of
Pakistan
29. Recap of Lecture
UNIX System V scheduling
Algorithm evaluation
Process synchronization
Recap of lecture
19 September 2012 息 Copyright Virtual University of
Pakistan