60 likes | 79 Views
Explore the overhead of LRPC, elimination of kernel from call path, synchronization aspects, and impacts on cache, TLB effects. Learn about cooperative scheduling, load balancing, throughput, latency, CPU hijacking, and solutions. Understand kernel structuring and what should reside in the kernel.
E N D
CS533 Concepts of Operating SystemsClass 9 User-Level Remote Procedure Call
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
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? • How can a client’s CPU be hijacked by a server? • How could you solve this problem? CS533 - Concepts of Operating Systems
Questions • Now we have scheduling, synchronization, and IPC outside the kernel • 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
Reminder • Midterm exam on Wednesday • Closed book • Questions on race conditions, deadlock, monitors, RCU, manual and automatic stack management, user-level threads, scheduler activations, RPC vs LRPC vs URPC CS533 - Concepts of Operating Systems
What have we learned so far? • Multi-threaded programming primitives • Race conditions and deadlock problems • Monitors • Scalable synchronization on modern CPUs • Event-based programming instead of multi-threading • Manual vs automatic stack management • Cooperative scheduling (task management) • Kernel support for user-level threads • RPC and various optimizations (LRPC & URPC) CS533 - Concepts of Operating Systems