SlideShare una empresa de Scribd logo
1 de 38
Process Synchronization

   Organized By: V.A.




                          V.A.
                        CSED,TU
Disclaimer


  This is NOT A COPYRIGHT           MATERIAL

Content has been taken mainly from the following books:
   Operating Systems Concepts By Silberschatz & Galvin ,
          Operating systems By D M Dhamdhere,
          System Programming By John J Donovan
                         etc…




               VA.
               CSED,TU
Process & Synchronization

     Process – Program in Execution.

     Synchronization – Coordination.

     Independent process cannot affect or be affected by the execution of another
      process

     Cooperating process can affect or be affected by the execution of another
      process

     Advantages of process cooperation

          Information sharing
          Computation speed-up
          Modularity
          Convenience

                             VA.
                             CSED,TU
Buffer




         VA.
         CSED,TU
Bounded-Buffer – Shared-Memory Solution

     Shared Data
               #define BUFFER_SIZE 10
               typedef struct {
                  ...
               } item;

              item buffer [BUFFER_SIZE];
              int in = 0;
              int out = 0;

     Can only use BUFFER_SIZE-1 elements

                        VA.
                        CSED,TU
Producer – Consumer




              VA.
              CSED,TU
Bounded-Buffer – Producer


      while (true) {
          /* Produce an item */
           while (((in = (in + 1) % BUFFER SIZE count) == out)
            ; /* do nothing -- no free buffers */
           buffer[in] = item;
           in = (in + 1) % BUFFER SIZE;
        }




                      VA.
                      CSED,TU
Bounded Buffer – Consumer


         while (true) {
               while (in == out)
                    ; // do nothing -- nothing to consume

              // remove an item from the buffer
              item = buffer[out];
              out = (out + 1) % BUFFER SIZE;
           return item;
            }




                     VA.
                     CSED,TU
Setting Final value of Counter




                VA.
                CSED,TU
Buffer Types


     Paradigm for cooperating processes, producer process produces information that
      is consumed by a consumer process

          Unbounded-buffer places no practical limit on the size of the buffer

          Bounded-buffer assumes that there is a fixed buffer size




                              VA.
                              CSED,TU
RC & CS


    Race Condition – Where several processes access and manipulate the same data
     concurrently and the outcome of the execution depends on the particular order
     in which access takes place.



    Critical Section – Segment of code in which Process may be changing common
     variables, updating a table, writing a file and so on.




                           VA.
                           CSED,TU
Peterson’s Solution




              VA.
              CSED,TU
Peterson’s Solution
  Var       flag : array [0…1] of Boolean;
            Turn : 0..1;
  Begin
            Flag[0] = false;
            Flag[1] = false;
  Parbegin
      Repeat                                 Repeat
            Flag[0] = true                        Flag[1] = true
            Turn = 1                              Turn = 0
            While flag[1] && turn==1              While flag[0] && turn==0
              Do {nothing};                         Do {nothing};
            {Critical Section}                    {Critical Section}
            Flag[0] = false;                      Flag[1] = false;
            {Remainder}                           {Remainder}
      Forver;                                                 Forver;
  Parend
  end

                               VA.
                               CSED,TU
Peterson’s Solution




             VA.
             CSED,TU
Synchronization Hardware
    Many Systems provide hardware support for critical section code

    Uni-Processors – Could disable Interrupts

         Currently running code would execute without preemption
         Generally too inefficient on multiprocessor systems

    Modern machines provide special atomic hardware instructions
           Atomic :- Uninterruptible



         Either Test memory word and Set value
         Or Swap contents of two memory words


                            VA.
                            CSED,TU
TestAndSet Instruction

          Definition:

           boolean TestAndSet (boolean *target)
            {
              boolean rv = *target;
              *target = TRUE;
              return rv:
            }




                VA.
                CSED,TU
Solution using TestAndSet
    Shared Boolean variable Lock, Initialized to FALSE.

     Solution:
       do {
         while ( TestAndSet (&lock ))
                ; /* do nothing

            //   critical section

         lock = FALSE;

            //    remainder section

        } while ( TRUE);

                            VA.
                            CSED,TU
Swap Instruction

         Definition:

          void Swap (boolean *a, boolean *b)
           {
             boolean temp = *a;
             *a = *b;
             *b = temp:
           }




               VA.
               CSED,TU
Solution using Swap
    Shared Boolean variable lock initialized to FALSE, Each process has a
     local Boolean variable key.

     Solution:
       do {
           key = TRUE;
            while ( key == TRUE)
               Swap (&lock, &key );

               //   critical section

           lock = FALSE;

              //    remainder section

          } while ( TRUE);
                             VA.
                             CSED,TU
Semaphore
  Synchronization tool that does not require busy waiting
  Semaphore S – Integer Variable
  Two standard operations modify S: wait() and signal()
     Originally called P() and V()
  Less complicated


    Can only be accessed via two indivisible (atomic) operations
       wait (S) {
            while S <= 0
                 ; // no-op
              S--;
         }

         signal (S) {
            S++;
          }
                            VA.
                            CSED,TU
Semaphore as General Synchronization Tool

     Counting Semaphore – Integer value can range over an unrestricted domain

     Binary Semaphore – Integer value can range only between 0 and 1, Can be
      simpler to Implement

          Also known as Mutex locks

     Can implement a counting semaphore S as a binary semaphore

     Provides mutual exclusion
        Semaphore S; // initialized to 1
        wait (S);

              Critical Section
          signal (S);

                            VA.
                            CSED,TU
Semaphore Implementation
    Must guarantee that no two processes can execute wait () and signal ()
     on the same semaphore at the same time

    Thus, implementation becomes the critical section problem where the
     wait and signal code are placed in the critical section.

         Could now have busy waiting in critical section implementation
            But implementation code is short

            Little busy waiting if critical section rarely occupied



    Note that applications may spend lots of time in critical sections and
     therefore this is not a good solution.


                          VA.
                          CSED,TU
Semaphore Implementation with no Busy waiting

     With each Semaphore there is an associated waiting queue. Each entry in a
      waiting queue has two data items:

          Value (of type Integer)
          Pointer to next record in the list

     Two operations:

          Block – Place the Process invoking the operation on the appropriate waiting
           queue.
          Wakeup – Remove one of Processes in the waiting queue and place it in the
           ready queue.



                               VA.
                               CSED,TU
Semaphore Implementation with no Busy waiting
                                 (Cont.)
    Implementation of WAIT:

              wait (S){
                   value--;
                   if (value < 0) {
                            add this process to waiting queue
                             block(); }
              }

    Implementation of SIGNAL:

              Signal (S){
                     value++;
                      if (value <= 0) {
                               remove a process P from the waiting queue
                                wakeup(P); }
              }
                           VA.
                           CSED,TU
Deadlock and Starvation
    Deadlock – Two or more Processes are waiting Indefinitely for an event that can
     be caused by only one of the waiting processes

    Let S and Q be two Semaphores initialized to 1
                     P0                               P1
                 wait (S);                          wait (Q);
                 wait (Q);                          wait (S);
                     .                                  .
                     .                                  .
                     .                                  .
                signal (S);                          signal (Q);
                signal (Q);                          signal (S);

    Starvation – Indefinite Blocking. A process may never be removed from the
     semaphore queue in which it is suspended.


                            VA.
                            CSED,TU
Producer Consumer




           VA.
           CSED,TU
Solution to PC must satisfy 3 conditions




               VA.
               CSED,TU
Solution to PC with Busy Wait




              VA.
              CSED,TU
Solution to PC with Signaling




              VA.
              CSED,TU
Indivisible Operations for PC




              VA.
              CSED,TU
Readers & Writers in Banking System




             VA.
             CSED,TU
Correctness Condition for R-W Problem




               VA.
               CSED,TU
Solution outline for R-W without Writer priority




                   VA.
                   CSED,TU
Dining Philosophers




             VA.
             CSED,TU
Outline of a Philosopher Process Pi




              VA.
              CSED,TU
An Improved Outline of a Philosopher
             Process




            VA.
            CSED,TU
Reference List


Operating Systems Concepts By Silberschatz & Galvin,
       Operating systems By D M Dhamdhere,
      System Programming By John J Donovan,

                    www.os-book.com
    www.cs.jhu.edu/~yairamir/cs418/os2/sld001.htm
http://gaia.ecs.csus.edu/~zhangd/oscal/pscheduling.html
  http://www.edugrid.ac.in/iiitmk/os/os_module03.htm
     http://williamstallings.com/OS/Animations.html
                        etc…


             VA.
             CSED,TU
Thnx…



VA.
CSED,TU

Más contenido relacionado

La actualidad más candente

Synchronization
SynchronizationSynchronization
SynchronizationMohd Arif
 
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
 
Operating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationOperating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationSyaiful Ahdan
 
Critical section problem in operating system.
Critical section problem in operating system.Critical section problem in operating system.
Critical section problem in operating system.MOHIT DADU
 
ITFT_Semaphores and bounded buffer
ITFT_Semaphores and bounded bufferITFT_Semaphores and bounded buffer
ITFT_Semaphores and bounded bufferSneh Prabha
 
Semaphores OS Basics
Semaphores OS BasicsSemaphores OS Basics
Semaphores OS BasicsShijin Raj P
 
Ch7 Process Synchronization galvin
Ch7 Process Synchronization galvinCh7 Process Synchronization galvin
Ch7 Process Synchronization galvinShubham Singh
 
Operating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and DeadlocksOperating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and DeadlocksMukesh Chinta
 
Concurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and SynchronizationConcurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and SynchronizationAnas Ebrahim
 
Lec11 semaphores
Lec11 semaphoresLec11 semaphores
Lec11 semaphoresanandammca
 
Process synchronization
Process synchronizationProcess synchronization
Process synchronizationAli Ahmad
 
Peterson Critical Section Problem Solution
Peterson Critical Section Problem SolutionPeterson Critical Section Problem Solution
Peterson Critical Section Problem SolutionBipul Chandra Kar
 

La actualidad más candente (20)

OSCh7
OSCh7OSCh7
OSCh7
 
Synchronization
SynchronizationSynchronization
Synchronization
 
SYNCHRONIZATION
SYNCHRONIZATIONSYNCHRONIZATION
SYNCHRONIZATION
 
Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"
 
Operating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationOperating System-Ch6 process synchronization
Operating System-Ch6 process synchronization
 
Operating system critical section
Operating system   critical sectionOperating system   critical section
Operating system critical section
 
Critical section problem in operating system.
Critical section problem in operating system.Critical section problem in operating system.
Critical section problem in operating system.
 
ITFT_Semaphores and bounded buffer
ITFT_Semaphores and bounded bufferITFT_Semaphores and bounded buffer
ITFT_Semaphores and bounded buffer
 
Os module 2 c
Os module 2 cOs module 2 c
Os module 2 c
 
Semaphores OS Basics
Semaphores OS BasicsSemaphores OS Basics
Semaphores OS Basics
 
Os3
Os3Os3
Os3
 
Ch7 Process Synchronization galvin
Ch7 Process Synchronization galvinCh7 Process Synchronization galvin
Ch7 Process Synchronization galvin
 
Monitors
MonitorsMonitors
Monitors
 
Operating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and DeadlocksOperating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and Deadlocks
 
Concurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and SynchronizationConcurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and Synchronization
 
Lec11 semaphores
Lec11 semaphoresLec11 semaphores
Lec11 semaphores
 
Process synchronization
Process synchronizationProcess synchronization
Process synchronization
 
Peterson Critical Section Problem Solution
Peterson Critical Section Problem SolutionPeterson Critical Section Problem Solution
Peterson Critical Section Problem Solution
 
Behavioral modeling
Behavioral modelingBehavioral modeling
Behavioral modeling
 
Process synchronization
Process synchronizationProcess synchronization
Process synchronization
 

Destacado

Security & Protection
Security & ProtectionSecurity & Protection
Security & Protectionvinay arora
 
4 java - decision
4  java - decision4  java - decision
4 java - decisionvinay arora
 
2 java - operators
2  java - operators2  java - operators
2 java - operatorsvinay arora
 
1 java - data type
1  java - data type1  java - data type
1 java - data typevinay arora
 
Search engine and web crawler
Search engine and web crawlerSearch engine and web crawler
Search engine and web crawlervinay arora
 
3 java - variable type
3  java - variable type3  java - variable type
3 java - variable typevinay arora
 
CG - Introduction to Computer Graphics
CG - Introduction to Computer GraphicsCG - Introduction to Computer Graphics
CG - Introduction to Computer Graphicsvinay arora
 
CG - Input Output Devices
CG - Input Output DevicesCG - Input Output Devices
CG - Input Output Devicesvinay arora
 
CG - Output Primitives
CG - Output PrimitivesCG - Output Primitives
CG - Output Primitivesvinay arora
 

Destacado (13)

Security & Protection
Security & ProtectionSecurity & Protection
Security & Protection
 
Uta005 lecture1
Uta005 lecture1Uta005 lecture1
Uta005 lecture1
 
4 java - decision
4  java - decision4  java - decision
4 java - decision
 
2 java - operators
2  java - operators2  java - operators
2 java - operators
 
1 java - data type
1  java - data type1  java - data type
1 java - data type
 
6 java - loop
6  java - loop6  java - loop
6 java - loop
 
Search engine and web crawler
Search engine and web crawlerSearch engine and web crawler
Search engine and web crawler
 
3 java - variable type
3  java - variable type3  java - variable type
3 java - variable type
 
Uta005 lecture3
Uta005 lecture3Uta005 lecture3
Uta005 lecture3
 
Uta005 lecture2
Uta005 lecture2Uta005 lecture2
Uta005 lecture2
 
CG - Introduction to Computer Graphics
CG - Introduction to Computer GraphicsCG - Introduction to Computer Graphics
CG - Introduction to Computer Graphics
 
CG - Input Output Devices
CG - Input Output DevicesCG - Input Output Devices
CG - Input Output Devices
 
CG - Output Primitives
CG - Output PrimitivesCG - Output Primitives
CG - Output Primitives
 

Similar a Process Synchronization

Lecture18-19 (1).ppt
Lecture18-19 (1).pptLecture18-19 (1).ppt
Lecture18-19 (1).pptssuserf67e3a
 
Writing more complex models
Writing more complex modelsWriting more complex models
Writing more complex modelsMohamed Samy
 
OS Process synchronization Unit3 synchronization
OS Process synchronization Unit3  synchronizationOS Process synchronization Unit3  synchronization
OS Process synchronization Unit3 synchronizationsubhamchy2005
 
Clockless design language - ilia greenblat
Clockless design language - ilia greenblatClockless design language - ilia greenblat
Clockless design language - ilia greenblatchiportal
 
Deuce STM - CMP'09
Deuce STM - CMP'09Deuce STM - CMP'09
Deuce STM - CMP'09Guy Korland
 
Lecture_6_Process.ppt
Lecture_6_Process.pptLecture_6_Process.ppt
Lecture_6_Process.pptwafawafa52
 
Synchronization in os.pptx
Synchronization in os.pptxSynchronization in os.pptx
Synchronization in os.pptxAbdullahBhatti53
 
Arduino - Module 1.pdf
Arduino - Module 1.pdfArduino - Module 1.pdf
Arduino - Module 1.pdfrazonclarence4
 
VHDL Subprograms and Packages
VHDL Subprograms and PackagesVHDL Subprograms and Packages
VHDL Subprograms and PackagesRamasubbu .P
 
Unit Testing: Special Cases
Unit Testing: Special CasesUnit Testing: Special Cases
Unit Testing: Special CasesCiklum Ukraine
 
Threaded Programming
Threaded ProgrammingThreaded Programming
Threaded ProgrammingSri Prasanna
 
Mca ii os u-2 process management & communication
Mca  ii  os u-2 process management & communicationMca  ii  os u-2 process management & communication
Mca ii os u-2 process management & communicationRai University
 

Similar a Process Synchronization (20)

Lecture18-19 (1).ppt
Lecture18-19 (1).pptLecture18-19 (1).ppt
Lecture18-19 (1).ppt
 
CH05.pdf
CH05.pdfCH05.pdf
CH05.pdf
 
Writing more complex models
Writing more complex modelsWriting more complex models
Writing more complex models
 
Operating System
Operating SystemOperating System
Operating System
 
OS Process synchronization Unit3 synchronization
OS Process synchronization Unit3  synchronizationOS Process synchronization Unit3  synchronization
OS Process synchronization Unit3 synchronization
 
Clockless design language - ilia greenblat
Clockless design language - ilia greenblatClockless design language - ilia greenblat
Clockless design language - ilia greenblat
 
Deuce STM - CMP'09
Deuce STM - CMP'09Deuce STM - CMP'09
Deuce STM - CMP'09
 
Lecture_6_Process.ppt
Lecture_6_Process.pptLecture_6_Process.ppt
Lecture_6_Process.ppt
 
Synchronization in os.pptx
Synchronization in os.pptxSynchronization in os.pptx
Synchronization in os.pptx
 
Arduino - Module 1.pdf
Arduino - Module 1.pdfArduino - Module 1.pdf
Arduino - Module 1.pdf
 
Os2
Os2Os2
Os2
 
Vhdl introduction
Vhdl introductionVhdl introduction
Vhdl introduction
 
VHDL Subprograms and Packages
VHDL Subprograms and PackagesVHDL Subprograms and Packages
VHDL Subprograms and Packages
 
Ch7
Ch7Ch7
Ch7
 
Unit Testing: Special Cases
Unit Testing: Special CasesUnit Testing: Special Cases
Unit Testing: Special Cases
 
Java tutorial PPT
Java tutorial PPTJava tutorial PPT
Java tutorial PPT
 
Java tutorial PPT
Java tutorial  PPTJava tutorial  PPT
Java tutorial PPT
 
Threaded Programming
Threaded ProgrammingThreaded Programming
Threaded Programming
 
Mca ii os u-2 process management & communication
Mca  ii  os u-2 process management & communicationMca  ii  os u-2 process management & communication
Mca ii os u-2 process management & communication
 
Os4
Os4Os4
Os4
 

Más de vinay arora

Use case diagram (airport)
Use case diagram (airport)Use case diagram (airport)
Use case diagram (airport)vinay arora
 
Use case diagram
Use case diagramUse case diagram
Use case diagramvinay arora
 
Lab exercise questions (AD & CD)
Lab exercise questions (AD & CD)Lab exercise questions (AD & CD)
Lab exercise questions (AD & CD)vinay arora
 
SEM - UML (1st case study)
SEM - UML (1st case study)SEM - UML (1st case study)
SEM - UML (1st case study)vinay arora
 
CG - Display Devices
CG - Display DevicesCG - Display Devices
CG - Display Devicesvinay arora
 
C Prog. - Strings (Updated)
C Prog. - Strings (Updated)C Prog. - Strings (Updated)
C Prog. - Strings (Updated)vinay arora
 
C Prog. - Structures
C Prog. - StructuresC Prog. - Structures
C Prog. - Structuresvinay arora
 
A&D - Object Oriented Design using UML
A&D - Object Oriented Design using UMLA&D - Object Oriented Design using UML
A&D - Object Oriented Design using UMLvinay arora
 
C Prog - Strings
C Prog - StringsC Prog - Strings
C Prog - Stringsvinay arora
 
C Prog - Pointers
C Prog - PointersC Prog - Pointers
C Prog - Pointersvinay arora
 
A&D - Input Design
A&D - Input DesignA&D - Input Design
A&D - Input Designvinay arora
 
A&D - Object Oriented Analysis using UML
A&D - Object Oriented Analysis using UMLA&D - Object Oriented Analysis using UML
A&D - Object Oriented Analysis using UMLvinay arora
 
A&D - Use Case Diagram
A&D - Use Case DiagramA&D - Use Case Diagram
A&D - Use Case Diagramvinay arora
 

Más de vinay arora (17)

Use case diagram (airport)
Use case diagram (airport)Use case diagram (airport)
Use case diagram (airport)
 
Use case diagram
Use case diagramUse case diagram
Use case diagram
 
Lab exercise questions (AD & CD)
Lab exercise questions (AD & CD)Lab exercise questions (AD & CD)
Lab exercise questions (AD & CD)
 
SEM - UML (1st case study)
SEM - UML (1st case study)SEM - UML (1st case study)
SEM - UML (1st case study)
 
CG - Display Devices
CG - Display DevicesCG - Display Devices
CG - Display Devices
 
C Prog. - Strings (Updated)
C Prog. - Strings (Updated)C Prog. - Strings (Updated)
C Prog. - Strings (Updated)
 
C Prog. - Structures
C Prog. - StructuresC Prog. - Structures
C Prog. - Structures
 
A&D - UML
A&D - UMLA&D - UML
A&D - UML
 
A&D - Object Oriented Design using UML
A&D - Object Oriented Design using UMLA&D - Object Oriented Design using UML
A&D - Object Oriented Design using UML
 
C Prog - Strings
C Prog - StringsC Prog - Strings
C Prog - Strings
 
C Prog - Pointers
C Prog - PointersC Prog - Pointers
C Prog - Pointers
 
C Prog - Array
C Prog - ArrayC Prog - Array
C Prog - Array
 
C Prog - Array
C Prog - ArrayC Prog - Array
C Prog - Array
 
A&D - Input Design
A&D - Input DesignA&D - Input Design
A&D - Input Design
 
A&D - Object Oriented Analysis using UML
A&D - Object Oriented Analysis using UMLA&D - Object Oriented Analysis using UML
A&D - Object Oriented Analysis using UML
 
A&D - Use Case Diagram
A&D - Use Case DiagramA&D - Use Case Diagram
A&D - Use Case Diagram
 
A&D - Output
A&D - OutputA&D - Output
A&D - Output
 

Último

Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxEsquimalt MFRC
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the ClassroomPooky Knightsmith
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxmarlenawright1
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxJisc
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Pooja Bhuva
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxPooja Bhuva
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 

Último (20)

Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 

Process Synchronization

  • 1. Process Synchronization Organized By: V.A. V.A. CSED,TU
  • 2. Disclaimer This is NOT A COPYRIGHT MATERIAL Content has been taken mainly from the following books: Operating Systems Concepts By Silberschatz & Galvin , Operating systems By D M Dhamdhere, System Programming By John J Donovan etc… VA. CSED,TU
  • 3. Process & Synchronization  Process – Program in Execution.  Synchronization – Coordination.  Independent process cannot affect or be affected by the execution of another process  Cooperating process can affect or be affected by the execution of another process  Advantages of process cooperation  Information sharing  Computation speed-up  Modularity  Convenience VA. CSED,TU
  • 4. Buffer VA. CSED,TU
  • 5. Bounded-Buffer – Shared-Memory Solution  Shared Data #define BUFFER_SIZE 10 typedef struct { ... } item; item buffer [BUFFER_SIZE]; int in = 0; int out = 0;  Can only use BUFFER_SIZE-1 elements VA. CSED,TU
  • 6. Producer – Consumer VA. CSED,TU
  • 7. Bounded-Buffer – Producer while (true) { /* Produce an item */ while (((in = (in + 1) % BUFFER SIZE count) == out) ; /* do nothing -- no free buffers */ buffer[in] = item; in = (in + 1) % BUFFER SIZE; } VA. CSED,TU
  • 8. Bounded Buffer – Consumer while (true) { while (in == out) ; // do nothing -- nothing to consume // remove an item from the buffer item = buffer[out]; out = (out + 1) % BUFFER SIZE; return item; } VA. CSED,TU
  • 9. Setting Final value of Counter VA. CSED,TU
  • 10. Buffer Types  Paradigm for cooperating processes, producer process produces information that is consumed by a consumer process  Unbounded-buffer places no practical limit on the size of the buffer  Bounded-buffer assumes that there is a fixed buffer size VA. CSED,TU
  • 11. RC & CS  Race Condition – Where several processes access and manipulate the same data concurrently and the outcome of the execution depends on the particular order in which access takes place.  Critical Section – Segment of code in which Process may be changing common variables, updating a table, writing a file and so on. VA. CSED,TU
  • 12. Peterson’s Solution VA. CSED,TU
  • 13. Peterson’s Solution Var flag : array [0…1] of Boolean; Turn : 0..1; Begin Flag[0] = false; Flag[1] = false; Parbegin Repeat Repeat Flag[0] = true Flag[1] = true Turn = 1 Turn = 0 While flag[1] && turn==1 While flag[0] && turn==0 Do {nothing}; Do {nothing}; {Critical Section} {Critical Section} Flag[0] = false; Flag[1] = false; {Remainder} {Remainder} Forver; Forver; Parend end VA. CSED,TU
  • 14. Peterson’s Solution VA. CSED,TU
  • 15. Synchronization Hardware  Many Systems provide hardware support for critical section code  Uni-Processors – Could disable Interrupts  Currently running code would execute without preemption  Generally too inefficient on multiprocessor systems  Modern machines provide special atomic hardware instructions  Atomic :- Uninterruptible  Either Test memory word and Set value  Or Swap contents of two memory words VA. CSED,TU
  • 16. TestAndSet Instruction Definition: boolean TestAndSet (boolean *target) { boolean rv = *target; *target = TRUE; return rv: } VA. CSED,TU
  • 17. Solution using TestAndSet  Shared Boolean variable Lock, Initialized to FALSE. Solution: do { while ( TestAndSet (&lock )) ; /* do nothing // critical section lock = FALSE; // remainder section } while ( TRUE); VA. CSED,TU
  • 18. Swap Instruction Definition: void Swap (boolean *a, boolean *b) { boolean temp = *a; *a = *b; *b = temp: } VA. CSED,TU
  • 19. Solution using Swap  Shared Boolean variable lock initialized to FALSE, Each process has a local Boolean variable key. Solution: do { key = TRUE; while ( key == TRUE) Swap (&lock, &key ); // critical section lock = FALSE; // remainder section } while ( TRUE); VA. CSED,TU
  • 20. Semaphore  Synchronization tool that does not require busy waiting  Semaphore S – Integer Variable  Two standard operations modify S: wait() and signal()  Originally called P() and V()  Less complicated  Can only be accessed via two indivisible (atomic) operations  wait (S) { while S <= 0 ; // no-op S--; }  signal (S) { S++; } VA. CSED,TU
  • 21. Semaphore as General Synchronization Tool  Counting Semaphore – Integer value can range over an unrestricted domain  Binary Semaphore – Integer value can range only between 0 and 1, Can be simpler to Implement  Also known as Mutex locks  Can implement a counting semaphore S as a binary semaphore  Provides mutual exclusion  Semaphore S; // initialized to 1  wait (S); Critical Section signal (S); VA. CSED,TU
  • 22. Semaphore Implementation  Must guarantee that no two processes can execute wait () and signal () on the same semaphore at the same time  Thus, implementation becomes the critical section problem where the wait and signal code are placed in the critical section.  Could now have busy waiting in critical section implementation  But implementation code is short  Little busy waiting if critical section rarely occupied  Note that applications may spend lots of time in critical sections and therefore this is not a good solution. VA. CSED,TU
  • 23. Semaphore Implementation with no Busy waiting  With each Semaphore there is an associated waiting queue. Each entry in a waiting queue has two data items:  Value (of type Integer)  Pointer to next record in the list  Two operations:  Block – Place the Process invoking the operation on the appropriate waiting queue.  Wakeup – Remove one of Processes in the waiting queue and place it in the ready queue. VA. CSED,TU
  • 24. Semaphore Implementation with no Busy waiting (Cont.)  Implementation of WAIT: wait (S){ value--; if (value < 0) { add this process to waiting queue block(); } }  Implementation of SIGNAL: Signal (S){ value++; if (value <= 0) { remove a process P from the waiting queue wakeup(P); } } VA. CSED,TU
  • 25. Deadlock and Starvation  Deadlock – Two or more Processes are waiting Indefinitely for an event that can be caused by only one of the waiting processes  Let S and Q be two Semaphores initialized to 1 P0 P1 wait (S); wait (Q); wait (Q); wait (S); . . . . . . signal (S); signal (Q); signal (Q); signal (S);  Starvation – Indefinite Blocking. A process may never be removed from the semaphore queue in which it is suspended. VA. CSED,TU
  • 26. Producer Consumer VA. CSED,TU
  • 27. Solution to PC must satisfy 3 conditions VA. CSED,TU
  • 28. Solution to PC with Busy Wait VA. CSED,TU
  • 29. Solution to PC with Signaling VA. CSED,TU
  • 30. Indivisible Operations for PC VA. CSED,TU
  • 31. Readers & Writers in Banking System VA. CSED,TU
  • 32. Correctness Condition for R-W Problem VA. CSED,TU
  • 33. Solution outline for R-W without Writer priority VA. CSED,TU
  • 34. Dining Philosophers VA. CSED,TU
  • 35. Outline of a Philosopher Process Pi VA. CSED,TU
  • 36. An Improved Outline of a Philosopher Process VA. CSED,TU
  • 37. Reference List Operating Systems Concepts By Silberschatz & Galvin, Operating systems By D M Dhamdhere, System Programming By John J Donovan, www.os-book.com www.cs.jhu.edu/~yairamir/cs418/os2/sld001.htm http://gaia.ecs.csus.edu/~zhangd/oscal/pscheduling.html http://www.edugrid.ac.in/iiitmk/os/os_module03.htm http://williamstallings.com/OS/Animations.html etc… VA. CSED,TU