Basic Synchronization

Slides:



Advertisements
Similar presentations
Ch. 7 Process Synchronization (1/2) I Background F Producer - Consumer process :  Compiler, Assembler, Loader, · · · · · · F Bounded buffer.
Advertisements

Chapter 6: Process Synchronization
5.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 5: CPU Scheduling.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 6: Process Synchronization.
Process Synchronization. Module 6: Process Synchronization Background The Critical-Section Problem Peterson’s Solution Synchronization Hardware Semaphores.
Mutual Exclusion.
CH7 discussion-review Mahmoud Alhabbash. Q1 What is a Race Condition? How could we prevent that? – Race condition is the situation where several processes.
© 2004, D. J. Foreman 1 Basic Synchronization Semaphores.
Cpr E 308 Spring 2004 Recap for Midterm Introductory Material What belongs in the OS, what doesn’t? Basic Understanding of Hardware, Memory Hierarchy.
Synchronization. Shared Memory Thread Synchronization Threads cooperate in multithreaded environments – User threads and kernel threads – Share resources.
CS444/CS544 Operating Systems Synchronization 2/21/2006 Prof. Searleman
5.6 Semaphores Semaphores –Software construct that can be used to enforce mutual exclusion –Contains a protected variable Can be accessed only via wait.
Chapter 6: Process Synchronization. 6.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 8, 2005 Objectives Understand.
Semaphores. Announcements No CS 415 Section this Friday Tom Roeder will hold office hours Homework 2 is due today.
Synchronization Principles. Race Conditions Race Conditions: An Example spooler directory out in 4 7 somefile.txt list.c scores.txt Process.
Chapter 2.3 : Interprocess Communication
1 Chapter 6: Concurrency: Mutual Exclusion and Synchronization Operating System Spring 2007 Chapter 6 of textbook.
Race Conditions CS550 Operating Systems. Review So far, we have discussed Processes and Threads and talked about multithreading and MPI processes by example.
Instructor: Umar KalimNUST Institute of Information Technology Operating Systems Process Synchronization.
Adopted from and based on Textbook: Operating System Concepts – 8th Edition, by Silberschatz, Galvin and Gagne Updated and Modified by Dr. Abdullah Basuhail,
1 Race Conditions/Mutual Exclusion Segment of code of a process where a shared resource is accessed (changing global variables, writing files etc) is called.
Operating Systems CSE 411 CPU Management Oct Lecture 13 Instructor: Bhuvan Urgaonkar.
6.3 Peterson’s Solution The two processes share two variables: Int turn; Boolean flag[2] The variable turn indicates whose turn it is to enter the critical.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts Essentials – 9 th Edition Chapter 5: Process Synchronization.
© 2004, D. J. Foreman 1 Basic Synchronization Semaphores.
Background Concurrent access to shared data may result in data inconsistency Maintaining data consistency requires mechanisms to ensure the orderly execution.
CS399 New Beginnings Jonathan Walpole. 2 Concurrent Programming & Synchronization Primitives.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-5 Process Synchronization Department of Computer Science and Software.
Operating Systems CSE 411 CPU Management Dec Lecture Instructor: Bhuvan Urgaonkar.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 6: Process Synchronization.
© 2004, D. J. Foreman 1 Basic Synchronization. © 2004, D. J. Foreman 2 The Problem  Given: "i" is global  i++; expands into: LDAi ADAi,1 STAi  What.
Synchronization CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han.
CS4315A. Berrached:CMS:UHD1 Process Synchronization Chapter 8.
1 Critical Section Problem CIS 450 Winter 2003 Professor Jinhua Guo.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 6: Process Synchronization.
Implementing Mutual Exclusion Andy Wang Operating Systems COP 4610 / CGS 5765.
Mutual Exclusion -- Addendum. Mutual Exclusion in Critical Sections.
Chapter 6 Synchronization Dr. Yingwu Zhu. The Problem with Concurrent Execution Concurrent processes (& threads) often access shared data and resources.
Process Synchronization. Concurrency Definition: Two or more processes execute concurrently when they execute different activities on different devices.
6.1 Silberschatz, Galvin and Gagne ©2005 Operating System Principles 6.5 Semaphore Less complicated than the hardware-based solutions Semaphore S – integer.
Interprocess Communication Race Conditions
Sarah Diesburg Operating Systems COP 4610
CS703 – Advanced Operating Systems
Process Synchronization
Chapter 5: Process Synchronization
Process Synchronization: Semaphores
Background on the need for Synchronization
Synchronization.
Chapter 5: Process Synchronization
Thread Implementations; MUTEX
Synchronization Issues
Process Synchronization
Lecture 22 Syed Mansoor Sarwar
COMS Prelim 1 Review Session
Module 7a: Classic Synchronization
Lecture 2 Part 2 Process Synchronization
Critical section problem
Grades.
Implementing Mutual Exclusion
Concurrency: Mutual Exclusion and Process Synchronization
Implementing Mutual Exclusion
Thread Implementations; MUTEX
CSE 153 Design of Operating Systems Winter 19
CS333 Intro to Operating Systems
Chapter 6: Synchronization Tools
Process Synchronization
Process Synchronization
CSE 542: Operating Systems
CSE 542: Operating Systems
Sarah Diesburg Operating Systems CS 3430
Presentation transcript:

