* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Threads, SMP, and Microkernels
Survey
Document related concepts
Transcript
1 Threads, SMP, and Microkernels Chapter 4 2 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 3 Process • Dispatching is referred to as a thread or lightweight process • Resource of ownership is referred to as a process or task 4 Multithreading • Operating system supports multiple threads of execution within a single process • MS-DOS supports a single thread • UNIX supports multiple user processes but only supports one thread per process • Windows, Solaris, Linux, Mach, and OS/2 support multiple threads 5 6 Process • Have a virtual address space which holds the process image • Protected access to processors, other processes, files, and I/O resources 7 Thread • • • • • An execution state (running, ready, etc.) Saved thread context when not running Has an execution stack Some per-thread static storage for local variables Access to the memory and resources of its process ▫ all threads of a process share this 8 9 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 10 Uses of Threads in a Single-User Multiprocessing System • • • • Foreground to background work Asynchronous processing Speed of execution Modular program structure 11 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 12 Thread States • States associated with a change in thread state ▫ Spawn Spawn another thread ▫ Block ▫ Unblock ▫ Finish Deallocate register context and stacks 13 Remote Procedure Call Using Single Thread 14 Remote Procedure Call Using Threads 15 Multithreading 16 Adobe PageMaker 17 User-Level Threads • All thread management is done by the application • The kernel is not aware of the existence of threads 18 User-Level Threads 19 20 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 21 Kernel-Level Threads 22 VAX Running UNIX-Like Operating System 23 Combined Approaches • Example is Solaris • Thread creation done in the user space • Bulk of scheduling and synchronization of threads within application 24 Combined Approaches 25 Relationship Between Threads and Processes 26 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 27 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 28 29 Symmetric Multiprocessing • Kernel can execute on any processor • Typically each processor does self-scheduling form the pool of available process or threads 30 31 Multiprocessor Operating System Design Considerations • Simultaneous concurrent processes or threads • Scheduling • Synchronization • Memory management • Reliability and fault tolerance 32 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 33 34 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 35 Benefits of a Microkernel Organization • Portability ▫ Changes needed to port the system to a new processor is changed in the microkernel - not in the other services • Reliability ▫ Modular design ▫ Small microkernel can be rigorously tested 36 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 37 Microkernel Design • Low-level memory management ▫ Mapping each virtual page to a physical page frame 38 Microkernel Design • Interprocess communication • I/O and interrupt management 39 Windows Processes • Implemented as objects • An executable process may contain one or more threads • Both processes and thread objects have built-in synchronization capabilities 40 41 Windows Process Object 42 Windows Thread Object 43 Windows 2000 Thread States • • • • • • Ready Standby Running Waiting Transition Terminated 44 45 Solaris • Process includes the user’s address space, stack, and process control block • User-level threads • Lightweight processes (LWP) • Kernel threads 46 47 48 Solaris Lightweight Data Structure • • • • • • • • Identifier Priority Signal mask Saved values of user-level registers Kernel stack Resource usage and profiling data Pointer to the corresponding kernel thread Pointer to the process structure 49 50 Linux Task Data Structure • • • • • • • • • State Scheduling information Identifiers Interprocess communication Links Times and timers File system Address space Processor-specific context 51 Linux States of a Process • • • • • Running Interruptable Uninterruptable Stopped Zombie 52