Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 451 Section February 3, 2000. Agenda Project comments Homework 3 review Sample exam questions.

Similar presentations


Presentation on theme: "CSE 451 Section February 3, 2000. Agenda Project comments Homework 3 review Sample exam questions."— Presentation transcript:

1 CSE 451 Section February 3, 2000

2 Agenda Project comments Homework 3 review Sample exam questions

3 Project comments How did it go? What was difficult? How did the hand in go? What can we do to make it easier?

4 Homework 3 General comments: –You need a mutex around all shared variables –If you have a condition variable and no monitor, you need a mutex –You can’t broadcast on a condition variable in a monitor –Don’t invent new synchronization constructs, unless you implement them with semaphores, mutexes, or condition variables: “Sleep”, “Awaken”, “Call asynchronous”

5 Homework 3 problems Sleeping Barbers –Need to keep a count of waiters, with a mutex –Need to wait for barber to finish cutting hair Smokers –Easiest to use a monitor. Need either 3 conditions, or one, and then serial wake-ups –If using semaphores, need to consider case where ingredients arrive out of order

6 Homework 3 problems (cont) Line printers: –Best solution: use a condition variable with a priority queue –Other solutions: have one condition variable per caller, and order those File access –Need to consider case where multiple waiters should be awoken

7 Sample Problems Scheduling – SJF, RR, FIFO Proc.ArriveBurstEndTurn P203 P3110 P425 P537

8 Deadlock Bankers Algorithm ProcAlloc Max ABAB P13155 P22436 P34284

9 Process States ReadyBlocked Running What is possible?

10 Safety Void AtomicTransfer(Queue *queue1, Queue *queue2) { Item thing; // thing being transferred queeu1->lock.Acquire(); thing=queue1->dequeue(); if (thing != NULL) { queue2->lock.acquire(); queue2->Enqueue(thing); queue2->lock.release(); } queue1->lock.release(); }

11 Making Water Int numHydrogen = 0; Semaphore pairOfHydrogen(0); Semaphore oxygen(0); Void hready() { numHydrogen++; If ((numHydrogen%2 == 0) { pairofHydrogen->Signal(); } Oxygen->Wait(); }

12 Making Water Void oReady() { pairofHydrogen->Wait(); makeWater(); Oxygen->Signal(); }

13 Making Water Semaphore hPresent(0); Semaphore waitForWater(0); Void hReady() { hPresent->signal(); waitForWater->wait(); } Void oReady() { hPresent->wait(); makeWater(); waitForWater->Signal(); waitforWater->Signal(); }

14 Cannibals and Missionaries Problem: –Rowboats hold 3 people –Can’t carry 2 cannibals and 1 missionary in a boat –Boats only leave when full


Download ppt "CSE 451 Section February 3, 2000. Agenda Project comments Homework 3 review Sample exam questions."

Similar presentations


Ads by Google