SlideShare a Scribd company logo
The
Critical-Section
Problem
MOHITDADU
The Critical-Section
A code segment that accesses shared variables (or other shared resources)
and that has to be executed as an atomic action is referred to as a critical
section.
n processes competing to use some shared data.
No assumptions may be made about speeds or the number of CPUs.
Each process has a code segment, called Critical Section (CS), in which
the shared data is accessed.
Problem – ensure that when one process is executing in its CS, no other
process is allowed to execute in its CS.
informally,
a critical section is a code segment that accesses shared variables and
has to be executed as an atomic action.
The critical section problem refers to the problem of how to ensure that
at most one process is executing its critical section at a given time.
Important: critical sections in different threads are not necessarily the
same code segment!
PROBLEM DESCRIPTION
PROBLEM DESCRIPTION
Formally,
Mutual exclusion: when a thread is executing in its critical section, no other
threads can be executing in their critical sections.
Progress: if no thread is executing in its critical section, and if there are
some threads that wish to enter their critical sections, then one of these threads
will get into the critical section.
Bounded waiting: after a thread makes a request to enter its critical section,
there is a bound on the number of times that other threads are allowed to enter
their critical sections, before the request is granted.
CS Problem Dynamics (1)
When a process executes code that manipulates shared data (or
resource), we say that the process is in it’s Critical Section (for that
shared data).
The execution of critical sections must be mutually exclusive: at any
time, only one process is allowed to execute in its critical section
(even with multiple processors).
So each process must first request permission to enter its critical
section.
CS Problem Dynamics (2)
The section of code implementing this request is called the Entry Section (ES).
The critical section (CS) might be followed by a Leave/Exit Section (LS).
The remaining code is the Remainder Section (RS).
The critical section problem is to design a protocol that the processes can use so
that their action will not depend on the order in which their execution is
interleaved (possibly on many processors).
General structure of process
while (true)
{
Entry-Section
Critical section
// contains accesses to shared variables or other resources.
Exit-Section
Non-critical section
// a thread may terminate its execution in this section.
}
EXPLANATION
 ENTRY SECTION:- The process will request to enter the critical section
then a part of code decide wheather process can enter in the Critical
Section on not.
 CRITICAL SECTION:- A code segment that accesses shared resources and
that has to be executed as an atomic action.
 EXIT SECTION:- Locking section can be undone which is done in Critical
Section.
 REMAINDER SECTION:- Remaining part of the program .
Solution to Critical-Section Problem
There are 3 requirements that must stand for a correct solution:
1. Mutual Exclusion
2. Progress
3. Bounded Waiting
We can check on all three requirements in each proposed solution,
even though the non-existence of each one of them is enough for an
incorrect solution.
Solution to CS Problem – Mutual Exclusion
1. Mutual Exclusion –
If process Pi is executing in its critical section, then no other processes can be
executing in their critical sections.
Whenever one process is entered in the critical section then there is no other
process can enter in the critical section.
Only one process can be execute at a time.
That means access to the critical section must be mutually exclusive.
 Critical sections better be focused and short.
 Better not get into an infinite loop in there.
 If a process somehow halts/waits in its critical section, it
