Lightweight and User-Level Remote Procedure Call CS533 Concepts of Operating Systems Class 9

Download Report

Transcript Lightweight and User-Level Remote Procedure Call CS533 Concepts of Operating Systems Class 9

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