SlideShare a Scribd company logo
7
Most read
8
Most read
13
Most read
Presentation on Peterson
Algorithm for Critical Section
Problem Solution
1
By
Bipul Chandra kar (131-15-015 )
Mahadi Hasan (131-15-023)
Md.Mohaiminul Islam(132-15-114)
Consider system of n processes { P0 , P1 , …, Pn-1 }
Each process has a critical section segment of code
Process may be changing common variables, updating table, writing file,
etc.
When one process is in its critical section, no other may be executing in its
critical section
Critical-section problem is to design a protocol to solve this
Each process must ask permission to enter its critical section in entry section,
may follow critical section with exit section, the remaining code is in its
remainder section
2Critical Section Problem
Programs and critical sections
 The part of the program (process) that is
accessing and changing shared data is called its
critical section
3
Change X
Change X
Change Y
Change Y
Change Y
Change X
Process 1 Code Process 2 Code Process 3 Code
Assuming X and Y are shared data.
Critical Section
 The general way to do that is:
do {
critical section
remainder section
} while (TRUE)
do {
entry section
critical section
exit section
remainder
} while (TRUE)
Entry section will allow only one process to enter and execute critical section code.
4
Solution to Critical-Section Problem
1. Mutual Exclusion - If process Pi is executing in its critical section,
then no other processes can be executing in their critical sections
2. Progress - If no process is executing in its critical section and there
exist some processes that wish to enter their critical section, then
the selection of the processes that will enter the critical section
next cannot be postponed indefinitely
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.
 Assume that each process executes at a nonzero speed
 No assumption concerning relative speed of the N processes
5
Peterson’s Solution
 Two process solution
 Assume that the LOAD and STORE instructions are
atomic; that is, cannot be interrupted.
 The two processes share two variables:
 int turn;
 Boolean flag[2]
 The variable turn indicates whose turn it is to enter
the critical section.
 The flag array is used to indicate if a process is
ready to enter the critical section. flag[i] = true
implies that process Pi is ready!
6
Algorithm for Process Pi
7
do {
flag[i] = TRUE;
turn = j;
while (flag[j] && turn == j);
critical section
flag[i] = FALSE;
remainder section
} while (1)
entry section
exit section
Two processes executing concurrently 8
do {
flag1 = TRUE;
turn = 2;
while (flag2 && turn == 2);
critical section…..
flag1 = FALSE;
remainder section…..
} while (1)
do {
flag2 = TRUE;
turn = 1;
while (flag1 && turn == 1);
critical section…..
flag2 = FALSE;
remainder section…..
} while (1)
PROCESS 1 PROCESS 2
Shared Variables
flag1, flag2
turn
EXAMPLE 9
Process 0:
flag[0] := TRUE
turn := 1
check (flag[1] = TRUE and turn = 1)
- Condition is false because flag[1] = FALSE
- Since condition is false, no waiting in while loop
- Enters the critical section
Phase-1
Process 1:
flag[1] := TRUE
turn := 0
check (flag[0] = TRUE and turn = 0)
- Since condition is true, it keeps busy waiting until
it loses the processor
- Process 0 resumes and continues until it finishes
in the critical section
Phase-2
Process 0:
- Leaves critical section
Sets flag[0] := FALSE
- Start executing the remainder (anything else a process
does besides using the critical section)
- Process 0 happens to lose the processor
Phase-3
Process 1:
check (flag[0] = TRUE and turn = 0)
- This condition fails because flag[0] = FALSE
- No more busy waiting
-Enter the critical section
Phase-4
10
public class cSection {
int turn;
boolean flag[] = new boolean[2];
int i = 0, j = 1;
// CSC variables
int counter = 0;// counter for giving processes an upper bound
int cscVar = 13;
private class ProcessI extends Thread { // process thread for i
@Override
public void run() {
try {
do {
flag[i] = true;
turn = j;
while (flag[j] && turn == j)
; // wait for j to finish
// critical section
System.out.println("I is in critical section");
cscVar++;
System.out.println(cscVar);
counter++;
System.out.println("counter is " + counter + "n___________");
//
flag[i] = false;
// remainder section
} while (counter < 100); // 100 is upper bound, to remove
// infinite looping
}
Implementation
Implementation 11
catch (Exception ex) {
ex.printStackTrace();
}
}
}
private class ProcessJ extends Thread { // process thread for j
@Override
public void run() {
try {
do {
flag[j] = true;
turn = i;
while (flag[i] && turn == i)
;// wait for i to finish
// critical section
System.out.println("J is in critical section");
cscVar--;
System.out.println(cscVar);
counter++;
System.out.println("counter is " + counter + "n___________");
//
flag[j] = false;
// remainder section
} while (counter < 100); // 100 is upper bound, to remove
// infinite looping
}
12
catch (Exception ex) {
ex.printStackTrace();
}
}
}
public cSection() {
System.out.println("Starting Threads/Processes");
Thread I = new ProcessI();
Thread J = new ProcessJ();
I.start(); // start process i
J.start(); // start process j
}
public static void main(String[] args) {
cSection cSec = new cSection();
}
}
Implementation
Conclusion 13
• Simplest algorithm for critical section problem solution.
• Peterson algorithm satisfies the three key point of solving the critical section
problem
Thank You To All .
14