must not interfere with other processes.
IMPLICATIONS:
Solution to CS Problem– Progress
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 process that will enter the critical section next cannot be
postponed indefinitely:
If only one process wants to enter, it should be able to.
If two or more want to enter, one of them should succeed.
Solution to CS Problem– Bounded Waiting
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 non zero speed.
• No assumption concerning relative speed of the n processes.
Types of solutions to CS
problem
Software Solutions :– Algorithms who’s correctness does not rely
on any other assumptions.
Hardware Solutions :– Rely on some special machine instructions.
Operating System solutions :– Provide some functions and data
structures to the programmer through system /library calls.
Programming Language solutions :– Linguistic constructs
provided as part of a language.
Each process disables all interrupts just after entering in its critical
section and re-enable all interrupts just before leaving critical section.
With interrupts turned off the CPU could not be switched to other
process.
Hence, no other process will enter its critical and mutual exclusion
achieved.
Disabling Interrupts
(Hardware Solution)
Disabling interrupts is sometimes a useful technique within the kernel
of an operating system,
But it is not appropriate as a general mutual exclusion mechanism for
users process.
The reason is that it is unwise to give user process the power to turn
off interrupts.
Conclusion
• In this solution, we consider a single, shared, (lock) variable, initially 0.
• When a process wants to enter in its critical section, it first test the lock.
• If lock is 0, the process first sets it to 1 and then enters the critical section.
• If the lock is already 1, the process just waits until (lock) variable becomes
0.
• Thus, a 0 means that no process in its critical section, and 1 means hold
your horses - some process is in its critical section.
Lock Variable
(Software Solution)
Drawbacks of
software solutions
Software solutions are very delicate .
Processes that are requesting to enter their critical section
are busy waiting (consuming processor time needlessly).
If critical sections are long, it would be more efficient to block
processes that are waiting.
Initial Attempts to Solve
Problem
Threads T0 and T1 use variables flag[i] and flag[j] to indicate their intention to enter their
critical section. A thread will not enter its critical section if the other thread has already
signaled its intention to enter.
boolean flag[i]=false , flag[j]=false ;
Incorrect Solution 1
T1
while (true) {
while (flag[ i ]) { ; } (1)
flag[ j ] = true; (2)
critical section (3)
flag[ j ] = false; (4)
non-critical section (5)
}
T0
while (true) {
while (flag[ j ]) { ; } (1)
flag[ i ] = true; (2)
critical section (3)
flag[ i ] = false; (4)
non-critical section (5)
}
This solution does not guarantee mutual exclusion.
T0
WHILE (TRUE) {
WHILE (TURN != 0) { ; } (1)
CRITICAL SECTION (2)
TURN = 1; (3)
NON-CRITICAL SECTION (4)
}
Global variable turn is used to indicate which thread is allowed to enter its
critical section, i.e., the threads take turns entering their critical sections. The
initial value of turn can be 0 or 1.
int turn = 1;
Incorrect Solution 2
T1
while (true) {
while (turn != 1) { ; } (1)
critical section (2)
turn = 0; (3)
non-critical section (4)
}
Thread T0 cannot exit the loop in (1) since the value of turn is 1 and turn will never be
changed by T1.
T0
while (true) {
flag0= true; (1)
while ( flag1) { (2)
flag0= false; (3)
while( flag1) {;} (4)
flag0= true; (5)
}
critical section (6)
Flag0= false; (7)
non-critical section (8)
}
T1
while ( true ) {
flag1= true; (1)
while ( Flag0) { (2)
flag1= false; (3)
while( Flag0) {;} (4)
flag1= true; (5)
}
critical section (6)
flag1= false; (7)
non-critical section (8)
}
Incorrect Solution 3
When one thread finds that the other thread also intends to enter its critical section, it
sets its own flag to false and waits for the other thread to exit its critical section.
Thus, the mutual exclusion requirement is satisfied.
In this execution sequence,
T0 enters its critical section infinitely often and
T1 waits forever to enter its critical section.
Thus, this solution does not guarantee bounded waiting.
This solution ensures that when both Flag0 and Flag1 are true,
only one of T0 and T1 is allowed to enter its critical section.
Correct solution:
Correct solution is a combination of solutions (2) and (3). If both threads intend to enter their
critical sections, then turn is used to break the tie.
boolean Flag0 = false , Flag1= false;
int turn; // no initial value for turn is needed.
T0
while (true) {
Flag0= true; (1)
turn = 1; (2)
while ( Flag1&& (3)
Turn == 1) { ; }
critical section (4)
Flag0= false; (5)
non-critical section (6)
}
T1
while (true) {
Flag1= true; (1)
turn = 0; (2)
while ( Flag0&& (3)
Turn == 0) { ; }
critical section (4)
Flag1= false; (5)
non-critical section (6)
}

