Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS533 Concepts of Operating Systems Class 3 Monitors.

Similar presentations


Presentation on theme: "CS533 Concepts of Operating Systems Class 3 Monitors."— Presentation transcript:

1 CS533 Concepts of Operating Systems Class 3 Monitors

2 CS533 - Concepts of Operating Systems 2 Questions  Which multi-threaded programming problems do monitors address?  Are monitors useful as a programming convention, i.e., without compiler support? o What is the convention?  With compiler support for monitors, what are the important tasks of the compiler?  How does encapsulation help with synchronization?  How can mutual exclusion in a monitor be enforced? o … on uniprocessors and multiprocessors?

3 CS533 - Concepts of Operating Systems 3 Questions  Do monitors solve the deadlock problem?  Why restrict signal to affect only waiting processes in the “same” monitor?  Why hand-off the resource directly from the signaling process to the signaled waiting process? o What is the advantage of restricting signal calls to be the last statement of a monitor procedure? o What implications does this have for assumptions that can be made by processes waking up from a wait?

4 CS533 - Concepts of Operating Systems 4 Questions  Why do we need condition variables instead of a single waiting queue per monitor?  Does a condition variable have a value (such as true/false)?  How might the queuing discipline for waiting processes avoid starvation?

5 CS533 - Concepts of Operating Systems 5 Questions  In Hoare’s bounded buffer example, he assumes that the time taken to produce or consume is very large in comparison with the time taken to append or remove an item from a list o What are the implications of this? o Are there similar assumptions in the readers/writers example?

6 CS533 - Concepts of Operating Systems 6 Questions  What are the implications of allowing monitor calls to make calls to different monitors?  Which kinds of monitor procedures do not need to acquire/release the monitor lock?

7 CS533 - Concepts of Operating Systems 7 Questions  How does non-preemption solve concurrency problems? o What problem does it have on multiprocessors? o What problem does I/O present? o What problem does page faults present?

8 CS533 - Concepts of Operating Systems 8 Questions  Mesa operates in an environment that doesn’t use hardware protection o What are the implications for the cost of monitor operations?  How is processes creation in Mesa similar to thread creation in Pthreads? o Why join? o Why detatch? o Why might you still use p after calling Detach[p]?

9 CS533 - Concepts of Operating Systems 9 Questions  How is handling exceptions in root procedures of processes more complicated than in normal Mesa procedures?  What issues arise when an exception is generated within a monitor procedure? o What does UNWIND do in Mesa?

10 CS533 - Concepts of Operating Systems 10 Questions  What is the difference between Hoare’s semantics for wait/signal and Mesa’s wait/notify? o What invariants can be assumed in each case? o What implications does this have for code surrounding a wait call?  What is the advantage of Hoare’s semantics for wait/signal vs Mesa’s wait/notify? o Why do Hoare semantics require more context switches? o Why do they require the signaling mechanism to be reliable?

11 CS533 - Concepts of Operating Systems 11 Questions  What are the advantages of Mesa’s wait/notify semantics? o Why does it help to enable timeouts for waiting processes? o Why does it help to enable broadcast? o Why is Mesa’s use of broadcast encouraged by their use of compiler-supported protection in a single user environment?

12 CS533 - Concepts of Operating Systems 12 Questions  How might you use monitors for I/O o Can interrupts be treated as signals? o What if no process was waiting?  How can devices make monitor calls? o If a device can’t wait on the monitor lock, how can it update monitor state? o What is a naked notify, and who is waiting on it? o Why is a wakeup-waiting switch needed with naked notifies?

13 CS533 - Concepts of Operating Systems 13 Questions  Why implement process creation as a monitor? o How is fork implemented? o How are join and end implemented?  Why is fork/join so expensive compared to other operations?

14 CS533 - Concepts of Operating Systems 14 Reminder  Please mail me your slides to put on the web page  The next paper is work in progress, presented by Paul McKenney of IBM.


Download ppt "CS533 Concepts of Operating Systems Class 3 Monitors."

Similar presentations


Ads by Google