Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Systems/Operating Systems - Class 8

Similar presentations


Presentation on theme: "Computer Systems/Operating Systems - Class 8"— Presentation transcript:

1 Computer Systems/Operating Systems - Class 8
Today’s class Threads, SMP, and Microkernels Principles of concurrency Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

2 Computer Systems/Operating Systems - Class 8
Process Resource ownership - process includes a virtual address space to hold the process image Scheduling/execution- follows an execution path that may be interleaved with other processes These two characteristics are treated independently by the operating system These two characteristics are the essence of a process. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

3 Computer Systems/Operating Systems - Class 8
Process Dispatching is referred to as a thread or lightweight process Resource ownership is referred to as a process or task Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

4 Computer Systems/Operating Systems - Class 8
Multithreading Operating system supports multiple threads of execution within a single process UNIX supports multiple user processes but only supports one thread per process Windows, Solaris, Linux, Mach, and OS/2 support multiple threads Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

5 Computer Systems/Operating Systems - Class 8
Process In a multithreaded environment a process is defined as the unit of resource allocation and a unit of protection Have a virtual address space which holds the process image Protected access to processors, other processes, files, and I/O resources Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

6 Computer Systems/Operating Systems - Class 8
Thread An execution state (running, ready, etc.) A saved thread context when not running An execution stack Some per-thread static storage for local variables Access to the memory and resources of its process There may be one or more threads in a process. Each thread has the items on this slide. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

7 Computer Systems/Operating Systems - Class 8
Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

8 Computer Systems/Operating Systems - Class 8
Benefits of Threads Takes less time to create a new thread than a process Less time to terminate a thread than a process Less time to switch between two threads within the same process Since threads within the same process share memory and files, they can communicate with each other without invoking the kernel Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

9 Uses of Threads in a Single-User Multiprocessing System
Foreground to background work Asynchronous processing Speed of execution Modular program structure Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

10 Computer Systems/Operating Systems - Class 8
Threads Suspending a process involves suspending all threads of the process since all threads share the same address space Termination of a process, terminates all threads within the process In an OS that supports threads, scheduling and dispatching is done on a thread basis. However, some actions affect all the threads in a process and the OS must manage this at the process level. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

11 Computer Systems/Operating Systems - Class 8
Thread States Key thread states are Running, Ready, and Blocked Operations associated with a change in thread state Spawn Block Unblock Finish Deallocate register context and stacks Threads have execution states and may synchronize with one another. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

12 Remote Procedure Call Using Single Thread
Let’s consider performance benefits of threads. Consider a program that performs two remote procedure calls (RPCs) to two different hosts to obtain a combined result. In a single threaded program the results are obtained in sequence. Thus, the program has to wait for a response from each server in turn. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

13 Remote Procedure Call Using Threads
Rewriting the program so it uses a separate thread for each RPC results in a substantial speedup. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

14 Computer Systems/Operating Systems - Class 8
Multithreading On a uniprocessor, multiprogramming enables the interleaving of multiple threads within multiple processes. In this example, there are three threads in two processes which are all interleaved on the processor. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

15 Computer Systems/Operating Systems - Class 8
User-Level Threads All thread management is done by the application The kernel is not aware of the existence of threads Two broad categories of threads – user-level threads and kernel-level threads. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

16 Computer Systems/Operating Systems - Class 8
User-Level Threads P is a process. Any application can be programmed to be multithreaded by using a threads library, which is a package of routines for user-level threads management. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

17 Computer Systems/Operating Systems - Class 8
Kernel-Level Threads Windows is an example of this approach Kernel maintains context information for the process and the threads Scheduling is done on a thread basis Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

18 Computer Systems/Operating Systems - Class 8
Kernel-Level Threads Kernel-level threads overcome the drawbacks of the user-level thread approach: The kernel can simultaneously schedule multiple threads from the same process on multiple processors. If one thread in a process is blocked, the kernel can schedule another thread of the same process. The main disadvantage to kernel-level threads is that transfer of control from one thread to another within the same process requires a mode switch to the kernel. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

19 Computer Systems/Operating Systems - Class 8
Combined Approaches Example is Solaris Thread creation done in the user space Bulk of scheduling and synchronization of threads within application Can have a combined user-level/kernel-level thread approach. The user-level threads are mapped onto some number of kernel-level threads. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

20 Computer Systems/Operating Systems - Class 8
Combined Approaches Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

21 Categories of Computer Systems
Single Instruction Single Data (SISD) stream Single processor executes a single instruction stream to operate on data stored in a single memory Single Instruction Multiple Data (SIMD) stream Each instruction is executed on a different set of data by the different processors Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

22 Categories of Computer Systems
Multiple Instruction Single Data (MISD) stream A sequence of data is transmitted to a set of processors, each of which executes a different instruction sequence. Never implemented Multiple Instruction Multiple Data (MIMD) A set of processors simultaneously execute different instruction sequences on different data sets Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

23 Computer Systems/Operating Systems - Class 8
Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

24 Symmetric Multiprocessing
Kernel can execute on any processor Typically each processor does self-scheduling form the pool of available process or threads Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

25 Computer Systems/Operating Systems - Class 8
Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

26 Multiprocessor Operating System Design Considerations
Simultaneous concurrent processes or threads Kernel routines need to be re-entrant, to allow several processors to execute the same kernel code simultaneously Scheduling May be performed by any processor, so conflicts must be avoided Synchronization Memory management Reliability and fault tolerance A multiprocessor operating system must provide all the functionality of a multiprogramming system plus additional features to accommodate multiple processors. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