More Related Content

What's hot

deadlock handling
deadlock handlingdeadlock handling
deadlock handling
Suraj Kumar
 
Process state in OS
Process state in OSProcess state in OS
Process state in OS
Khushboo Jain
 
Deadlock Prevention
Deadlock PreventionDeadlock Prevention
Deadlock Prevention
prachi mewara
 
Cohen sutherland line clipping
Cohen sutherland line clippingCohen sutherland line clipping
Cohen sutherland line clipping
Mani Kanth
 
CS9222 Advanced Operating System
CS9222 Advanced Operating SystemCS9222 Advanced Operating System
CS9222 Advanced Operating System
Kathirvel Ayyaswamy
 
Process synchronization in Operating Systems
Process synchronization in Operating SystemsProcess synchronization in Operating Systems
Process synchronization in Operating Systems
Ritu Ranjan Shrivastwa
 
Process in operating system
Process in operating systemProcess in operating system
Process in operating system
Chetan Mahawar
 
Deadlock
DeadlockDeadlock
Deadlock
Rajandeep Gill
 
Process of operating system
Process of operating systemProcess of operating system
Threads (operating System)
Threads (operating System)Threads (operating System)
Threads (operating System)
Prakhar Maurya
 
OS - Process Concepts
OS - Process ConceptsOS - Process Concepts
OS - Process Concepts
Mukesh Chinta
 
Communication primitives
Communication primitivesCommunication primitives
Communication primitives
Student
 
Distributed Mutual exclusion algorithms
Distributed Mutual exclusion algorithmsDistributed Mutual exclusion algorithms
Distributed Mutual exclusion algorithms
MNM Jain Engineering College
 
Processes and threads
Processes and threadsProcesses and threads
Applet life cycle
Applet life cycleApplet life cycle
Applet life cyclemyrajendra
 
CPU Scheduling Algorithms
CPU Scheduling AlgorithmsCPU Scheduling Algorithms
CPU Scheduling Algorithms
Shubhashish Punj
 
Threads .ppt
Threads .pptThreads .ppt
Threads .ppt
meet darji
 
Deadlocks in operating system
Deadlocks in operating systemDeadlocks in operating system
Deadlocks in operating system
Sara Ali
 

What's hot (20)

deadlock handling
deadlock handlingdeadlock handling
deadlock handling
 
Process state in OS
Process state in OSProcess state in OS
Process state in OS
 
Deadlock Prevention
Deadlock PreventionDeadlock Prevention
Deadlock Prevention
 
Cohen sutherland line clipping
Cohen sutherland line clippingCohen sutherland line clipping
Cohen sutherland line clipping
 
CS9222 Advanced Operating System
CS9222 Advanced Operating SystemCS9222 Advanced Operating System
CS9222 Advanced Operating System
 
Process synchronization in Operating Systems
Process synchronization in Operating SystemsProcess synchronization in Operating Systems
Process synchronization in Operating Systems
 
Process in operating system
Process in operating systemProcess in operating system
Process in operating system
 
Deadlock
DeadlockDeadlock
Deadlock
 
Process of operating system
Process of operating systemProcess of operating system
Process of operating system
 
Threads (operating System)
Threads (operating System)Threads (operating System)
Threads (operating System)
 
OS - Process Concepts
OS - Process ConceptsOS - Process Concepts
OS - Process Concepts
 
Communication primitives
Communication primitivesCommunication primitives
Communication primitives
 
Distributed Mutual exclusion algorithms
Distributed Mutual exclusion algorithmsDistributed Mutual exclusion algorithms
Distributed Mutual exclusion algorithms
 
Deadlock ppt
Deadlock ppt Deadlock ppt
Deadlock ppt
 
