Threads smp and microkernels
1 / 43

Threads, SMP, and Microkernels - PowerPoint PPT Presentation

  • Uploaded on

Threads, SMP, and Microkernels. Chapter 4. Process: Some Info. Motivation for threads! Two fundamental aspects of a “process”: Resource ownership Scheduling or execution Resource ownership - process includes a virtual address space to hold the process image

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' Threads, SMP, and Microkernels' - jeanette-lara

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

Process some info
Process: Some Info.

  • Motivation for threads!

  • Two fundamental aspects of a “process”:

    • Resource ownership

    • Scheduling or execution

  • 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


  • Dispatching is referred to as a thread or lightweight process

  • Resource of ownership is referred to as a process or task

  • So far, we have considered processes that had just one thread:

    • A “process” or a “process with one thread” are kind of similar!


  • An attempt to define 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

What exactly is a process now
What exactly is a Process now?

  • Have a virtual address space which holds the process image

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

What exactly is a thread now
What exactly is a Thread now?

  • 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
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
Uses of Threads in a Single-User Multiprocessing System

  • Foreground to background work:

    • In GUI-based applications, one thread can make display and the other can process input

  • Asynchronous processing:

    • Daemons or services in OSes

  • Speed of execution:

    • Make even better use of processor, especially in multiprocessor systems

  • Modular program structure

Threads what happens to state models
Threads: What happens to state models?

  • 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
Thread States

  • States associated with a change in thread state

    • Spawn

      • Spawn another thread

    • Block

    • Unblock

    • Finish

      • Deallocate register context and stacks

Categories of thread implementation
Categories of Thread Implementation

  • User-level threads

  • Kernel-level threads

User level threads
User-Level Threads

  • All thread management is done by the application

  • The kernel is not aware of the existence of threads

Kernel level threads
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

Combined approaches
Combined Approaches

  • Example is Solaris

  • Thread creation done in the user space

  • Bulk of scheduling and synchronization of threads within application

Flynn s taxonomy
Flynn’s Taxonomy

  • There is no authoritative classification of parallel computers!

  • Flynn’s taxonomy is one such classification based on number of instruction and data stream processed by a parallel computer:

    • Single Instruction Single Data (SISD)

    • Multiple Instruction Single Data (MISD)

    • Single Instruction Multiple Data (SIMD)

    • Multiple Instruction Multiple Data (MIMD)

      • Almost all modern computers fall in this category

Flynn s taxonomy1
Flynn’s Taxonomy

  • Extensions to Flynn’s taxonomy:

    • Single Program Multiple Data (SPMD)—a programming model

  • This classification is largely outdated!

Symmetric multi processors smp
Symmetric Multi-Processors (SMP)

  • A SMP is a parallel processing system with a shared-everything approach:

    • The term signifies that each processor shares the main memory and possibly the cache

  • Typically a SMP can have 2 to 256 processors

  • Examples include AMD Athlon, AMD Opteron 200 and 2000 series, Intel XEON etc

Shared memory
Shared Memory

  • All processors have access to shared memory:

    • Notion of “Global Address Space”

Multiprocessor operating system design considerations
Multiprocessor Operating System Design Considerations

  • Simultaneous concurrent processes or threads:

    • Executing same kernel code should not result in erroneous behavior

  • Scheduling:

    • Opportunities exist to execute multiple threads of the same process

  • Synchronization

  • Memory management

  • Reliability and fault tolerance


  • 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

Benefits of a microkernel organization
Benefits of a Microkernel Organization

  • Uniform interface on request made by a process

  • Extensibility

  • Flexibility

  • Portability

  • Reliability

  • Distributed System Support

  • Object-oriented Operating System

Microkernel design
Microkernel Design

  • Low-level memory management

    • Mapping each virtual page to a physical page frame

Microkernel design1
Microkernel Design

  • Interprocess communication

  • I/O and interrupt management