6
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
Deadlock ppt
PPTX
Stuxnet worm
PPTX
Distributed operating system
PPT
Memory Management in OS
PDF
Time and Space Complexity
PPTX
Central limit theorem application
PPT
Introduction to Software Project Management
Deadlock ppt
Stuxnet worm
Distributed operating system
Memory Management in OS
Time and Space Complexity
Central limit theorem application
Introduction to Software Project Management

What's hot (20)

PPTX
priority interrupt computer organization
PPTX
Concurrency Control in Database Management System
PPTX
Critical section problem in operating system.
PPT
Np cooks theorem
PPTX
Deadlock Avoidance in Operating System
PPTX
Single pass assembler
PPT
15. Transactions in DBMS
PPTX
Free Space Management, Efficiency & Performance, Recovery and NFS
PPT
process creation OS
PPTX
Message passing in Distributed Computing Systems
PDF
Major and Minor Elements of Object Model
PDF
Syntax directed translation
PPTX
Cpu scheduling in operating System.
PPTX
DeadLock in Operating-Systems
PPTX
Tcp/ip server sockets
PPT
16. Concurrency Control in DBMS
PPTX
Parsing in Compiler Design
PPTX
Algorithm and pseudocode conventions
PPTX
INTER PROCESS COMMUNICATION (IPC).pptx
priority interrupt computer organization
Concurrency Control in Database Management System
Critical section problem in operating system.
Np cooks theorem
Deadlock Avoidance in Operating System
Single pass assembler
15. Transactions in DBMS
Free Space Management, Efficiency & Performance, Recovery and NFS
process creation OS
Message passing in Distributed Computing Systems
Major and Minor Elements of Object Model
Syntax directed translation
Cpu scheduling in operating System.
DeadLock in Operating-Systems
Tcp/ip server sockets
16. Concurrency Control in DBMS
Parsing in Compiler Design
Algorithm and pseudocode conventions
INTER PROCESS COMMUNICATION (IPC).pptx
Ad

Similar to Peterson Critical Section Problem Solution (20)

PPTX
Operating system critical section
PPTX
Critical Section Problem - Ramakrishna Reddy Bijjam
PPT
Process synchronization(deepa)
PPTX
Chapter6 Synchronization in Operating systems.pptx
PPTX
Operatioooooooooooooooooooooooooooooooooooooooooooooo
PPT
Operating System
PPTX
operating system notes about deadlock 3.pptx
PPT
Process Synchronization
PPT
PPTX
14- Process Synchronization.pptx
PDF
CH05.pdf
PPT
PDF
6 Synchronisation
PPTX
process synchronization topic of operating system
PDF
Peterson’s Solution.pdf by Mustehsan Mehmood
PDF
OperatingSystem-Unit2_Process Management
PPT
Section06-Syncopkojiojoijnnjkhuubgfffppt
PPT
Lecture16-17.ppt
PPTX
Mutual Exclusion using Peterson's Algorithm
Operating system critical section
Critical Section Problem - Ramakrishna Reddy Bijjam
Process synchronization(deepa)
Chapter6 Synchronization in Operating systems.pptx
Operatioooooooooooooooooooooooooooooooooooooooooooooo
Operating System
operating system notes about deadlock 3.pptx
Process Synchronization
14- Process Synchronization.pptx
CH05.pdf
6 Synchronisation
process synchronization topic of operating system
Peterson’s Solution.pdf by Mustehsan Mehmood
OperatingSystem-Unit2_Process Management
Section06-Syncopkojiojoijnnjkhuubgfffppt
Lecture16-17.ppt
Mutual Exclusion using Peterson's Algorithm
Ad

Recently uploaded (20)

PDF
Human CELLS and structure in Anatomy and human physiology
PDF
LAST 3 MONTH VOCABULARY MAGAZINE 2025 . (1).pdf
PDF
ITEC 1010 - Networks and Cloud Computing
PDF
Snapchat product teardown product management
PDF
Water Industry Process Automation & Control Monthly - September 2025
PPTX
Cloud Security and Privacy-Module-1.pptx
PDF
Water Supply and Sanitary Engineering Textbook
PDF
B461227.pdf American Journal of Multidisciplinary Research and Review
PDF
ITEC 1010 - Information and Organizations Database System and Big data
PDF
Recent Trends in Network Security - 2025
PPTX
PPT-HEART-DISEASE[1].pptx presentationss
PPT
Module_1_Lecture_1_Introduction_To_Automation_In_Production_Systems2023.ppt
PDF
IoT-Based Hybrid Renewable Energy System.pdf
PPTX
Cloud Security and Privacy-Module-2a.pptx
PDF
August 2025 Top Read Articles in - Bioscience & Engineering Recent Research T...
PPTX
CC PPTS unit-I PPT Notes of Cloud Computing
PDF
Manual variador de corriente directa parker.pdf
PPTX
Retail.pptx internet of things mtech 2 nd sem
PPTX
Embedded Systems Microcontrollers and Microprocessors.pptx
PPTX
240409 Data Center Training Programs by Uptime Institute (Drafting).pptx
Human CELLS and structure in Anatomy and human physiology
LAST 3 MONTH VOCABULARY MAGAZINE 2025 . (1).pdf
ITEC 1010 - Networks and Cloud Computing
Snapchat product teardown product management
Water Industry Process Automation & Control Monthly - September 2025
Cloud Security and Privacy-Module-1.pptx
Water Supply and Sanitary Engineering Textbook
B461227.pdf American Journal of Multidisciplinary Research and Review
ITEC 1010 - Information and Organizations Database System and Big data
Recent Trends in Network Security - 2025
PPT-HEART-DISEASE[1].pptx presentationss
Module_1_Lecture_1_Introduction_To_Automation_In_Production_Systems2023.ppt
IoT-Based Hybrid Renewable Energy System.pdf
Cloud Security and Privacy-Module-2a.pptx
August 2025 Top Read Articles in - Bioscience & Engineering Recent Research T...
CC PPTS unit-I PPT Notes of Cloud Computing
Manual variador de corriente directa parker.pdf
Retail.pptx internet of things mtech 2 nd sem
Embedded Systems Microcontrollers and Microprocessors.pptx
240409 Data Center Training Programs by Uptime Institute (Drafting).pptx

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