70 likes | 161 Vues
Explore key concepts of system structuring using layers in operating systems. Learn about semaphores, interrupts, correctness proofs, and communication models like Swift.
E N D
CS533 Concepts of Operating SystemsClass 11 System Structuring using Layers
Questions • What is the difference between the two uses of semaphores in THE? • What concepts from earlier in the class do they map to? • What two purposes are they used for in THE? • THE only supports downcalls across layer boundaries • How are they implemented? • Does THE use a procedure-based or a message-based programming model? • What is the analog of send and recv in THE? • Does THE use a thread or event-based model? • How is state managed during blocking calls? CS533 - Concepts of Operating Systems
Questions • How are interrupts handled in THE? • Which layer handles them? • What two actions are likely to take place in an interrupt handler? • How does THE avoid deadlock? • What issues are involved in proving system correctness? • What is a homing state? • How does a process leave/return to/from its homing state? • How does layering help prove correctness? • Is correctness about specifications or implementations? CS533 - Concepts of Operating Systems
Questions • Why is performance a problem in process-per-layer mappings of specifications to implementations? • What are the costs of crossing layer boundaries? • How do these relate to previous papers on LRPC, URPC etc? • If data is not passed across layer boundaries in buffers, how is it passed in Swift? • How is inter-task communication within a multi-task module implemented in Swift? CS533 - Concepts of Operating Systems
Questions • What do “up” and “down” mean in the context of Swift upcalls and downcalls? • Why is arming required in upcalling, but not in downcalling? • Why is upcalling more perilous than downcalling? • When is it better to use upcalls than downcalls? • Where does activity start in OS code? • Where does input come from? • Should you always pass data among tasks on the stack? • How do you decide what work must be done immediately and what to queue for later? • If you queue it for later, where should you store the state? CS533 - Concepts of Operating Systems
Questions • Are upcalls part of a thread-based or event-based programming model? • Is arming stack-ripping? • Does it leave state for a future call-back? • What safety rules (conventions) are used in Swift? • How do the restrictions on downcalling relate to event-based programming? • How does Swift implement protection? CS533 - Concepts of Operating Systems
Reminder • Pick up your midterm exam papers • Send me your slides for next week! CS533 - Concepts of Operating Systems