SlideShare uma empresa 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

Mais conteúdo relacionado

Mais procurados

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
 

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

Destaque

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
 

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

Semelhante 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
 

Semelhante 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
 

Mais 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
 

Mais 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

microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...KokoStevan
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
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
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.MateoGardella
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterMateoGardella
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 

Último (20)

microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.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.
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 

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