90 likes | 220 Views
CS533 Concepts of Operating Systems Class 9. Lightweight and User-Level Remote Procedure Call. Questions. Why do LRPC procedure descriptors include the number of simultaneous calls permitted to the procedure by a client? Why must the binding object be presented to the kernel on every call?
E N D
CS533 Concepts of Operating SystemsClass 9 Lightweight and User-Level Remote Procedure Call
Questions • Why do LRPC procedure descriptors include the number of simultaneous calls permitted to the procedure by a client? • Why must the binding object be presented to the kernel on every call? • Why doesn’t the server handle the callers return address directly? • Why does the kernel maintain a stack of linkage records for each caller, instead of just one? CS533 - Concepts of Operating Systems
Questions • Why isn’t a binding object required to validate the return call, just like the initial call? • In what way does LRPC depend on the calling conventions of Modula2+ ? • How are parameters passed by reference? • How does LRPC maintain safety? CS533 - Concepts of Operating Systems
Questions • How many copies does RPC do? • What are they? • How many does LRPC do? • What stops a 2nd client thread from changing arguments on the A-stack once the server has started using them? • How might this problem be addressed? • How does LRPC solve the problem of a client thread being “captured” by a server? • Why is this not necessary in normal RPC? CS533 - Concepts of Operating Systems
Questions • How does LRPC optimize VM context switching on a multiprocessor? • Why does this work? • Why is this approach potentially wasteful? • Why does it help to spin idle CPUs in commonly executed VM contexts? • Why does a tagged TLB save TLB flushing but not MMU context switching? CS533 - Concepts of Operating Systems
Questions • Where does most of LRPC’s overhead come from? • How can the kernel be eliminated from the call path on SMMPs with user-level threads? • To a thread URPC is synchronous, but to the thread library it is asynchronous … explain. • Why do kernel thread switches have long term cache and TLB effects that user thread switches do not? CS533 - Concepts of Operating Systems
Questions • In what ways does URPC do “cooperative scheduling” across address space boundaries? • In what ways does URPC do load balancing? • How does URPC affect throughput and latency? • Why might URPC scale better than kernel-based RPC? • How can a client’s CPU be hijacked by a server? • How could you solve this problem? CS533 - Concepts of Operating Systems
Questions • Now we have scheduling, synchronization, and IPC outside the kernel • What should be IN the kernel? • Note, these papers predated scheduler activations • Second half of CS533 examines the evolution of kernel structuring approaches CS533 - Concepts of Operating Systems
Reminder • Midterm exam on Thursday • Closed book • Questions on race conditions, deadlock, monitors, RCU, manual and automatic stack management, user-level threads, scheduler activations, RPC vs LRPC vs URPC • I won’t be there, but Jie Huang will be … CS533 - Concepts of Operating Systems