Brian Bershad, Thomas Anderson, Edward Lazowska, and Henry Levy Presented by: Byron Marohn Published: 1991.

Slides:



Advertisements
Similar presentations
URPC for Shared Memory Multiprocessors Brian Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy ACM TOCS 9 (2), May 1991.
Advertisements

Scheduler Activations: Effective Kernel Support for the User-level Management of Parallelism Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska,
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
User-Level Interprocess Communication for Shared Memory Multiprocessors Bershad, B. N., Anderson, T. E., Lazowska, E.D., and Levy, H. M. Presented by Akbar.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Lightweight Remote Procedure Call BRIAN N. BERSHAD THOMAS E. ANDERSON EDWARD D. LAZOWSKA HENRY M. LEVY Presented by Wen Sun.
Multiple Processor Systems
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented by Alana Sweat.
Threads Irfan Khan Myo Thein What Are Threads ? a light, fine, string like length of material made up of two or more fibers or strands of spun cotton,
ECE 526 – Network Processing Systems Design Software-based Protocol Processing Chapter 7: D. E. Comer.
Multiple Processor Systems Chapter Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.
Distributed systems Programming with threads. Reviews on OS concepts Each process occupies a single address space.
User-Level Interprocess Communication for Shared Memory Multiprocessors Bershad, B. N., Anderson, T. E., Lazowska, E.D., and Levy, H. M. Presented by Chris.
SCHEDULER ACTIVATIONS Effective Kernel Support for the User-level Management of Parallelism Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska, Henry.
Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
CS533 Concepts of Operating Systems Class 8 Shared Memory Implementations of Remote Procedure Call.
User Level Interprocess Communication for Shared Memory Multiprocessor by Bershad, B.N. Anderson, A.E., Lazowska, E.D., and Levy, H.M.
CS533 Concepts of Operating Systems Class 4 Remote Procedure Call.
Scheduler Activations Effective Kernel Support for the User-Level Management of Parallelism.
Threads vs. Processes April 7, 2000 Instructor: Gary Kimura Slides courtesy of Hank Levy.
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, Henry M. Levy ACM Transactions Vol. 8, No. 1, February 1990,
Threads 1 CS502 Spring 2006 Threads CS-502 Spring 2006.
3.5 Interprocess Communication
Improving IPC by Kernel Design Jochen Liedtke Shane Matthews Portland State University.
USER LEVEL INTERPROCESS COMMUNICATION FOR SHARED MEMORY MULTIPROCESSORS Presented by Elakkiya Pandian CS 533 OPERATING SYSTEMS – SPRING 2011 Brian N. Bershad.
CS533 Concepts of Operating Systems Class 9 User-Level Remote Procedure Call.
1 Chapter 4 Threads Threads: Resource ownership and execution.
Operating System Concepts
A. Frank - P. Weisberg Operating Systems Introduction to Tasks/Threads.
Exercises for Chapter 6: Operating System Support
User-Level Interprocess Communication for Shared Memory Multiprocessors Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented.
1 I/O Management in Representative Operating Systems.
Threads CS 416: Operating Systems Design, Spring 2001 Department of Computer Science Rutgers University
CS 3013 & CS 502 Summer 2006 Threads1 CS-3013 & CS-502 Summer 2006.
1 Threads Chapter 4 Reading: 4.1,4.4, Process Characteristics l Unit of resource ownership - process is allocated: n a virtual address space to.
CS533 Concepts of Operating Systems Class 4 Remote Procedure Call.
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services
1 Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska and Henry M. Levy Presented by: Karthika Kothapally.
CS510 Concurrent Systems Jonathan Walpole. Lightweight Remote Procedure Call (LRPC)
Processes and Threads Processes have two characteristics: – Resource ownership - process includes a virtual address space to hold the process image – Scheduling/execution.
Scheduler Activations: Effective Kernel Support for the User- Level Management of Parallelism. Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska,
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Scheduler Activations: Effective Kernel Support for the User-level Management of Parallelism Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska,
Lightweight Remote Procedure Call BRIAN N. BERSHAD, THOMAS E. ANDERSON, EDWARD D. LASOWSKA, AND HENRY M. LEVY UNIVERSTY OF WASHINGTON "Lightweight Remote.
CSE 60641: Operating Systems Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism. Thomas E. Anderson, Brian N.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Middleware Services. Functions of Middleware Encapsulation Protection Concurrent processing Communication Scheduling.
Processes CSCI 4534 Chapter 4. Introduction Early computer systems allowed one program to be executed at a time –The program had complete control of the.
CSE 451: Operating Systems Winter 2015 Module 5 1 / 2 User-Level Threads & Scheduler Activations Mark Zbikowski 476 Allen Center.
Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy. Presented by: Tim Fleck.
Thread By Group III Kathryn Bean and Wafa’ Jaffal.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
Operating Systems Unit 2: – Process Context switch Interrupt Interprocess communication – Thread Thread models Operating Systems.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
1 Threads, SMP, and Microkernels Chapter 4. 2 Process Resource ownership - process includes a virtual address space to hold the process image Scheduling/execution-
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
Processes Chapter 3. Processes in Distributed Systems Processes and threads –Introduction to threads –Distinction between threads and processes Threads.
CS533 Concepts of Operating Systems
B. N. Bershad, T. E. Anderson, E. D. Lazowska and H. M
By Brian N. Bershad, Thomas E. Anderson, Edward D
Fast Communication and User Level Parallelism
Multithreaded Programming
Presented by Neha Agrawal
Presented by: SHILPI AGARWAL
Thomas E. Anderson, Brian N. Bershad,
Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M
CS533 Concepts of Operating Systems Class 11
Presentation transcript:

