Transcript ppt
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?
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
2
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
3
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
4
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
5
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
6
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?
o
How could you solve this problem?
CS533 - Concepts of Operating Systems
7
Questions
Now we have scheduling, synchronization, and IPC
outside the kernel
o
o
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
8
Reminder
Midterm exam on Thursday
Closed book
Questions on race conditions, deadlock, monitors,
RCU, manual and automatic stack management, userlevel threads, scheduler activations, RPC vs LRPC vs
URPC
I won’t be there, but Jie Huang will be …
CS533 - Concepts of Operating Systems
9