We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Presentation is loading. Please wait.
Published byChaim Jester
Modified about 1 year ago
© 2004, D. J. Foreman 1 Basic Synchronization Semaphores
© 2004, D. J. Foreman 2 One Problem (of many) T1T2 count++ //compiles as:count-- //compiles as: register1 = countregister2 = count register1 = register1 + 1 register2 = register2 - 1 count = register1count = 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 3 Conditions/Requirements n processes competing for shared data Each process has a code segment, called a critical section, (CS) which uses the shared data Must guarantee: ■ only 1 thread may be in its 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 4 Solution Proposals 1. Turn interrupts off (not MP safe) 2. Flag in kernel to disallow context switch (works for kernel routines too) (MP safe) 3. 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 4. Busy wait or “spin lock”..\..\552pages\slides\addenda\Classical Solutions to Mutual Exclusion.pptx
© 2004, D. J. Foreman 5 Clever S/W-Only Solution Shared memory int flag [0..1]; int turn Process 0 code flag := T; turn := 1; while (flag  and turn =1) do no-op; critical section flag := F;
© 2004, D. J. Foreman 6 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 WAITMOVAX,1 XCHGFLAG,AX CMPAX,1 JEWAIT ---- critical section MOVFLAG,0
© 2004, D. J. Foreman 7 Spin Locks While (flag); // loops until flag=0 Wastes CPU time Makes user seem “bad”
© 2004, D. J. Foreman 8 Another Critical Section Problem Loadr1,bal Loadr2,amount Addr1,r2 Storer1,bal Loadr1,bal Loadr2,amount Subr1,r2 Storer1,bal p1, p2 are in a race bal=bal + amount bal=bal - amount interrupt context-switch
© 2004, D. J. Foreman 9 Locking a Critical Section While(lock) wait; lock=true Loadr1,bal Loadr2,amount Addr1,r2 Storer1,bal lock=false While(lock) wait; lock=true; Loadr1,bal Loadr2,amount Subr1,r2 Storer1,bal lock=false bal=bal + amountbal=bal - amount
© 2004, D. J. Foreman 10 Wait & Signal Classical definitions ■ Wait – Originally was P(s) DO WHILE (s<=0) // make me wait wait;// The wait is interruptible s=s-1; ■ Signal - 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 11 Strategies 1. User-only mode software 2. Disabling interrupts 3. H/W & O/S support
© 2004, D. J. Foreman 12 Acceptable Solutions 1. One process at a time in CritSec 2. Entry decision made by entrants 3. No indefinite wait allowed 4. Limit to predecessors
© 2004, D. J. Foreman 13 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 1 Basic Synchronization Semaphores.
© 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.
Chapter 6: Process Synchronization. 6.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 8, 2005 Objectives Understand.
Operating Systems CSE 411 CPU Management Oct Lecture 13 Instructor: Bhuvan Urgaonkar.
Chapter 6: Process Synchronization. 6.2 Objectives To introduce the critical-section problem, whose solutions can be used to ensure the consistency of.
Process Synchronization. Module 6: Process Synchronization Background The Critical-Section Problem Peterson’s Solution Synchronization Hardware Semaphores.
Ceng Operating Systems Chapter 2.3 : Interprocess Communication Process concept Process scheduling Interprocess communication Deadlocks.
Synchronization CSCI 3753 Operating Systems Spring 2005 Prof. Rick Han.
6.3 Peterson’s Solution The two processes share two variables: Int turn; Boolean flag The variable turn indicates whose turn it is to enter the critical.
Ch. 7 Process Synchronization (1/2) I Background F Producer - Consumer process : Compiler, Assembler, Loader, · · · · · · F Bounded buffer.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 6: Process Synchronization.
5.6 Semaphores Semaphores –Software construct that can be used to enforce mutual exclusion –Contains a protected variable Can be accessed only via wait.
Adopted from and based on Textbook: Operating System Concepts – 8th Edition, by Silberschatz, Galvin and Gagne Updated and Modified by Dr. Abdullah Basuhail,
Synchronization Principles. Race Conditions Race Conditions: An Example spooler directory out in 4 7 somefile.txt list.c scores.txt Process.
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D.
Chapter 1 Computer System Overview Sections 1.1 to 1.6 Instruction exe cution Interrupt Memory hierarchy Cache memory Locality: spatial and temporal Problem.
CH7 discussion-review Mahmoud Alhabbash. Q1 What is a Race Condition? How could we prevent that? – Race condition is the situation where several processes.
Mutual Exclusion. Readings r Silbershatz: Chapter 6 2.
Background Concurrent access to shared data may result in data inconsistency Maintaining data consistency requires mechanisms to ensure the orderly execution.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 6: Process Synchronization.
Process Synchronization. Concurrency Definition: Two or more processes execute concurrently when they execute different activities on different devices.
Operating Systems CSE 411 CPU Management Dec Lecture Instructor: Bhuvan Urgaonkar.
Chapter 6: Process Synchronization. 6.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Module 6: Process Synchronization Background The.
Mutual Exclusion -- Addendum. Mutual Exclusion in Critical Sections.
Semaphores. Announcements No CS 415 Section this Friday Tom Roeder will hold office hours Homework 2 is due today.
Chapter 7 -1 CHAPTER 7 PROCESS SYNCHRONIZATION CGS Operating System Concepts UCF, Spring 2004.
CS399 New Beginnings Jonathan Walpole. 2 Concurrent Programming & Synchronization Primitives.
Thread Implementations; MUTEX Reference on thread implementation –text: Tanenbaum ch. 2.2 Reference on mutual exclusion (MUTEX) –text: Tanenbaum ch
CS444/CS544 Operating Systems Synchronization 2/21/2006 Prof. Searleman
Instructor: Umar KalimNUST Institute of Information Technology Operating Systems Process Synchronization.
Synchronization. Shared Memory Thread Synchronization Threads cooperate in multithreaded environments – User threads and kernel threads – Share resources.
1 CS 333 Introduction to Operating Systems Class 4 – Synchronization Primitives Semaphores Jonathan Walpole Computer Science Portland State University.
6.1 Silberschatz, Galvin and Gagne ©2005 Operating System Principles 6.5 Semaphore Less complicated than the hardware-based solutions Semaphore S – integer.
5.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 5: CPU Scheduling.
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.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-5 Process Synchronization Department of Computer Science and Software.
Cpr E 308 Spring 2004 Recap for Midterm Introductory Material What belongs in the OS, what doesn’t? Basic Understanding of Hardware, Memory Hierarchy.
1 Chapter 2.3 : Interprocess Communication Process concept Process concept Process scheduling Process scheduling Interprocess communication Interprocess.
Chapter 6 Synchronization Dr. Yingwu Zhu. The Problem with Concurrent Execution Concurrent processes (& threads) often access shared data and resources.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts Essentials – 9 th Edition Chapter 5: Process Synchronization.
Race Conditions CS550 Operating Systems. Review So far, we have discussed Processes and Threads and talked about multithreading and MPI processes by example.
Chapter 6: Process Synchronization. 6.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 8, 2005 Module 6: Process Synchronization.
Critical Problem Revisit. Critical Sections Mutual exclusion Only one process can be in the critical section at a time Without mutual exclusion, results.
Silberschatz, Galvin and Gagne ©2009 Edited by Khoury, 2015 Operating System Concepts – 9 th Edition, Chapter 5: Process Synchronization.
CS444/CS544 Operating Systems Synchronization 2/16/2007 Prof. Searleman
Synchronization CSCI 444/544 Operating Systems Fall 2008.
Concurrency in Shared Memory Systems Synchronization and Mutual Exclusion.
1 Critical Section Problem CIS 450 Winter 2003 Professor Jinhua Guo.
Process Synchronization. Objectives To introduce the critical-section problem, whose solutions can be used to ensure the consistency of shared data To.
Chapter 5 Concurrency: Mutual Exclusion and Synchronization Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee.
© 2017 SlidePlayer.com Inc. All rights reserved.