Brian Bershad, Thomas Anderson, Edward Lazowska, and Henry Levy Presented by: Byron Marohn Published: 1991

 Background  Remote procedure call (RPC) ◦ Fundamentals ◦ Previous Implementations  User level remote procedure call (URPC) ◦ Implementation ◦ Assumptions ◦ Performance  Conclusion

 Threads – Procedure oriented parallelism ◦ An Introduction to Programming with Threads (1989)  Events – Message passing ◦ Why Threads Are a Bad Idea (for most purposes) (1995)  Interprocess Communication

 Introduced in this class by: ◦ Implementing Remote Procedure Calls (1984)  Defined as: Synchronous language-level transfer of control between programs in disjoint address spaces whose primary communication medium is a narrow channel

 Until now, need OS kernel to copy data between distinct address spaces  Calling thread blocks, kernel reschedules CPU  Requires a trap, and multiple context switches Questions:  How can we reduce context switching?  What if we could transfer data directly?

 Transfer control to process already running in the desired address space ◦ Lightweight Remote Procedure Call (1990)  User level threads ◦ Scheduler Activations: Effective Kernel Support for the User-level Management of Parallelism (1992)

 Message passing systems ◦ SEDA: An Architecture for Well-Conditioned, Scalable Internet Services (2001)  Shared memory?

 Use shared memory to pass messages between address spaces, bypassing kernel  Combine cross-address space communication with lightweight user-level threads, so blocking is inexpensive  Send/receive messages between already- running server/client processes, reducing the need for context switches

 Set up a pair of bidirectional queues between client and server, with locks at each end.  Client -> server, server -> client queues  To send a message, acquire the lock, copy message into memory, release lock.  To receive a message, acquire lock and remove message from queue.

 When a call is made, user-level scheduler is invoked  Scheduler queues message, and immediately schedules another user level thread to run.  Requires only an inexpensive user-level reallocation (save/restore execution state, and cache / TLB penalties) ◦ 15 µsecs vs 55 µsecs for processor reallocation

 URPC also supports transferring an execution context/real processor between client and server address spaces  Kernel does the processor reallocation  Load balancing technique, either side can detect if other side is busy or not by checking the number of items pending in the queue.  Problem: What if processor is not given back?

 2 CPUs  2 Client Threads  Editor (client)  WinMgr (server)  FCMgr (server) ◦ FC = File Cache

 “Optimistic reallocation policy”  Client has other work to do (runnable threads), and a further delay for an already blocked call will not impact performance much.  Server has capacity (or will soon) to process messages/RPC calls.  Problem: What about when latency is important?

 All subsequent performance data gathered on experimental device called “Firefly”, with 6 processors and a dedicated I/O microprocessor.  Fastthreads as the user-level threading implementation, Taos is the underlying operating system kernel.

C = Client Processors S = Server Processors

C = Client Processors S = Server Processors

 Desire to isolate different functionality within domain boundaries.  Processes need to communicate across these domains -> Remote Procedure Calls Unfortunately:  Switching physical processor contexts is slow To remedy this:  For communication between programs on shared memory multiprocessor, can use user-space memory to pass data between already running processes

 General theme: Reduce kernel context switching to improve performance  Performance: ◦ Throughput better than other implementations ◦ Only on shared memory multiprocessor ◦ Latency increases with load