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

Threads, SMP, and Microkernels PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

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

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: 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?

  • 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?

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

    • 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?

  • 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


TOP Command

PSTREE Command

/proc directory on Linux

Details of Process 2114

Adobe PageMaker

Categories of Thread Implementation

  • User-level threads

  • Kernel-level threads

User-Level Threads

  • All thread management is done by the application

  • The kernel is not aware of the existence of threads

User-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

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

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 Taxonomy

  • Extensions to Flynn’s taxonomy:

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

  • This classification is largely outdated!

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

  • All processors have access to shared memory:

    • Notion of “Global Address Space”

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

  • Uniform interface on request made by a process

  • Extensibility

  • Flexibility

  • Portability

  • Reliability

  • Distributed System Support

  • Object-oriented Operating System

Microkernel Design

  • Low-level memory management

    • Mapping each virtual page to a physical page frame

Microkernel Design

  • Interprocess communication

  • I/O and interrupt management

  • Login