Threads smp and microkernels
Sponsored Links
This presentation is the property of its rightful owner.
1 / 59

Threads, SMP, and Microkernels PowerPoint PPT Presentation


  • 65 Views
  • Uploaded on
  • Presentation posted in: General

Threads, SMP, and Microkernels. Chapter 4. Process. Resource ownership: process includes a virtual address space to hold the process image (fig 3.16) Scheduling/execution: follows an execution path that may be interleaved with other processes

Download Presentation

Threads, SMP, and Microkernels

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Threads, SMP, and Microkernels

Chapter 4


Process

  • Resource ownership: process includes a virtual address space to hold the process image (fig 3.16)

  • Scheduling/execution: follows an execution path that may be interleaved with other processes

  • These two characteristics can be treated independently by the operating system


Process

  • Unit of dispatching is referred to as a thread or lightweight process

  • Unit of resource ownership is referred to as a process or task


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


Process

  • Have a virtual address space which holds the process image

  • Protected access to processors, other processes, files, and I/O resources


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


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


Uses of Threads in a Single-User Multiprocessing System

  • Foreground to background work

  • Asynchronous processing

  • Speed of execution

  • Modular program structure


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


Thread States

  • States associated with a change in thread state

    • Spawn

      • Spawn another thread

    • Block

    • Unblock

    • Finish

      • Deallocate register context and stacks


Remote Procedure Call Using Single Thread


Remote Procedure Call Using Threads


Multithreading


Adobe PageMaker


User-Level Threads

  • All thread management is done by the application

  • The kernel is not aware of the existence of threads


User-Level Threads


Advantages of User-Level Threads

  • Thread-switching does not require kernel mode privileges and switching

  • Thread scheduling can be tailored to application

  • ULTs can run on any OS. They can be implemented with a thread library that runs within the app.


Disadvantages of ULTs

  • If blocking system call (eg IO call), whole process blocked

    • can use ‘jacketing’ – call other process to check state of resource

  • Cannot use multiprocessing since OS sees all threads as a single process.


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


Kernel-Level Threads


VAX Running UNIX-Like Operating System


Combined Approaches

  • Example is Solaris

  • Thread creation done in the user space

  • Bulk of scheduling and synchronization of threads within application


Combined Approaches


Relationship Between Threads and Processes

1:M and M:N approaches are experimental.


Symmetric Multiprocessing (SMP)


Symmetric Multiprocessing

  • Tradition: Single sequence of instructions

    • von Neumann machine concept

  • Real machines do instruction pipelining, DMA and other parallel operations

    • Pipeline explanation and movie

    • Hyperthreading

  • With cheaper HW can extend this to multiple processors


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.

    • ‘Normal’ computing

  • Single Instruction Multiple Data (SIMD) stream

    • Each instruction is executed on a different set of data by the different processors.

    • Eg DSP or vector processing


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


Symmetric Multiprocessing

  • Kernel can execute on any processor

  • Typically each processor does self-scheduling from the pool of available process or threads


Multiprocessor Operating System Design Considerations

  • Simultaneous concurrent processes or threads

    • Re-entrant kernel code, deadlock, etc.

  • Scheduling (see ch 10 for more detail)

  • Synchronization

    • Mutual exclusion, event ordering, locks etc (ch 5)

  • Memory management

    • Coordination in paging systems when multiple processors accessing pages (ch 7)

  • Reliability and fault tolerance

    • Graceful degradation on processor failure


Distributed Processing

  • Another alternative is distributed processing

  • Each node has its own CPU, memory and communication channel

    • Slower communications, more independence

  • EG. Cluster computing, Beowulf etc.

    • See Ch 14, 15


Microkernels


Microkernels

  • Small operating system core (how small?)

  • Concept: 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


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


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

      • Exhaustive testing vs. module testing


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


Microkernel Design

  • Low-level memory management

    • Mapping each virtual page to a physical page frame


Microkernel Design

  • Interprocess communication

  • I/O and interrupt management


MS-Windows Processes

  • Implemented as objects

  • An executable process may contain one or more threads

  • Both processes and thread objects have built-in synchronization capabilities


Windows Process Object


Windows Thread Object


MS-Windows Thread States

  • Ready

  • Standby

  • Running

  • Waiting

  • Transition

  • Terminated


Solaris

  • Process includes the user’s address space, stack, and process control block

  • User-level threads

  • Lightweight processes (LWP)

  • Kernel threads


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


Linux Task Data Structure

  • State

  • Scheduling information

  • Identifiers

  • Interprocess communication

  • Links

  • Times and timers

  • File system

  • Address space

  • Processor-specific context


Linux States of a Process

  • Running

  • Interruptible

  • Uninterruptible

  • Stopped

  • Zombie


Linux Threads

  • Traditionally no threads

    • ULTs with pthread library

  • Modern Linux supports KLT

  • Process = thread (cloning)


  • Login