Processes and threads
Processes and threadsProcesses and threads
Processes and threads
 
Applet life cycle
Applet life cycleApplet life cycle
Applet life cycle
 
CPU Scheduling Algorithms
CPU Scheduling AlgorithmsCPU Scheduling Algorithms
CPU Scheduling Algorithms
 
Deadlock
DeadlockDeadlock
Deadlock
 
Threads .ppt
Threads .pptThreads .ppt
Threads .ppt
 
Deadlocks in operating system
Deadlocks in operating systemDeadlocks in operating system
Deadlocks in operating system
 

Viewers also liked

Race conditions
Race conditionsRace conditions
Race conditionsMohd Arif
 
Semaphores OS Basics
Semaphores OS BasicsSemaphores OS Basics
Semaphores OS Basics
Shijin Raj P
 
openmp
openmpopenmp
openmp
Neel Bhad
 
Tutorial on Parallel Computing and Message Passing Model - C2
Tutorial on Parallel Computing and Message Passing Model - C2Tutorial on Parallel Computing and Message Passing Model - C2
Tutorial on Parallel Computing and Message Passing Model - C2Marcirio Chaves
 
Open mp intro_01
Open mp intro_01Open mp intro_01
Open mp intro_01
Oleg Nazarevych
 
Parallel architecture-programming
Parallel architecture-programmingParallel architecture-programming
Parallel architecture-programmingShaveta Banda
 
Intro to OpenMP
Intro to OpenMPIntro to OpenMP
Intro to OpenMP
jbp4444
 
OpenMP Tutorial for Beginners
OpenMP Tutorial for BeginnersOpenMP Tutorial for Beginners
OpenMP Tutorial for Beginners
Dhanashree Prasad
 
Parallel Programming
Parallel ProgrammingParallel Programming
Parallel ProgrammingUday Sharma
 
Semaphores-R.D.Sivakumar
Semaphores-R.D.SivakumarSemaphores-R.D.Sivakumar
Semaphores-R.D.Sivakumar
Sivakumar R D .
 
Bootloader and bootloading
Bootloader and bootloadingBootloader and bootloading
Bootloader and bootloadingArpita Gupta
 
deadlock avoidance
deadlock avoidancedeadlock avoidance
deadlock avoidancewahab13
 
Operator Overloading and Scope of Variable
Operator Overloading and Scope of VariableOperator Overloading and Scope of Variable
Operator Overloading and Scope of Variable
MOHIT DADU
 
Parallel computing
Parallel computingParallel computing
Parallel computingvirend111
 
Operating Systems - Advanced Synchronization
Operating Systems - Advanced SynchronizationOperating Systems - Advanced Synchronization
Operating Systems - Advanced SynchronizationEmery Berger
 
Linux Basic Commands
Linux Basic CommandsLinux Basic Commands
Linux Basic Commands
Hanan Nmr
 
Linux booting process!!
Linux booting process!!Linux booting process!!
Linux booting process!!
sourav verma
 

Viewers also liked (20)

Race conditions
Race conditionsRace conditions
Race conditions
 
Semaphores OS Basics
Semaphores OS BasicsSemaphores OS Basics
Semaphores OS Basics
 
Semaphores
SemaphoresSemaphores
Semaphores
 
openmp
openmpopenmp
openmp
 
Tutorial on Parallel Computing and Message Passing Model - C2
Tutorial on Parallel Computing and Message Passing Model - C2Tutorial on Parallel Computing and Message Passing Model - C2
Tutorial on Parallel Computing and Message Passing Model - C2
 
Open mp intro_01
Open mp intro_01Open mp intro_01
Open mp intro_01
 
Openmp
OpenmpOpenmp
Openmp
 
Parallel architecture-programming
Parallel architecture-programmingParallel architecture-programming
Parallel architecture-programming
 
Intro to OpenMP
Intro to OpenMPIntro to OpenMP
Intro to OpenMP
 
