SlideShare uma empresa Scribd logo
1 de 23
Lecture 11: Synchronization
(Chapter 6, cont)

Operating System Concepts – 8 th Edition,

Silberschatz, Galvin and Gagne
Semaphores (by Dijkstra 1930 – 2002)
Born in Rotterdam, The Netherlands
1972 recipient of the ACM Turing Award
Responsible for
The idea of building operating systems as explicitly
synchronized sequential processes
The formal development of computer programs
Best known for
His efficient shortest path algorithm
Having designed and coded the first Algol 60 compiler.
Famous campaign for the abolition of the GOTO statement
Also known for his hand-written communications with friends
and colleagues. For example:
http://www.cs.utexas.edu/users/EWD/ewd12xx/EWD1205.PDF
Operating System Concepts – 8 th Edition

6.2

Silberschatz, Galvin and Gagne
Semaphores
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()
Also called down() and up()
The value of S can only be accessed through wait()
and signal()
wait (S) {

signal (S) {

while S <= 0

S++;

; // no-op

}

S--;
}
Operating System Concepts – 8 th Edition

6.3

Silberschatz, Galvin and Gagne
Semaphore Implementation with no Busy waiting

With each semaphore there is an associated waiting
queue.
typedef struct{
tnt value;
struct process *list;
} semaphore;
Two operations on processes:
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.

Operating System Concepts – 8 th Edition

6.4

Silberschatz, Galvin and Gagne
Semaphore Implementation with no Busy waiting (Cont.)
Implementation of wait:
wait(semaphore *S) {
S->value--;
if (S->value < 0) {
add this process to S->list;
block();
}
}
Implementation of signal:
signal(semaphore *S) {
S->value++;
if (S->value <= 0) {
remove a process P from S->list;
wakeup(P);
}
Silberschatz, Galvin and Gagne
6.5
Operating System Concepts – 8 Edition
}
th
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 mutex;

// initialized to 1

do {
wait (mutex);
// Critical Section
signal (mutex);
// remainder section
} while (TRUE);

Operating System Concepts – 8 th Edition

6.6

Silberschatz, Galvin and Gagne
Group Work (1): Signaling
One thread sends a signal to another
thread to indicate that something has
happened

Operating System Concepts – 8 th Edition

6.7

Silberschatz, Galvin and Gagne
Group Work (2): rendezvous
Generalize the signal pattern so that it works
both ways: Thread A has to wait for
Thread B and vice versa.

Thread A
a1
a2

Thread B
b1
b2

we want to guarantee that a1 happens before b2
and b1 happens before a2

Operating System Concepts – 8 th Edition

6.8

Silberschatz, Galvin and Gagne
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
Priority Inversion - Scheduling problem when lower-priority process
holds a lock needed by higher-priority process
Operating System Concepts – 8 th Edition

6.9

Silberschatz, Galvin and Gagne
Classical Problems of Synchronization
Bounded-Buffer Problem
Readers and Writers Problem
Dining-Philosophers Problem

Operating System Concepts – 8 th Edition

6.10

Silberschatz, Galvin and Gagne
Bounded-Buffer Problem
N buffers, each can hold one item
Semaphore mutex initialized to 1
Semaphore full initialized to 0
Semaphore empty initialized to N.

Operating System Concepts – 8 th Edition

6.11

Silberschatz, Galvin and Gagne
Bounded Buffer Solution
Producer:

Consumer:

do {

do {
// produce an item in nextp

wait (full);
wait (mutex);

wait (empty);
wait (mutex);

// remove an item from buffer to nextc

// add the item to the buffer

signal (mutex);
signal (empty);

signal (mutex);
signal (full);

// consume the item in nextc

} while (TRUE);
} while (TRUE);
Operating System Concepts – 8 th Edition

6.12

Silberschatz, Galvin and Gagne
Readers-Writers Problem
A data set is shared among a number of concurrent
processes
Readers – only read; they do not perform any updates
Writers – can both read and write

Problem:
Allow multiple readers to read at the same time.
Only one writer can access the shared data at the same time

Shared Data
Data set
Semaphore mutex initialized to 1
Semaphore wrt initialized to 1
Integer readcount initialized to 0
Operating System Concepts – 8 th Edition

6.13

Silberschatz, Galvin and Gagne
Readers-Writers Solution
Reader:

