Transcript ppt
CS533 Concepts of Operating Systems
Class 8
Remote Procedure Call
& LRPC
Questions
What is partial failure and why does it complicate
RPC?
o
o
What are the semantics of RPC?
At most once? At least once?
Why not use time-outs?
Can partial failure be completely hidden?
o
If not, where does it appear?
Can you distinguish between crashed and slow?
o
Why does caller probe periodically?
CS533 - Concepts of Operating Systems
2
Questions
What server-side state is maintained?
o
o
What is a call ID used for?
o
o
When can it be discarded?
What is a conversation ID and why do you need it?
In the caller?
In the callee?
How does RPC piggy-back acknowledgements and
connection establishment?
CS533 - Concepts of Operating Systems
3
Questions
What are stubs and what do they do?
o
How do they relate to adaptors from the last class?
CS533 - Concepts of Operating Systems
4
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
5
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
6
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
7
Questions
How many copies does RPC do?
o
o
What stops a 2nd client thread from changing
arguments on the A-stack once the server has
started using them?
o
What are they?
How many does LRPC do?
How might this problem be addressed?
How does LRPC solve the problem of a client thread
being “captured” by a server?
o
Why is this not necessary in normal RPC?
CS533 - Concepts of Operating Systems
8
Questions
How does LRPC optimize VM context switching on a
multiprocessor?
o
o
o
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
9
Reminder
Class 9 presenters
o
o
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
10