Basic Synchronization Semaphores © 2004, D. J. Foreman

One Problem (of many) What if an interrupt occurs and t2 gets control? T1 T2 count++ //compiles as: count-- //compiles as: register1 = count register2 = count register1 = register1 + 1 register2 = register2 - 1 count = register1 count = register2 What if an interrupt occurs and t2 gets control? This is a “Critical Section” Incorrect values of "count" can result due to time-slicing How do we prevent such errors Note: "count" is global © 2004, D. J. Foreman

Conditions/Requirements n threads competing for shared data Each thread has a code segment, called a critical section, (CS) which uses the shared data Must guarantee: only 1 thread may be in that critical section at a time Only a thread inside a CS may determine if a thread may enter Bounded waiting (no starvation) © 2004, D. J. Foreman

Solution Proposals Turn interrupts off (not MP safe) Flag in kernel to disallow context switch (works for kernel routines too) (MP safe) loses overlapping Semaphores (MP safe) Implemented as h/w inst 80x86 has XCHG (not MP safe) Swaps RAM & register in 1 inst cycle not 1 bus cycle Busy wait or “spin lock” ..\..\552pages\slides\addenda\Classical Solutions to Mutual Exclusion.pptx © 2004, D. J. Foreman

Clever S/W-Only Solution Shared memory int flag [0..1]; int turn Process 0 code flag[0] := T; turn := 1; while (flag [1] and turn =1) do no-op; critical section flag[0] := F; © 2004, D. J. Foreman

Semaphores Sometimes called an “indivisible test and set.” In 80x86 - XCHG, swaps 1 RAM location and a register in one instruction cycle (but not one bus cycle – so not useful in multi-processor environments – unless enhanced.) Flag – global – initially 0 WAIT MOV AX,1 XCHG FLAG,AX CMP AX,1 JE WAIT - --- critical section MOV FLAG,0 © 2004, D. J. Foreman

Spin Locks While (flag); // loops until flag=0 Wastes CPU time Makes user seem “bad” © 2004, D. J. Foreman

Another Critical Section Problem Load r1,bal Load r2,amount Add r1,r2 Store r1,bal Load r1,bal Load r2,amount Sub r1,r2 Store r1,bal context-switch interrupt bal=bal + amount bal=bal - amount p1, p2 are in a race © 2004, D. J. Foreman

Locking a Critical Section While(lock) wait; lock=true Load r1,bal Load r2,amount Add r1,r2 Store r1,bal lock=false While(lock) wait; lock=true; Load r1,bal Load r2,amount Sub r1,r2 Store r1,bal lock=false bal=bal + amount bal=bal - amount © 2004, D. J. Foreman

Wait & Signal Classical definitions sem_wait – Originally was P(s) DO WHILE (s<=0) // make me wait wait; // The wait is interruptible s=s-1; sem_post - Originally was V(s) s=s+1; // tell others I'm done Remember: these must appear as ATOMIC operations to the application "s" is global © 2004, D. J. Foreman

Strategies User-only mode software Disabling interrupts H/W & O/S support © 2004, D. J. Foreman

Acceptable Solutions One process at a time in CritSec Entry decision made by entrants No indefinite wait allowed Limit to predecessors © 2004, D. J. Foreman

Additional Problems Semaphores only protect the CritSec Signaling adds need for more semaphores Classical problems: Bounded Buffer also known as Producer-Consumer Readers & Writers Readers have precedence Writers have precedence © 2004, D. J. Foreman