Writer:

do {

do {

wait (mutex) ;
readcount ++ ;
if (readcount == 1)
wait (wrt) ;
signal (mutex)

wait (wrt) ;
//

writing is performed
signal (wrt) ;

// reading is performed

} while (TRUE);
wait (mutex) ;
readcount - - ;
if (readcount == 0)
signal (wrt) ;
signal (mutex) ;
} while (TRUE);
Operating System Concepts – 8 th Edition

6.14

Silberschatz, Galvin and Gagne
Same Solution in Different Format

Operating System Concepts – 8 th Edition

6.15

Silberschatz, Galvin and Gagne
Version 2 (part 1)

Operating System Concepts – 8 th Edition

6.16

Silberschatz, Galvin and Gagne
Version 2 (part 2)

Operating System Concepts – 8 th Edition

6.17

Silberschatz, Galvin and Gagne
Dining Philosophers Problem

Operating System Concepts – 8 th Edition

6.18

Silberschatz, Galvin and Gagne
The Problem
Devise a ritual (algorithm) that will allow
the philosophers to eat.
No two philosophers can use the same fork at
the same time (mutual exclusion)
No philosopher must starve to death (avoid
deadlock and starvation … literally!)

Operating System Concepts – 8 th Edition

6.19

Silberschatz, Galvin and Gagne
What's Wrong?

Operating System Concepts – 8 th Edition

6.20

Silberschatz, Galvin and Gagne
Avoiding deadlock (only 4 philosophers)

Operating System Concepts – 8 th Edition

6.21

Silberschatz, Galvin and Gagne
Dining Philosophers: Solution

Operating System Concepts – 8 th Edition

6.22

Silberschatz, Galvin and Gagne
Operating System Concepts – 8 th Edition

6.23

Silberschatz, Galvin and Gagne

Mais conteúdo relacionado

Mais procurados

Unit II - 3 - Operating System - Process Synchronization
Unit II - 3 - Operating System - Process SynchronizationUnit II - 3 - Operating System - Process Synchronization
Unit II - 3 - Operating System - Process Synchronizationcscarcas
 
Galvin-operating System(Ch8)
Galvin-operating System(Ch8)Galvin-operating System(Ch8)
Galvin-operating System(Ch8)dsuyal1
 
Operating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationOperating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationSyaiful Ahdan
 
Galvin-operating System(Ch7)
Galvin-operating System(Ch7)Galvin-operating System(Ch7)
Galvin-operating System(Ch7)dsuyal1
 
Lec11 semaphores
Lec11 semaphoresLec11 semaphores
Lec11 semaphoresanandammca
 
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
 
Chapter 8 Operating Systems silberschatz : deadlocks
Chapter 8 Operating Systems silberschatz : deadlocksChapter 8 Operating Systems silberschatz : deadlocks
Chapter 8 Operating Systems silberschatz : deadlocksGiulianoRanauro
 
Synchronization hardware
Synchronization hardwareSynchronization hardware
Synchronization hardwareSaeram Butt
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationWayne Jones Jnr
 
Galvin-operating System(Ch6)
Galvin-operating System(Ch6)Galvin-operating System(Ch6)
Galvin-operating System(Ch6)dsuyal1
 
Galvin-operating System(Ch4)
Galvin-operating System(Ch4)Galvin-operating System(Ch4)
Galvin-operating System(Ch4)dsuyal1
 
5 process synchronization
5 process synchronization5 process synchronization
5 process synchronizationBaliThorat1
 
Process synchronization
Process synchronizationProcess synchronization
Process synchronizationSaad11233
 
Synchronization
SynchronizationSynchronization
SynchronizationMohd Arif
 
Process synchronization in Operating Systems
Process synchronization in Operating SystemsProcess synchronization in Operating Systems
Process synchronization in Operating SystemsRitu Ranjan Shrivastwa
 
6 cpu scheduling
6 cpu scheduling6 cpu scheduling
6 cpu schedulingBaliThorat1
 
Concurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and SynchronizationConcurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and SynchronizationAnas Ebrahim
 

Mais procurados (20)

Unit II - 3 - Operating System - Process Synchronization
Unit II - 3 - Operating System - Process SynchronizationUnit II - 3 - Operating System - Process Synchronization
Unit II - 3 - Operating System - Process Synchronization
 
