100 likes | 209 Views
CS533 Concepts of Operating Systems Class 8. Remote Procedure Call & LRPC. Questions. What is partial failure and why does it complicate RPC? What are the semantics of RPC? At most once? At least once? Why not use time-outs? Can partial failure be completely hidden?
E N D
CS533 Concepts of Operating SystemsClass 8 Remote Procedure Call & LRPC
Questions • What is partial failure and why does it complicate RPC? • What are the semantics of RPC? • At most once? At least once? • Why not use time-outs? • Can partial failure be completely hidden? • If not, where does it appear? • Can you distinguish between crashed and slow? • Why does caller probe periodically? CS533 - Concepts of Operating Systems
Questions • What server-side state is maintained? • When can it be discarded? • What is a conversation ID and why do you need it? • What is a caller ID used for? • In the caller? • In the callee? • How does RPC piggy-back acknowledgements and connection establishment? CS533 - Concepts of Operating Systems
Questions • What are stubs and what do they do? • How do they relate to adaptors from the last class? • Are stubs proxies? • Who imports and who exports interfaces? • Caller • Callee • Caller stub • Callee stub CS533 - Concepts of Operating Systems
Questions • Why can’t parameters be passed by reference? • How does RPC minimize process creation costs? • Why use process IDs in packets? CS533 - Concepts of Operating Systems
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
Reminder • Class 9 presenters • Discuss your presentation plans with me ahead of time • Mail me the final version of your slides BEFORE the class CS533 - Concepts of Operating Systems