1 / 17

Process Synchronization III

CS423UG Operating Systems Process Synchronization III Indranil Gupta Lecture 10 Sep 16, 2005 Today’s Agenda Classical synchronization problems Producer-Consumer problem Bounded Buffer Problem Reader Writer Problem Dining Philosophers Problem

Faraday
Télécharger la présentation

Process Synchronization III

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS423UG Operating Systems Process Synchronization III Indranil Gupta Lecture 10 Sep 16, 2005

  2. Today’s Agenda • Classical synchronization problems • Producer-Consumer problem • Bounded Buffer Problem • Reader Writer Problem • Dining Philosophers Problem • Sleeping Barber Problem • IPC CS 423UG- Operating Systems, Indranil Gupta

  3. III. Reader-Writer Problem • A reader: read data • A writer: write data • Rules: • Multiple readers may read the data simultaneously • Only one writer can write the data at any time • A reader and a writer cannot access data simultaneously • Locking table: whether any two can be in the critical section simultaneously CS 423UG- Operating Systems, Indranil Gupta

  4. Reader-Writer Solution • Does it work? Why? • Ask Systematic questions, and look at What if ? scenarios… • Play the devil’s advocate! Semaphore mutex, wrt; // shared and initialized to 1; int readcount; // shared and initialized to 0 // Writer // Reader Down(mutex); readcount:=readcount+1; Down(wrt); if readcount == 1 then Down(wrt); ...... Up(mutex); writing performed .... ..... reading performed Down(mutex); Up(wrt); readcount:=readcount-1; if readcount == 0 then Up(wrt); Up(mutex); CS 423UG- Operating Systems, Indranil Gupta

  5. IV. Dining Philosophers: an intellectual game 0 • N philosophers and N forks • Philosophers eat/think • Eating needs 2 forks • Pick one fork at a time 1 0 4 1 2 4 3 3 2 N=5 CS 423UG- Operating Systems, Indranil Gupta

  6. Does this solve the Dining Philosophers Problem? A non-solution to the dining philosophers problem • Deadlock: everyone picks up their left fork first, then waits… => Starvation! CS 423UG- Operating Systems, Indranil Gupta

  7. Dining Philosophers Solution (s[n] inited to 0’s) CS 423UG- Operating Systems, Indranil Gupta

  8. Dining Philosophers Solution Can prove that this solution is deadlock-free and starvation-free CS 423UG- Operating Systems, Indranil Gupta

  9. V. The Sleeping Barber Problem • N customer chairs (waiting chairs) • One barber who can cut one customer’s hair at any time • No waiting customer => barber sleeps • Customer enters => • If all waiting chairs full, customer leaves • Otherwise, if barber asleep, wake up barber and make him work • Otherwise, barber is busy – wait in a chair CS 423UG- Operating Systems, Indranil Gupta

  10. The Sleeping Barber Solution (1) CS 423UG- Operating Systems, Indranil Gupta

  11. The Sleeping Barber Solution (2) CS 423UG- Operating Systems, Indranil Gupta

  12. The Sleeping Barber Solution (3) Solution to sleeping barber problem. CS 423UG- Operating Systems, Indranil Gupta

  13. Epilogue: IPC (Interprocess Communication) • Real life analogy: email! • Can two processes on a machine send “email” to each other? • IPC: An indirect way of coordination, where the OS (and/or network) helps processes! • An IPC primitive: Message Passing • Send (destination, &message) • Receive (source, &message) • Message size: Fixed or Variable size. CS 423UG- Operating Systems, Indranil Gupta

  14. Message Passing Example: Unix pipes CS 423UG- Operating Systems, Indranil Gupta

  15. IPC=Indirect Communication: Implicit Coordination provided through library/system calls send(A,message) /* send a message to mailbox A */ receive(A,message) /* receive a message from mailbox A */ • Mailbox is an abstract object into which a message can be placed in, or removed from. Example: Unix message queues CS 423UG- Operating Systems, Indranil Gupta

  16. Advantage of Indirect Communication • Allows greater variety of schemes: • two processes per link • 1 link per pair of processes • Uni- or bi-directional • allow 1 process to receive a message from a link • allow 1 process to receive all messages from a link • What if a process sends when queue is full? Receive when queue is empty? • Pipe and message queue implementations themselves use sempahores/mutexes within them! Unix: msgget() and msgsnd() for message queues CS 423UG- Operating Systems, Indranil Gupta

  17. Reminders • Reading for this week’s lectures were Sections 2.3-2.4 • Reading for next week: Chapter 3 (full) • MP1 due next Monday CS 423UG- Operating Systems, Indranil Gupta

More Related