0% found this document useful (0 votes)
91 views52 pages

Threads, SMP, and Microkernels

This document discusses threads, symmetric multiprocessing (SMP) systems, and microkernel-based operating system designs. It defines processes and threads, describing how threads allow for easier context switching and communication between tasks within a process compared to separate processes. It also outlines the benefits of SMP for scalability and reliability. Finally, it describes microkernel designs which move traditional OS services like filesystems and drivers outside the kernel into userspace for improved modularity, flexibility, and security.

Uploaded by

api-26103409
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
91 views52 pages

Threads, SMP, and Microkernels

This document discusses threads, symmetric multiprocessing (SMP) systems, and microkernel-based operating system designs. It defines processes and threads, describing how threads allow for easier context switching and communication between tasks within a process compared to separate processes. It also outlines the benefits of SMP for scalability and reliability. Finally, it describes microkernel designs which move traditional OS services like filesystems and drivers outside the kernel into userspace for improved modularity, flexibility, and security.

Uploaded by

api-26103409
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 52

Threads, SMP, and

Microkernels
Chapter 4

1
Process
• 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
2
Process
• Dispatching is referred to as a thread
or lightweight process
• Resource of ownership is referred to
as a process or task

3
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

4
5
Process
• Have a virtual address space which
holds the process image
• Protected access to processors, other
processes, files, and I/O resources

6
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

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

9
Uses of Threads in a Single-
User Multiprocessing System
• Foreground to background work
• Asynchronous processing
• Speed of execution
• Modular program structure

10
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

11
Thread States
• States associated with a change in
thread state
– Spawn
• Spawn another thread
– Block
– Unblock
– Finish
• Deallocate register context and stacks

12
Remote Procedure Call
Using Single Thread

13
Remote Procedure Call Using
Threads

14
Multithreading

15
Adobe PageMaker

16
User-Level Threads
• All thread management is done by the
application
• The kernel is not aware of the
existence of threads

17
User-Level Threads

18
19
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

20
Kernel-Level Threads

21
VAX Running UNIX-Like
Operating System

22
Combined Approaches
• Example is Solaris
• Thread creation done in the user
space
• Bulk of scheduling and synchronization
of threads within application

23
Combined Approaches

24
Relationship Between Threads
and Processes

25
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
• Single Instruction Multiple Data (SIMD)
stream
– Each instruction is executed on a different
set of data by the different processors
26
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

27
28
Symmetric Multiprocessing
• Kernel can execute on any processor
• Typically each processor does self-
scheduling form the pool of available
process or threads

29
30
Multiprocessor Operating
System Design
Considerations
• Simultaneous concurrent processes or
threads
• Scheduling
• Synchronization
• Memory management
• Reliability and fault tolerance

31
Microkernels
• 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

32
33
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

34
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

35
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

36
Microkernel Design
• Low-level memory management
– Mapping each virtual page to a physical page frame

37
Microkernel Design
• Interprocess communication
• I/O and interrupt management

38
Windows Processes
• Implemented as objects
• An executable process may contain
one or more threads
• Both processes and thread objects
have built-in synchronization
capabilities

39
40
Windows Process Object

41
Windows Thread Object

42
Windows 2000
Thread States
• Ready
• Standby
• Running
• Waiting
• Transition
• Terminated

43
44
Solaris
• Process includes the user’s address
space, stack, and process control
block
• User-level threads
• Lightweight processes (LWP)
• Kernel threads

45
46
47
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

48
49
Linux Task Data Structure
• State
• Scheduling information
• Identifiers
• Interprocess communication
• Links
• Times and timers
• File system
• Address space
• Processor-specific context

50
Linux States of a Process
• Running
• Interruptable
• Uninterruptable
• Stopped
• Zombie

51
52

You might also like