threads smp and microkernels n.
Skip this Video
Download Presentation
Threads, SMP, and Microkernels

Loading in 2 Seconds...

play fullscreen
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

Download Now 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