2 Thread motivation Characteristics of a process: Resource ownership - process is allocated a virtual address space to hold the process imageScheduling/execution- follows an execution path that may be interleaved with other processesThese two characteristics are treated independently by the operating system
3 Processes and threads Separate execution from ownership Dispatching is referred to as a threadResource of ownership is referred to as a process or task
4 MultithreadingOS supports multiple threads of execution within a single processMS-DOS : a single threadUNIX:multiple user processesone thread per processWindows 2000, Solaris, Linux, OS/2 :multiple threads
6 In a multithread environment A process is associated with:A virtual address space which holds the process imageProtected access to processors, other processes, files, and I/O resources
7 In a multithread environment A thread is associated with:An execution state (running, ready, etc.)Saved thread context when not runningHas an execution stackSome per-thread static storage for local variablesAccess to the memory and resources of its processall threads of a process share this
9 Benefits of ThreadsTakes less time to create a new thread than a processLess time to terminate a thread than a processLess time to switch between two threads within the same processSince threads within the same process share memory and files, they can communicate with each other without invoking the kernel
10 Thread statesSuspending a process involves suspending all threads of the process since all threads share the same address spaceTermination of a process, terminates all threads within the process
11 Thread States States associated with a change in thread state Spawn Spawn another threadBlockUnblockFinishDeallocate register context and stacks
14 Thread issues Two important issues: thread state vs process state - how does the thread state affect the process state?Depends on the implementation - ULT, KLT, combinedthread synchronizationall threads of a process share the same address space an other resourcesactivities must be synchronized to prevent interference.
15 Thread and process states Process: runningthread 1 - readythread 2 - runningProcess: blockedthread 2 - “running “
16 Thread and process states Process: readythread 1 - readythread 2 - “running”Process: runningthread 1 - runningthread 2 - blockedsee Figure 4.7
17 A Java Thread (Deitel &Deitel, Java How to Program, 1998, 2nd ed.)
18 User-Level Threads All thread management is done by the application The kernel is not aware of the existence of threads
19 ULT ManagementThreads Library - a package of routines for ULT management:creating and destroying threadspassing messages and data between threadsscheduling thread executionsaving and restoring thread contexts
20 Kernel-Level ThreadsW2K, Linux, and OS/2 are examples of this approachKernel maintains context information for the process and the threadsScheduling is done on a thread basis
21 Combined Approaches Example is Solaris Thread creation done in the user spaceBulk of scheduling and synchronization of threads done in the user spaceMapping ULTs from a single application onto some (smaller or equal) number of KLTs.
23 Advantages and Disadvantages Advantages of ULTthread switching does not require kernel mode privileges because all of the thread management structures are within the user address space of a single processscheduling can be application specificcan run on any operating system. No changes to kernel support for the ULT’s
24 Advantages and Disadvantages Disadvantages of ULTWhen a ULT executes a system call not only the thread is blocked but all of the threads within a process are blocked.Pure ULT multithreaded application can’t take advantage of multiprocessing. A kernel assigns only 1 process to a processor at a time.
25 Advantages and Disadvantages Advantages of KLT - can use multiprocessorsDisadvantages of KLT – transfer of control from one thread to another within the same process requires a switch mode to the kernel
26 Categories of Computer Systems Single Instruction Single Data (SISD)single processor executes a single instruction stream to operate on data stored in a single memorySingle Instruction Multiple Data (SIMD)each instruction is executed on a different set of data by the different processors
27 Categories of Computer Systems Multiple Instruction Single Data (MISD)a sequence of data is transmitted to a set of processors, each of which executes a different instruction sequence. Never implementedMultiple Instruction Multiple Data (MIMD)a set of processors simultaneously execute different instruction sequences on different data sets
31 Multiprocessor Operating System Design Considerations Simultaneous concurrent processes or threadsSchedulingSynchronizationMemory ManagementReliability and Fault Tolerance
32 Kernel ArchitecturesLayered operating systems - functions are organized hierarchically and interaction only takes place between adjacent layers.Microkernel architecture – only absolutely essential core system functions are in the kernel.
33 Microkernels Small operating system core Contains only essential operating systems functionsMany services traditionally included in the operating system are now external subsystemsdevice driversfile systemsvirtual memory managerwindowing systemsecurity services
34 Benefits of a Microkernel Organization Uniform interface on request made by a processAll services are provided by means of message passingExtensibilityAllows the addition of new servicesFlexibilityNew features addedExisting features can be subtracted
35 Benefits of a Microkernel Organization PortabilityChanges needed to port the system to a new processor is changed in the microkernel - not in the other servicesReliabilityModular designSmall microkernel can be rigorously tested
36 Benefits of Microkernel Organization Distributed system supportMessage are sent without knowing what the target machine isObject-oriented operating systemComponents are objects with clearly defined interfaces that can be interconnected to form software
37 Potential disadvantages of microkernels Performance - it takes longer to build and send a message via the microkernel, and accept and decode the reply, than to make a single service call.Performance depends on the size of the kernelsmall microkernel improves flexibility and reliability
38 Microkernel Design Low-level memory management mapping each virtual page to a physical page frameInter-process communicationmessagesportsI/O and interrupt management