10
CS533 Concepts of Operating Systems Class 8 Remote Procedure Call & LRPC

CS533 Concepts of Operating Systems Class 8

Embed Size (px)

DESCRIPTION

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? - PowerPoint PPT Presentation

Citation preview

Page 1: CS533 Concepts of Operating Systems Class 8

CS533 Concepts of Operating Systems

Class 8

Remote Procedure Call& LRPC

Page 2: CS533 Concepts of Operating Systems Class 8

CS533 - Concepts of Operating Systems 2

Questions

What is partial failure and why does it complicate RPC?

o What are the semantics of RPC?o 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?

Page 3: CS533 Concepts of Operating Systems Class 8

CS533 - Concepts of Operating Systems 3

Questions

What server-side state is maintained?o When can it be discarded?o What is a conversation ID and why do you need it?

What is a caller ID used for?o In the caller?o In the callee?

How does RPC piggy-back acknowledgements and connection establishment?

Page 4: CS533 Concepts of Operating Systems Class 8

CS533 - Concepts of Operating Systems 4

Questions

What are stubs and what do they do?o How do they relate to adaptors from the last class?o Are stubs proxies?

Who imports and who exports interfaces?o Callero Calleeo Caller stubo Callee stub

Page 5: CS533 Concepts of Operating Systems Class 8

CS533 - Concepts of Operating Systems 5

Questions

Why can’t parameters be passed by reference?

How does RPC minimize process creation costs?

Why use process IDs in packets?

Page 6: CS533 Concepts of Operating Systems Class 8

CS533 - Concepts of Operating Systems 6

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?

Page 7: CS533 Concepts of Operating Systems Class 8

CS533 - Concepts of Operating Systems 7

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?

Page 8: CS533 Concepts of Operating Systems Class 8

CS533 - Concepts of Operating Systems 8

Questions

How many copies does RPC do?o What are they?o 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?

o 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?

Page 9: CS533 Concepts of Operating Systems Class 8

CS533 - Concepts of Operating Systems 9

Questions

How does LRPC optimize VM context switching on a multiprocessor?

o Why does this work?o Why is this approach potentially wasteful?o 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?

Page 10: CS533 Concepts of Operating Systems Class 8

CS533 - Concepts of Operating Systems 10

Reminder

Class 9 presenterso Discuss your presentation plans with me ahead of timeo Mail me the final version of your slides BEFORE the

class