27 Computer Systems/Operating Systems - Class 8
Microkernels Small operating system core Contains only essential core operating systems functions Many services traditionally included in the operating system are now external subsystems Device drivers File systems Virtual memory manager Windowing system Security services Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

28 Computer Systems/Operating Systems - Class 8
Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

29 Benefits of a Microkernel Organization
Uniform interface on request made by a process Don’t distinguish between kernel-level and user-level services All services are provided by means of message passing Extensibility Allows the addition of new services Flexibility New features added Existing features can be subtracted Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

30 Benefits of a Microkernel Organization
Portability Changes needed to port the system to a new processor are changed in the microkernel - not in the other services Reliability Modular design Small microkernel can be rigorously tested Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

31 Benefits of Microkernel Organization
Distributed system support Message are sent without knowing what the target machine is Object-oriented operating system Components are objects with clearly defined interfaces that can be interconnected to form software Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

32 Computer Systems/Operating Systems - Class 8
Microkernel Design Low-level memory management Mapping each virtual page to a physical page frame The bulk of memory management, including the protection of the address space of one process from another, can be implemented outside the kernel. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

33 Computer Systems/Operating Systems - Class 8
Microkernel Design Interprocess communication Basic mechanism is a message A port is a queue of messages destined for a particular process I/O and interrupt management Hardware interrupts handled as messages I/O ports included in address space Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

34 Computer Systems/Operating Systems - Class 8
Windows Processes Implemented as objects An executable process may contain one or more threads Both processes and thread objects have built-in synchronization capabilities Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

35 Windows Process Object
Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

36 Computer Systems/Operating Systems - Class 8
Windows Thread Object Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

37 Computer Systems/Operating Systems - Class 8
Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

38 Linux Task Data Structure
State Scheduling information Identifiers Interprocess communication Links Times and timers File system Address space Processor-specific context In Linus a process is called a task. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

39 Computer Systems/Operating Systems - Class 8
The Running state is either Executing or Ready to execute. The Interruptible state is a blocked state, in which the process is waiting for an event. The Uninterruptible state is also a blocked state, but the process is waiting directly on hardware conditions and therefore will not handle any signals. In the Stopped state, the process has been halted and can only be resumed by action from another process (e.g. a process that is being debugged). In the Zombie state, the process has been terminated but for whatever reason still must have its task structure in the process table. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

40 Computer Systems/Operating Systems - Class 8
Concurrency Multiple applications Multiprogramming Structured application Application can be a set of concurrent processes Operating-system structure Operating system is a set of processes or threads Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

41 Computer Systems/Operating Systems - Class 8
Concurrency Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

42 Difficulties of Concurrency
Sharing of global resources Operating system managing the allocation of resources optimally Difficult to locate programming errors Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

43 Computer Systems/Operating Systems - Class 8
A Simple Example void echo() { chin = getchar(); chout = chin; putchar(chout); } This simple procedure provides a character echo mechanism; it inputs a character from the keyboard and puts it out on the display. Note that chin and chout are global variables. Consider the following event sequence: Process P1 invokes echo() and is interrupted after getchar() returns and stores its value in chin. Say the character is ‘A’. Process P2 is activated and invokes echo() which runs to conclusion. Suppose the character is ‘B’. Process P1 is resumed. What is the output? It’s ‘B’. Need to restrict the procedure to having only one process at a time in it. Process P1 invokes echo() and is interrupted after getchar() returns. It’s input is ‘A’. Process P2 is activated and invokes echo(). Because P1 is still inside echo(), P2 is blocked and thus suspended. At some later time P1 is resumed and completes execution of echo(). The character ‘A’ is displayed. When P1 exits echo() the block on P2 is removed. At some later time P2 is resumed and successfully invokes echo(). Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

44 Computer Systems/Operating Systems - Class 8
A Simple Example Process P1 Process P2 chin = getchar(); . chin = getchar(); chout = chin; chout = chin; putchar(chout); . putchar(chout); Now consider a multiprocessor system. Events on the same line take place in parallel. If there is no protection of the procedure from multiple processes entering it, then we will again lose the input data from P1 and both putchar(chout) statements will output the same character, the one input for process P2. Can handle this the same way as before. P2 will be blocked until P1 finishes with echo(). Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

45 Computer Systems/Operating Systems - Class 8
Race Condition A race condition occurs when multiple processes or threads read and write data items so that the final result depends on the order of execution of instructions in the multiple processes or threads. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

46 Operating System Concerns
Keep track of various processes Allocate and deallocate resources Processor time Memory Files I/O devices Protect data and resources Output of process must be independent of the speed of execution of other concurrent processes These are design and management issues for operating systems that are raised by the existence of concurrency. Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

47 Computer Systems/Operating Systems - Class 8
Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

48 Competition Among Processes for Resources
Mutual Exclusion Critical sections Only one program at a time is allowed in its critical section Example only one process at a time is allowed to send command to the printer Deadlock Starvation Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

49 Requirements for Mutual Exclusion
Only one process at a time is allowed in the critical section for a resource A process that halts in its noncritical section must do so without interfering with other processes No deadlock or starvation Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8

50 Requirements for Mutual Exclusion
A process must not be delayed access to a critical section when there is no other process using it No assumptions are made about relative process speeds or number of processes A process remains inside its critical section for a finite time only Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8 Monday, September 24, 2007 Computer Systems/Operating Systems - Class 8


Download ppt "Computer Systems/Operating Systems - Class 8"

Similar presentations


Ads by Google