Sunteți pe pagina 1din 27

Operating

Systems
Lecture 19
Syed Mansoor Sarwar
Agenda for Today
 Review of previous lecture
 Process synchronization

 The Critical Section Problem

 Conditions for a Good Solution

 2-Process Critical Section


Problem Solutions
 Recap of lecture
14 September 2019 © Copyright Virtual University of
Pakistan
Review of Lecture 18
 UNIX System V scheduling
algorithm
 Algorithm Evaluation

 Process Synchronization

 The Critical Section Problem

14 September 2019 © Copyright Virtual University of


Pakistan
Bounded-Buffer Problem
Producer process
item nextProduced;

while (1) {
nextProduced = getNewItem();
while (counter == BUFFER_SIZE) ;
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
counter++;
}
14 September 2019 © Copyright Virtual University of
Pakistan
Bounded-Buffer Problem
Consumer process
item nextConsumed;
while (1) {
while (counter == 0) ;
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
counter--;
}
14 September 2019 © Copyright Virtual University of
Pakistan
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
14 September 2019 © Copyright Virtual University of
Pakistan
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.
14 September 2019 © Copyright Virtual University of
Pakistan
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
14 September 2019
result should be 5.
© Copyright Virtual University of
Pakistan
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.
14 September 2019 © Copyright Virtual University of
Pakistan
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
14 September 2019 © Copyright Virtual University of
Pakistan
Process
Synchronization
 More Examples
 Bank transactions
 Airline reservation

14 September 2019 © Copyright Virtual University of


Pakistan
Bank Transactions

D Balance W

Deposit Withdrawal
MOV A, Balance MOV B, Balance
ADD A, Deposited SUB B, Withdrawn
MOV Balance, A MOV Balance, B
14 September 2019 © Copyright Virtual University of
Pakistan
Bank Transactions

 Bank Transactions
 Current balance = Rs. 50,000
 Check deposited = Rs. 10,000
 ATM withdrawn = Rs. 5,000

14 September 2019 © Copyright Virtual University of


Pakistan
Bank Transactions
Check Deposit:
MOV A, Balance // A = 50,000
ADD A, Deposit ed // A = 60,000
ATM Withdrawal:
MOV B, Balance // B = 50,000
SUB B, Withdrawn // B = 45,000
Check Deposit:
MOV Balance, A // Balance = 60,000
ATM Withdrawal:
MOV Balance,
14 September 2019 © CopyrightB // ofBalance = 45,000
Virtual University
Pakistan
Solution of the Critical
Problem
 Software based solutions
 Hardware based solutions
 Operating system based
solution

14 September 2019 © Copyright Virtual University of


Pakistan
Structure of Solution
do {
entry section
critical section
exit section

reminder section
} while (1);
14 September 2019 © Copyright Virtual University of
Pakistan
Solution to Critical-
Section Problem
 2-Process Critical Section Problem
 N-Process Critical Section Problem
 Conditions for a good solution:
1. Mutual Exclusion: If a process is
executing in its critical section, then
no other processes can be executing
in their critical sections.
14 September 2019 © Copyright Virtual University of
Pakistan
Solution to Critical-
Section Problem
2. Progress: If no process is
executing in its critical section and
some processes wish to enter their
critical sections, then only those
processes that are not executing in
their remainder sections can
decide which process will enter its
critical section next, and this
decision cannot be postponed
indefinitely.
14 September 2019 © Copyright Virtual University of
Pakistan
Solution to Critical-
Section Problem
3. Bounded Waiting: A bound must
exist on the number of times that
other processes are allowed to
enter their critical sections after a
process has made a request to
enter its critical section and before
that request is granted.
14 September 2019 © Copyright Virtual University of
Pakistan
Solution to Critical-
Section Problem
 Assumptions
 Assume that each process
executes at a nonzero speed
 No assumption can be made
regarding the relative speeds of
the N processes.
14 September 2019 © Copyright Virtual University of
Pakistan
Possible Solutions
 Only 2 processes, P0 and P1
 Processes may share some common
variables to synchronize their actions.
 General structure of process Pi
do {
entry section
critical section
exit section
remainder section
14 September 2019
} while©(1);
Copyright Virtual University of
Pakistan
Algorithm 1
 Shared variables:
int turn;
initially turn = 0
turn = i  Pi can enter its
critical section

14 September 2019 © Copyright Virtual University of


Pakistan
Algorithm 1
 Process Pi
do {
while (turn != i)
;
critical section
turn = j;
remainder section
} while (1);
 Does not satisfy the progress condition
14 September 2019 © Copyright Virtual University of
Pakistan
Algorithm 2
Shared variables
 boolean flag[2]; // Set to false
 flag [i] = true  Pi ready to
enter its critical section

14 September 2019 © Copyright Virtual University of


Pakistan
Algorithm 2
 Process Pi
do {
flag[i] = true;
while (flag[j])
;
critical section
flag[i] = false;
remainder section
} while (1);
 14Does not satisfy© Copyright
September 2019
the Pakistan
progress
Virtual University of
condition
Recap of Lecture
 Process synchronization
 The Critical Section Problem

 Conditions for a Good Solution

 2-Process Critical Section


Problem Solutions
 Recap of lecture
14 September 2019 © Copyright Virtual University of
Pakistan
Operating
Systems
Lecture 19
Syed Mansoor Sarwar

S-ar putea să vă placă și