More Related Content

PPTX
Semaphore
PPT
Classical problem of synchronization
PPT
Chapter 6 - Process Synchronization
PPTX
Operating system 25 classical problems of synchronization
PDF
Semaphores
PPTX
Synchronization hardware
PDF
5 process synchronization
PPTX
Operating system critical section
Semaphore
Classical problem of synchronization
Chapter 6 - Process Synchronization
Operating system 25 classical problems of synchronization
Semaphores
Synchronization hardware
5 process synchronization
Operating system critical section

What's hot (20)

PPTX
Process synchronization in Operating Systems
PPTX
Semophores and it's types
PPT
Sliding window protocol
PDF
OS UNIT – 2 - Process Management
PPTX
Critical section problem in operating system.
PPT
Np cooks theorem
PPTX
Asymptotic Notation
PPTX
Process synchronization
PPT
16. Concurrency Control in DBMS
PDF
Code generation in Compiler Design
PPTX
Chapter 03 arithmetic for computers
PPTX
Data structure - Graph
PPTX
Deadlock dbms
PPTX
Methods for handling deadlock
PDF
Control Unit Design
PDF
OS - Process Concepts
PPTX
Lock based protocols
PDF
Code optimization in compiler design
PPTX
Greedy Algorithm - Knapsack Problem
PPT
1.Role lexical Analyzer
Process synchronization in Operating Systems
Semophores and it's types
Sliding window protocol
OS UNIT – 2 - Process Management
Critical section problem in operating system.
Np cooks theorem
Asymptotic Notation
Process synchronization
16. Concurrency Control in DBMS
Code generation in Compiler Design
Chapter 03 arithmetic for computers
Data structure - Graph
Deadlock dbms
Methods for handling deadlock
Control Unit Design
OS - Process Concepts
Lock based protocols
Code optimization in compiler design
Greedy Algorithm - Knapsack Problem
1.Role lexical Analyzer
Ad

Similar to Peterson Critical Section Problem Solution (20)