OpenMP Tutorial for Beginners
OpenMP Tutorial for BeginnersOpenMP Tutorial for Beginners
OpenMP Tutorial for Beginners
 
Parallel Programming
Parallel ProgrammingParallel Programming
Parallel Programming
 
Semaphores-R.D.Sivakumar
Semaphores-R.D.SivakumarSemaphores-R.D.Sivakumar
Semaphores-R.D.Sivakumar
 
Bootloader and bootloading
Bootloader and bootloadingBootloader and bootloading
Bootloader and bootloading
 
Semaphore
SemaphoreSemaphore
Semaphore
 
deadlock avoidance
deadlock avoidancedeadlock avoidance
deadlock avoidance
 
Operator Overloading and Scope of Variable
Operator Overloading and Scope of VariableOperator Overloading and Scope of Variable
Operator Overloading and Scope of Variable
 
Parallel computing
Parallel computingParallel computing
Parallel computing
 
Operating Systems - Advanced Synchronization
Operating Systems - Advanced SynchronizationOperating Systems - Advanced Synchronization
Operating Systems - Advanced Synchronization
 
Linux Basic Commands
Linux Basic CommandsLinux Basic Commands
Linux Basic Commands
 
Linux booting process!!
Linux booting process!!Linux booting process!!
Linux booting process!!
 

Similar to Critical section problem in operating system.

Lecture 5- Process Synchronization (1).pptx
Lecture 5- Process Synchronization (1).pptxLecture 5- Process Synchronization (1).pptx
Lecture 5- Process Synchronization (1).pptx
Amanuelmergia
 
Critical section operating system
Critical section  operating systemCritical section  operating system
Critical section operating system
Muhammad Baqar Kazmi
 
Operating system 23 process synchronization
Operating system 23 process synchronizationOperating system 23 process synchronization
Operating system 23 process synchronization
Vaibhav Khanna
 
Process synchronization
Process synchronizationProcess synchronization
Process synchronization
Abeera Naeem
 
Operating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and DeadlocksOperating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and Deadlocks
Mukesh Chinta
 
CH05.pdf
CH05.pdfCH05.pdf
CH05.pdf
ImranKhan880955
 
Mutual Exclusion using Peterson's Algorithm
Mutual Exclusion using Peterson's AlgorithmMutual Exclusion using Peterson's Algorithm
Mutual Exclusion using Peterson's AlgorithmSouvik Roy
 
MODULE 3 process synchronizationnnn.pptx
MODULE 3 process synchronizationnnn.pptxMODULE 3 process synchronizationnnn.pptx
MODULE 3 process synchronizationnnn.pptx
senthilkumar969017
 
Lecture 9 - Process Synchronization.pptx
Lecture 9 - Process Synchronization.pptxLecture 9 - Process Synchronization.pptx
Lecture 9 - Process Synchronization.pptx
EhteshamulIslam1
 
Process Synchronization -1.ppt
Process Synchronization -1.pptProcess Synchronization -1.ppt
Process Synchronization -1.ppt
jayverma27
 
Synchronization in os.pptx
Synchronization in os.pptxSynchronization in os.pptx
Synchronization in os.pptx
AbdullahBhatti53
 
Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"
Ra'Fat Al-Msie'deen
 
Lecture 5- Process Synchonization_revised.pdf
Lecture 5- Process Synchonization_revised.pdfLecture 5- Process Synchonization_revised.pdf
Lecture 5- Process Synchonization_revised.pdf
Amanuelmergia
 
Process synchronization
Process synchronizationProcess synchronization
Process synchronization
Syed Hassan Ali
 
Critical Section Problem - Ramakrishna Reddy Bijjam
Critical Section Problem - Ramakrishna Reddy BijjamCritical Section Problem - Ramakrishna Reddy Bijjam
Critical Section Problem - Ramakrishna Reddy Bijjam
Ramakrishna Reddy Bijjam
 
Concurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and SynchronizationConcurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and Synchronization
Anas Ebrahim
 
Lecture16-17.ppt
Lecture16-17.pptLecture16-17.ppt
Lecture16-17.ppt
ssuserf67e3a
 
Slides for OS 06-Sync.pdf
Slides for OS 06-Sync.pdfSlides for OS 06-Sync.pdf
Slides for OS 06-Sync.pdf
GeekyHassan
 
Ch17 OS
Ch17 OSCh17 OS
Ch17 OSC.U
 

Similar to Critical section problem in operating system. (20)

Lecture 5- Process Synchronization (1).pptx
Lecture 5- Process Synchronization (1).pptxLecture 5- Process Synchronization (1).pptx
Lecture 5- Process Synchronization (1).pptx
 
Critical section operating system
Critical section  operating systemCritical section  operating system
Critical section operating system
 
Operating system 23 process synchronization
Operating system 23 process synchronizationOperating system 23 process synchronization
Operating system 23 process synchronization
 
Process synchronization
Process synchronizationProcess synchronization
Process synchronization
 
Operating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and DeadlocksOperating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and Deadlocks
 
CH05.pdf
CH05.pdfCH05.pdf
CH05.pdf
 
Mutual Exclusion using Peterson's Algorithm
Mutual Exclusion using Peterson's AlgorithmMutual Exclusion using Peterson's Algorithm
Mutual Exclusion using Peterson's Algorithm
 
MODULE 3 process synchronizationnnn.pptx
MODULE 3 process synchronizationnnn.pptxMODULE 3 process synchronizationnnn.pptx
MODULE 3 process synchronizationnnn.pptx
 
Lecture 9 - Process Synchronization.pptx
Lecture 9 - Process Synchronization.pptxLecture 9 - Process Synchronization.pptx
Lecture 9 - Process Synchronization.pptx
 
Process Synchronization -1.ppt
Process Synchronization -1.pptProcess Synchronization -1.ppt
Process Synchronization -1.ppt
 
Synchronization in os.pptx
Synchronization in os.pptxSynchronization in os.pptx
Synchronization in os.pptx
 
Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"
 
Lecture 5- Process Synchonization_revised.pdf
Lecture 5- Process Synchonization_revised.pdfLecture 5- Process Synchonization_revised.pdf
Lecture 5- Process Synchonization_revised.pdf
 
Process synchronization
Process synchronizationProcess synchronization
Process synchronization
 
Critical Section Problem - Ramakrishna Reddy Bijjam
Critical Section Problem - Ramakrishna Reddy BijjamCritical Section Problem - Ramakrishna Reddy Bijjam
Critical Section Problem - Ramakrishna Reddy Bijjam
 
Concurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and SynchronizationConcurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and Synchronization
 
Lecture16-17.ppt
Lecture16-17.pptLecture16-17.ppt
Lecture16-17.ppt
 
Slides for OS 06-Sync.pdf
Slides for OS 06-Sync.pdfSlides for OS 06-Sync.pdf
Slides for OS 06-Sync.pdf
 
Ch17 OS
Ch17 OSCh17 OS
Ch17 OS
 
OS_Ch17
OS_Ch17OS_Ch17
OS_Ch17
 

Recently uploaded

Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
AJAYKUMARPUND1
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
Pipe Restoration Solutions
 
space technology lecture notes on satellite
space technology lecture notes on satellitespace technology lecture notes on satellite
space technology lecture notes on satellite
ongomchris
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
FluxPrime1
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
zwunae
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
WENKENLI1
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
ankuprajapati0525
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
BrazilAccount1
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
Jayaprasanna4
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
Massimo Talia
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
gdsczhcet
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation & Control
 
English lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdfEnglish lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdf
BrazilAccount1
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Dr.Costas Sachpazis
 

Recently uploaded (20)

Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
 