Galvin-operating System(Ch8)
Galvin-operating System(Ch8)Galvin-operating System(Ch8)
Galvin-operating System(Ch8)
 
Operating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationOperating System-Ch6 process synchronization
Operating System-Ch6 process synchronization
 
Galvin-operating System(Ch7)
Galvin-operating System(Ch7)Galvin-operating System(Ch7)
Galvin-operating System(Ch7)
 
Lec11 semaphores
Lec11 semaphoresLec11 semaphores
Lec11 semaphores
 
Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"
 
Chapter 8 Operating Systems silberschatz : deadlocks
Chapter 8 Operating Systems silberschatz : deadlocksChapter 8 Operating Systems silberschatz : deadlocks
Chapter 8 Operating Systems silberschatz : deadlocks
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
 
Synchronization hardware
Synchronization hardwareSynchronization hardware
Synchronization hardware
 
Process synchronization in operating system
Process synchronization in operating systemProcess synchronization in operating system
Process synchronization in operating system
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process Synchronization
 
Galvin-operating System(Ch6)
Galvin-operating System(Ch6)Galvin-operating System(Ch6)
Galvin-operating System(Ch6)
 
Galvin-operating System(Ch4)
Galvin-operating System(Ch4)Galvin-operating System(Ch4)
Galvin-operating System(Ch4)
 
5 process synchronization
5 process synchronization5 process synchronization
5 process synchronization
 
Process synchronization
Process synchronizationProcess synchronization
Process synchronization
 
Synchronization
SynchronizationSynchronization
Synchronization
 
Process synchronization in Operating Systems
Process synchronization in Operating SystemsProcess synchronization in Operating Systems
Process synchronization in Operating Systems
 
6 cpu scheduling
6 cpu scheduling6 cpu scheduling
6 cpu scheduling
 
Concurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and SynchronizationConcurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and Synchronization
 

Semelhante a Lec11 semaphores

05-Process-Synchronization.pdf
05-Process-Synchronization.pdf05-Process-Synchronization.pdf
05-Process-Synchronization.pdfmilisjojo
 
Process Synchronisation Operating System
Process Synchronisation Operating SystemProcess Synchronisation Operating System
Process Synchronisation Operating SystemDRAnithaSofiaLizCSES
 
process synchronisation operating system
process synchronisation operating systemprocess synchronisation operating system
process synchronisation operating systemcodefast
 
تعليم البرمجه.pdf
تعليم البرمجه.pdfتعليم البرمجه.pdf
تعليم البرمجه.pdfssuser893014
 
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
 
ch5 [Autosaved].ppt
ch5 [Autosaved].pptch5 [Autosaved].ppt
ch5 [Autosaved].pptmonirJihad2
 
Operating System-Process Synchronization
Operating System-Process SynchronizationOperating System-Process Synchronization
Operating System-Process Synchronizationbismahmalik22
 
chapter5 processes of synchronizatio ppt
chapter5 processes of synchronizatio pptchapter5 processes of synchronizatio ppt
chapter5 processes of synchronizatio pptAbdikani34
 
ch5-Process_Synchronization.pdf
ch5-Process_Synchronization.pdfch5-Process_Synchronization.pdf
ch5-Process_Synchronization.pdfsharada3
 
ch5.ppt operating system
ch5.ppt operating systemch5.ppt operating system
ch5.ppt operating systemSami Mughal
 

Semelhante a Lec11 semaphores (20)

chapter4.pptx
chapter4.pptxchapter4.pptx
chapter4.pptx
 
PS.ppt
PS.pptPS.ppt
PS.ppt
 
05-Process-Synchronization.pdf
05-Process-Synchronization.pdf05-Process-Synchronization.pdf
05-Process-Synchronization.pdf
 
Process Synchronisation Operating System
Process Synchronisation Operating SystemProcess Synchronisation Operating System
Process Synchronisation Operating System
 
process synchronisation operating system
process synchronisation operating systemprocess synchronisation operating system
process synchronisation operating system
 
تعليم البرمجه.pdf
تعليم البرمجه.pdfتعليم البرمجه.pdf
تعليم البرمجه.pdf
 
ch6-1.ppt
ch6-1.pptch6-1.ppt
ch6-1.ppt
 
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
 
ch5 [Autosaved].ppt
ch5 [Autosaved].pptch5 [Autosaved].ppt
ch5 [Autosaved].ppt
 