PPTX
Operatioooooooooooooooooooooooooooooooooooooooooooooo
PDF
Peterson’s Solution.pdf by Mustehsan Mehmood
PPTX
14- Process Synchronization.pptx
PPTX
Chapter6 Synchronization in Operating systems.pptx
PPTX
Synchronization Peterson’s Solution.pptx
PPTX
Critical Section Problem - Ramakrishna Reddy Bijjam
PDF
OperatingSystem-Unit2_Process Management
PPT
Operating System
PPTX
Critical Section Problem.pptx
PPTX
Lecture 8.pptx Operating system lecture
PPTX
MODULE 3 process synchronizationnnn.pptx
PPT
PPT
Process synchronization(deepa)
PPTX
operating system notes about deadlock 3.pptx
PDF
CH05.pdf
PDF
criticalsectionproblem-160905215747.pdf
PPTX
Operating system 23 process synchronization
PPT
os4-2_cop.ppt
PPT
Process Synchronization
DOCX
Critical section operating system
Operatioooooooooooooooooooooooooooooooooooooooooooooo
Peterson’s Solution.pdf by Mustehsan Mehmood
14- Process Synchronization.pptx
Chapter6 Synchronization in Operating systems.pptx
Synchronization Peterson’s Solution.pptx
Critical Section Problem - Ramakrishna Reddy Bijjam
OperatingSystem-Unit2_Process Management
Operating System
Critical Section Problem.pptx
Lecture 8.pptx Operating system lecture
MODULE 3 process synchronizationnnn.pptx
Process synchronization(deepa)
operating system notes about deadlock 3.pptx
CH05.pdf
criticalsectionproblem-160905215747.pdf
Operating system 23 process synchronization
os4-2_cop.ppt
Process Synchronization
Critical section operating system
Ad

Recently uploaded (20)

PPTX
UNIT - 3 Total quality Management .pptx
PPT
Total quality management ppt for engineering students
PPTX
Information Storage and Retrieval Techniques Unit III
PPT
introduction to datamining and warehousing
PDF
86236642-Electric-Loco-Shed.pdf jfkduklg
PDF
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
PDF
COURSE DESCRIPTOR OF SURVEYING R24 SYLLABUS
PDF
Exploratory_Data_Analysis_Fundamentals.pdf
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Integrating Fractal Dimension and Time Series Analysis for Optimized Hyperspe...
PPT
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
PDF
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
PDF
Visual Aids for Exploratory Data Analysis.pdf
PPTX
Current and future trends in Computer Vision.pptx
PDF
Human-AI Collaboration: Balancing Agentic AI and Autonomy in Hybrid Systems
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPTX
communication and presentation skills 01
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PDF
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
PPT
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...
UNIT - 3 Total quality Management .pptx
Total quality management ppt for engineering students
Information Storage and Retrieval Techniques Unit III
introduction to datamining and warehousing
86236642-Electric-Loco-Shed.pdf jfkduklg
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
COURSE DESCRIPTOR OF SURVEYING R24 SYLLABUS
Exploratory_Data_Analysis_Fundamentals.pdf
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Integrating Fractal Dimension and Time Series Analysis for Optimized Hyperspe...
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
Visual Aids for Exploratory Data Analysis.pdf
Current and future trends in Computer Vision.pptx
Human-AI Collaboration: Balancing Agentic AI and Autonomy in Hybrid Systems
Automation-in-Manufacturing-Chapter-Introduction.pdf
communication and presentation skills 01
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
Introduction, IoT Design Methodology, Case Study on IoT System for Weather Mo...