space technology lecture notes on satellite
space technology lecture notes on satellitespace technology lecture notes on satellite
space technology lecture notes on satellite
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
English lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdfEnglish lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdf
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 

Critical section problem in operating system.

  • 2. The Critical-Section A code segment that accesses shared variables (or other shared resources) and that has to be executed as an atomic action is referred to as a critical section. n processes competing to use some shared data. No assumptions may be made about speeds or the number of CPUs. Each process has a code segment, called Critical Section (CS), in which the shared data is accessed. Problem – ensure that when one process is executing in its CS, no other process is allowed to execute in its CS.
  • 3. informally, a critical section is a code segment that accesses shared variables and has to be executed as an atomic action. The critical section problem refers to the problem of how to ensure that at most one process is executing its critical section at a given time. Important: critical sections in different threads are not necessarily the same code segment! PROBLEM DESCRIPTION
  • 4. PROBLEM DESCRIPTION Formally, Mutual exclusion: when a thread is executing in its critical section, no other threads can be executing in their critical sections. Progress: if no thread is executing in its critical section, and if there are some threads that wish to enter their critical sections, then one of these threads will get into the critical section. Bounded waiting: after a thread makes a request to enter its critical section, there is a bound on the number of times that other threads are allowed to enter their critical sections, before the request is granted.
  • 5. CS Problem Dynamics (1) When a process executes code that manipulates shared data (or resource), we say that the process is in it’s Critical Section (for that shared data). The execution of critical sections must be mutually exclusive: at any time, only one process is allowed to execute in its critical section (even with multiple processors). So each process must first request permission to enter its critical section.
  • 6. CS Problem Dynamics (2) The section of code implementing this request is called the Entry Section (ES). The critical section (CS) might be followed by a Leave/Exit Section (LS). The remaining code is the Remainder Section (RS). The critical section problem is to design a protocol that the processes can use so that their action will not depend on the order in which their execution is interleaved (possibly on many processors).
  • 7. General structure of process while (true) { Entry-Section Critical section // contains accesses to shared variables or other resources. Exit-Section Non-critical section // a thread may terminate its execution in this section. }
  • 8. EXPLANATION  ENTRY SECTION:- The process will request to enter the critical section then a part of code decide wheather process can enter in the Critical Section on not.  CRITICAL SECTION:- A code segment that accesses shared resources and that has to be executed as an atomic action.  EXIT SECTION:- Locking section can be undone which is done in Critical Section.  REMAINDER SECTION:- Remaining part of the program .
  • 9. Solution to Critical-Section Problem There are 3 requirements that must stand for a correct solution: 1. Mutual Exclusion 2. Progress 3. Bounded Waiting We can check on all three requirements in each proposed solution, even though the non-existence of each one of them is enough for an incorrect solution.
  • 10. Solution to CS Problem – Mutual Exclusion 1. Mutual Exclusion – If process Pi is executing in its critical section, then no other processes can be executing in their critical sections. Whenever one process is entered in the critical section then there is no other process can enter in the critical section. Only one process can be execute at a time. That means access to the critical section must be mutually exclusive.
  • 11.  Critical sections better be focused and short.  Better not get into an infinite loop in there.  If a process somehow halts/waits in its critical section, it must not interfere with other processes. IMPLICATIONS:
  • 12. Solution to CS Problem– Progress 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 process that will enter the critical section next cannot be postponed indefinitely: If only one process wants to enter, it should be able to. If two or more want to enter, one of them should succeed.
  • 13. Solution to CS Problem– Bounded Waiting 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 non zero speed. • No assumption concerning relative speed of the n processes.
  • 14. Types of solutions to CS problem Software Solutions :– Algorithms who’s correctness does not rely on any other assumptions. Hardware Solutions :– Rely on some special machine instructions. Operating System solutions :– Provide some functions and data structures to the programmer through system /library calls. Programming Language solutions :– Linguistic constructs provided as part of a language.
  • 15. Each process disables all interrupts just after entering in its critical section and re-enable all interrupts just before leaving critical section. With interrupts turned off the CPU could not be switched to other process. Hence, no other process will enter its critical and mutual exclusion achieved. Disabling Interrupts (Hardware Solution)
  • 16. Disabling interrupts is sometimes a useful technique within the kernel of an operating system, But it is not appropriate as a general mutual exclusion mechanism for users process. The reason is that it is unwise to give user process the power to turn off interrupts. Conclusion
  • 17. • In this solution, we consider a single, shared, (lock) variable, initially 0. • When a process wants to enter in its critical section, it first test the lock. • If lock is 0, the process first sets it to 1 and then enters the critical section. • If the lock is already 1, the process just waits until (lock) variable becomes 0. • Thus, a 0 means that no process in its critical section, and 1 means hold your horses - some process is in its critical section. Lock Variable (Software Solution)
  • 18. Drawbacks of software solutions Software solutions are very delicate . Processes that are requesting to enter their critical section are busy waiting (consuming processor time needlessly). If critical sections are long, it would be more efficient to block processes that are waiting.
  • 19. Initial Attempts to Solve Problem
  • 20. Threads T0 and T1 use variables flag[i] and flag[j] to indicate their intention to enter their critical section. A thread will not enter its critical section if the other thread has already signaled its intention to enter. boolean flag[i]=false , flag[j]=false ; Incorrect Solution 1 T1 while (true) { while (flag[ i ]) { ; } (1) flag[ j ] = true; (2) critical section (3) flag[ j ] = false; (4) non-critical section (5) } T0 while (true) { while (flag[ j ]) { ; } (1) flag[ i ] = true; (2) critical section (3) flag[ i ] = false; (4) non-critical section (5) } This solution does not guarantee mutual exclusion.
  • 21. T0 WHILE (TRUE) { WHILE (TURN != 0) { ; } (1) CRITICAL SECTION (2) TURN = 1; (3) NON-CRITICAL SECTION (4) } Global variable turn is used to indicate which thread is allowed to enter its critical section, i.e., the threads take turns entering their critical sections. The initial value of turn can be 0 or 1. int turn = 1; Incorrect Solution 2 T1 while (true) { while (turn != 1) { ; } (1) critical section (2) turn = 0; (3) non-critical section (4) } Thread T0 cannot exit the loop in (1) since the value of turn is 1 and turn will never be changed by T1.
  • 22. T0 while (true) { flag0= true; (1) while ( flag1) { (2) flag0= false; (3) while( flag1) {;} (4) flag0= true; (5) } critical section (6) Flag0= false; (7) non-critical section (8) } T1 while ( true ) { flag1= true; (1) while ( Flag0) { (2) flag1= false; (3) while( Flag0) {;} (4) flag1= true; (5) } critical section (6) flag1= false; (7) non-critical section (8) } Incorrect Solution 3 When one thread finds that the other thread also intends to enter its critical section, it sets its own flag to false and waits for the other thread to exit its critical section.
  • 23. Thus, the mutual exclusion requirement is satisfied. In this execution sequence, T0 enters its critical section infinitely often and T1 waits forever to enter its critical section. Thus, this solution does not guarantee bounded waiting. This solution ensures that when both Flag0 and Flag1 are true, only one of T0 and T1 is allowed to enter its critical section.
  • 24. Correct solution: Correct solution is a combination of solutions (2) and (3). If both threads intend to enter their critical sections, then turn is used to break the tie. boolean Flag0 = false , Flag1= false; int turn; // no initial value for turn is needed. T0 while (true) { Flag0= true; (1) turn = 1; (2) while ( Flag1&& (3) Turn == 1) { ; } critical section (4) Flag0= false; (5) non-critical section (6) } T1 while (true) { Flag1= true; (1) turn = 0; (2) while ( Flag0&& (3) Turn == 0) { ; } critical section (4) Flag1= false; (5) non-critical section (6) }