ch05.ppt
ch05.pptch05.ppt
ch05.ppt
 
Operating System-Process Synchronization
Operating System-Process SynchronizationOperating System-Process Synchronization
Operating System-Process Synchronization
 
ch5.ppt
ch5.pptch5.ppt
ch5.ppt
 
ch5.ppt
ch5.pptch5.ppt
ch5.ppt
 
Process Synchronization
Process SynchronizationProcess Synchronization
Process Synchronization
 
chapter5 processes of synchronizatio ppt
chapter5 processes of synchronizatio pptchapter5 processes of synchronizatio ppt
chapter5 processes of synchronizatio ppt
 
ch5-Process_Synchronization.pdf
ch5-Process_Synchronization.pdfch5-Process_Synchronization.pdf
ch5-Process_Synchronization.pdf
 
ch5.ppt operating system
ch5.ppt operating systemch5.ppt operating system
ch5.ppt operating system
 
ch6.ppt
ch6.pptch6.ppt
ch6.ppt
 
Lecture#5
Lecture#5Lecture#5
Lecture#5
 
Os3
Os3Os3
Os3
 

Último

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Último (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

Lec11 semaphores

  • 1. Lecture 11: Synchronization (Chapter 6, cont) Operating System Concepts – 8 th Edition, Silberschatz, Galvin and Gagne
  • 2. Semaphores (by Dijkstra 1930 – 2002) Born in Rotterdam, The Netherlands 1972 recipient of the ACM Turing Award Responsible for The idea of building operating systems as explicitly synchronized sequential processes The formal development of computer programs Best known for His efficient shortest path algorithm Having designed and coded the first Algol 60 compiler. Famous campaign for the abolition of the GOTO statement Also known for his hand-written communications with friends and colleagues. For example: http://www.cs.utexas.edu/users/EWD/ewd12xx/EWD1205.PDF Operating System Concepts – 8 th Edition 6.2 Silberschatz, Galvin and Gagne
  • 3. Semaphores 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() Also called down() and up() The value of S can only be accessed through wait() and signal() wait (S) { signal (S) { while S <= 0 S++; ; // no-op } S--; } Operating System Concepts – 8 th Edition 6.3 Silberschatz, Galvin and Gagne
  • 4. Semaphore Implementation with no Busy waiting With each semaphore there is an associated waiting queue. typedef struct{ tnt value; struct process *list; } semaphore; Two operations on processes: 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. Operating System Concepts – 8 th Edition 6.4 Silberschatz, Galvin and Gagne
  • 5. Semaphore Implementation with no Busy waiting (Cont.) Implementation of wait: wait(semaphore *S) { S->value--; if (S->value < 0) { add this process to S->list; block(); } } Implementation of signal: signal(semaphore *S) { S->value++; if (S->value <= 0) { remove a process P from S->list; wakeup(P); } Silberschatz, Galvin and Gagne 6.5 Operating System Concepts – 8 Edition } th
  • 6. 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 mutex; // initialized to 1 do { wait (mutex); // Critical Section signal (mutex); // remainder section } while (TRUE); Operating System Concepts – 8 th Edition 6.6 Silberschatz, Galvin and Gagne
  • 7. Group Work (1): Signaling One thread sends a signal to another thread to indicate that something has happened Operating System Concepts – 8 th Edition 6.7 Silberschatz, Galvin and Gagne
  • 8. Group Work (2): rendezvous Generalize the signal pattern so that it works both ways: Thread A has to wait for Thread B and vice versa. Thread A a1 a2 Thread B b1 b2 we want to guarantee that a1 happens before b2 and b1 happens before a2 Operating System Concepts – 8 th Edition 6.8 Silberschatz, Galvin and Gagne
  • 9. 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 Priority Inversion - Scheduling problem when lower-priority process holds a lock needed by higher-priority process Operating System Concepts – 8 th Edition 6.9 Silberschatz, Galvin and Gagne
  • 10. Classical Problems of Synchronization Bounded-Buffer Problem Readers and Writers Problem Dining-Philosophers Problem Operating System Concepts – 8 th Edition 6.10 Silberschatz, Galvin and Gagne
  • 11. Bounded-Buffer Problem N buffers, each can hold one item Semaphore mutex initialized to 1 Semaphore full initialized to 0 Semaphore empty initialized to N. Operating System Concepts – 8 th Edition 6.11 Silberschatz, Galvin and Gagne
  • 12. Bounded Buffer Solution Producer: Consumer: do { do { // produce an item in nextp wait (full); wait (mutex); wait (empty); wait (mutex); // remove an item from buffer to nextc // add the item to the buffer signal (mutex); signal (empty); signal (mutex); signal (full); // consume the item in nextc } while (TRUE); } while (TRUE); Operating System Concepts – 8 th Edition 6.12 Silberschatz, Galvin and Gagne
  • 13. Readers-Writers Problem A data set is shared among a number of concurrent processes Readers – only read; they do not perform any updates Writers – can both read and write Problem: Allow multiple readers to read at the same time. Only one writer can access the shared data at the same time Shared Data Data set Semaphore mutex initialized to 1 Semaphore wrt initialized to 1 Integer readcount initialized to 0 Operating System Concepts – 8 th Edition 6.13 Silberschatz, Galvin and Gagne
  • 14. Readers-Writers Solution Reader: Writer: do { do { wait (mutex) ; readcount ++ ; if (readcount == 1) wait (wrt) ; signal (mutex) wait (wrt) ; // writing is performed signal (wrt) ; // reading is performed } while (TRUE); wait (mutex) ; readcount - - ; if (readcount == 0) signal (wrt) ; signal (mutex) ; } while (TRUE); Operating System Concepts – 8 th Edition 6.14 Silberschatz, Galvin and Gagne
  • 15. Same Solution in Different Format Operating System Concepts – 8 th Edition 6.15 Silberschatz, Galvin and Gagne
  • 16. Version 2 (part 1) Operating System Concepts – 8 th Edition 6.16 Silberschatz, Galvin and Gagne
  • 17. Version 2 (part 2) Operating System Concepts – 8 th Edition 6.17 Silberschatz, Galvin and Gagne
  • 18. Dining Philosophers Problem Operating System Concepts – 8 th Edition 6.18 Silberschatz, Galvin and Gagne
  • 19. The Problem Devise a ritual (algorithm) that will allow the philosophers to eat. No two philosophers can use the same fork at the same time (mutual exclusion) No philosopher must starve to death (avoid deadlock and starvation … literally!) Operating System Concepts – 8 th Edition 6.19 Silberschatz, Galvin and Gagne
  • 20. What's Wrong? Operating System Concepts – 8 th Edition 6.20 Silberschatz, Galvin and Gagne
  • 21. Avoiding deadlock (only 4 philosophers) Operating System Concepts – 8 th Edition 6.21 Silberschatz, Galvin and Gagne
  • 22. Dining Philosophers: Solution Operating System Concepts – 8 th Edition 6.22 Silberschatz, Galvin and Gagne
  • 23. Operating System Concepts – 8 th Edition 6.23 Silberschatz, Galvin and Gagne

Notas do Editor

  1. This solution uses semaphores, showing one instance each of a reader and a writer; the solution does not change for multiple readers and writers. Once a single reader has begun to access the data area, it is possible for readers to retain control of the data area as long as there is at least one reader in the act of reading. Therefore, writers are subject to starvation.
  2. This solution guarantees that no new readers are allowed access to the data area once at least one writer has declared a desire to write. Continued on next slide
  3. Five philosophers live in a house, where a table is laid for them. The life of each philosopher consists principally of thinking and eating, and through years of thought, all of the philosophers had agreed that the only food that contributed to their thinking efforts was spaghetti. Due to a lack of manual skill, each philosopher requires two forks to eat spaghetti. A philosopher wishing to eat goes to his or her assigned place at the table and, using the two forks on either side of the plate, takes and eats some spaghetti.
  4. Each philosopher picks up first the fork on the left and then the fork on the right. After the philosopher is finished eating, the two forks are replaced on the table. This solution, alas, leads to deadlock: If all of the philosophers are hungry at the same time, they all sit down, they all pick up the fork on their left, and they all reach out for the other fork, which is not there. In this undignified position, all philosophers starve.
  5. We could consider adding an attendant who only allows four philosophers at a time into the dining room. With at most four seated philosophers, at least one philosopher will have access to two forks. This slide shows such a solution, again using semaphores. This solution is free of deadlock and starvation.