Peterson Critical Section Problem Solution

  • 1. Presentation on Peterson Algorithm for Critical Section Problem Solution 1 By Bipul Chandra kar (131-15-015 ) Mahadi Hasan (131-15-023) Md.Mohaiminul Islam(132-15-114)
  • 2. Consider system of n processes { P0 , P1 , …, Pn-1 } Each process has a critical section segment of code Process may be changing common variables, updating table, writing file, etc. When one process is in its critical section, no other may be executing in its critical section Critical-section problem is to design a protocol to solve this Each process must ask permission to enter its critical section in entry section, may follow critical section with exit section, the remaining code is in its remainder section 2Critical Section Problem
  • 3. Programs and critical sections  The part of the program (process) that is accessing and changing shared data is called its critical section 3 Change X Change X Change Y Change Y Change Y Change X Process 1 Code Process 2 Code Process 3 Code Assuming X and Y are shared data.
  • 4. Critical Section  The general way to do that is: do { critical section remainder section } while (TRUE) do { entry section critical section exit section remainder } while (TRUE) Entry section will allow only one process to enter and execute critical section code. 4
  • 5. Solution to Critical-Section Problem 1. Mutual Exclusion - If process Pi is executing in its critical section, then no other processes can be executing in their critical sections 2. Progress - If no process is executing in its critical section and there exist some processes that wish to enter their critical section, then the selection of the processes that will enter the critical section next cannot be postponed indefinitely 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.  Assume that each process executes at a nonzero speed  No assumption concerning relative speed of the N processes 5
  • 6. Peterson’s Solution  Two process solution  Assume that the LOAD and STORE instructions are atomic; that is, cannot be interrupted.  The two processes share two variables:  int turn;  Boolean flag[2]  The variable turn indicates whose turn it is to enter the critical section.  The flag array is used to indicate if a process is ready to enter the critical section. flag[i] = true implies that process Pi is ready! 6
  • 7. Algorithm for Process Pi 7 do { flag[i] = TRUE; turn = j; while (flag[j] && turn == j); critical section flag[i] = FALSE; remainder section } while (1) entry section exit section
  • 8. Two processes executing concurrently 8 do { flag1 = TRUE; turn = 2; while (flag2 && turn == 2); critical section….. flag1 = FALSE; remainder section….. } while (1) do { flag2 = TRUE; turn = 1; while (flag1 && turn == 1); critical section….. flag2 = FALSE; remainder section….. } while (1) PROCESS 1 PROCESS 2 Shared Variables flag1, flag2 turn
  • 9. EXAMPLE 9 Process 0: flag[0] := TRUE turn := 1 check (flag[1] = TRUE and turn = 1) - Condition is false because flag[1] = FALSE - Since condition is false, no waiting in while loop - Enters the critical section Phase-1 Process 1: flag[1] := TRUE turn := 0 check (flag[0] = TRUE and turn = 0) - Since condition is true, it keeps busy waiting until it loses the processor - Process 0 resumes and continues until it finishes in the critical section Phase-2 Process 0: - Leaves critical section Sets flag[0] := FALSE - Start executing the remainder (anything else a process does besides using the critical section) - Process 0 happens to lose the processor Phase-3 Process 1: check (flag[0] = TRUE and turn = 0) - This condition fails because flag[0] = FALSE - No more busy waiting -Enter the critical section Phase-4
  • 10. 10 public class cSection { int turn; boolean flag[] = new boolean[2]; int i = 0, j = 1; // CSC variables int counter = 0;// counter for giving processes an upper bound int cscVar = 13; private class ProcessI extends Thread { // process thread for i @Override public void run() { try { do { flag[i] = true; turn = j; while (flag[j] && turn == j) ; // wait for j to finish // critical section System.out.println("I is in critical section"); cscVar++; System.out.println(cscVar); counter++; System.out.println("counter is " + counter + "n___________"); // flag[i] = false; // remainder section } while (counter < 100); // 100 is upper bound, to remove // infinite looping } Implementation
  • 11. Implementation 11 catch (Exception ex) { ex.printStackTrace(); } } } private class ProcessJ extends Thread { // process thread for j @Override public void run() { try { do { flag[j] = true; turn = i; while (flag[i] && turn == i) ;// wait for i to finish // critical section System.out.println("J is in critical section"); cscVar--; System.out.println(cscVar); counter++; System.out.println("counter is " + counter + "n___________"); // flag[j] = false; // remainder section } while (counter < 100); // 100 is upper bound, to remove // infinite looping }
  • 12. 12 catch (Exception ex) { ex.printStackTrace(); } } } public cSection() { System.out.println("Starting Threads/Processes"); Thread I = new ProcessI(); Thread J = new ProcessJ(); I.start(); // start process i J.start(); // start process j } public static void main(String[] args) { cSection cSec = new cSection(); } } Implementation
  • 13. Conclusion 13 • Simplest algorithm for critical section problem solution. • Peterson algorithm satisfies the three key point of solving the critical section problem
  • 14. Thank You To All . 14