1 / 24

Lightweight Remote Procedure Call

Lightweight Remote Procedure Call. Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, Henry M. Levy ACM Transactions Vol. 8, No. 1, February 1990, pp. 37-55 presented by Ian Dees for PSU CS533, Jonathan Walpole February 2, 2009. sharing resources inside the kernel.

adank
Download Presentation

Lightweight Remote Procedure Call

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, Henry M. Levy ACM Transactions Vol. 8, No. 1, February 1990, pp. 37-55 presented by Ian Dees for PSU CS533, Jonathan Walpole February 2, 2009

  2. sharing resourcesinside the kernel

  3. “protection domains” like address spaces; may or may not be address spaces

  4. remote procedure call inspired by distributed computing separate address spaces coarse-grained access messages wrapped in stubs and proxies

  5. applying RPC ideas locally RPC model “appropriate for managing subsystems, even those not primarily intended for remote operation” but how to make message passing efficient?

  6. naïve approach treat local as a special case of remote treat atomic parameters as a special case of structured data

  7. instead, make the common case fast

  8. most calls are local even in distributed systems

  9. most parameters are simple even in complex APIs

  10. sources of overhead stubs message copying sender validation message queueing thread scheduling context switching thread dispatch

  11. sender validation when should the kernel check permissions?

  12. (capability systems)‏ single address space for parameter passing fine-grained: token ≈ pointer + permissions principle of least privilege

  13. existing optimizations memory mapping handoff scheduling global message buffers

  14. LRPC’s four techniques

  15. 1. simple control transfer look up addresses once, at discovery time (clerks and bindings)‏ server uses caller’s thread return directly to caller cache execution stacks for reuse

  16. 2. simple data transfer map argument stacks into both spaces aggressively reduce copies (but call-by-reference involves an extra copy)‏ fall back on marshaling

  17. 3. simple stubs server stub branches straight to procedure generate simple assembly for common cases exceptions, large parameters fall back to RPC

  18. 4. design for concurrency distribute domains across processors monitor concurrency misses and wake CPUs use fine-grained locking of argument stacks

  19. edge cases remote vs. local activation stack size limits domain termination

  20. results

More Related