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
Synchronization
Mohd Arif
 
Lec11 semaphores
Lec11 semaphoresLec11 semaphores
Lec11 semaphores
anandammca
 

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 (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

Clockless design language - ilia greenblat
Clockless design language - ilia greenblatClockless design language - ilia greenblat
Clockless design language - ilia greenblat
chiportal
 
Threaded Programming
Threaded ProgrammingThreaded Programming
Threaded Programming
Sri Prasanna
 

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 (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

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
heathfieldcps1
 
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
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 

Último (20)

Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
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
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
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
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.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
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
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...
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
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
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 

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