chapter 6 - implementing processes, threads and resources kris hansen shelby davis jeffery brass...
Post on 22-Dec-2015
223 views
TRANSCRIPT
Chapter 6 - Implementing
Processes, Threads and Resources
Chapter 6 - Implementing
Processes, Threads and Resources
Kris HansenShelby DavisJeffery Brass
3/7/05 & 3/9/05
Kris HansenShelby DavisJeffery Brass
3/7/05 & 3/9/05
What’s CoveredWhat’s CoveredDifferent Process and Thread Types
Hardware Processes
The Abstract Machine Interface
Process Abstraction
Thread Abstraction
State Diagrams
Resource Managers
What’s CoveredWhat’s CoveredDifferent Process and Thread Types
Hardware Processes
The Abstract Machine Interface
ProcessesProcesses
Two Definitions of Process
Classic Process: a program in execution in a von Neumann computer
Modern Process: an OS abstraction that defines the execution environment for a thread or set of threads
ThreadThread
Definition: unit of computation with the minimal internal state and resources
Threads keep track of code execution in a given process
Modern operating systems are built with modern processes and threads in mind
The Abstract Machine
The Abstract Machine
The modern OS uses multiprogramming, the illusion that applications each reside inside of there own computer
The OS manages the virtual machines, via services
Services are invoked by calling API Functions
APIsAPIs
• API stands for Application Programming Interface
• API functions are implemented by different parts of the OS:
• Device Manager
• Process Manager
• Memory Manager
• File Manager
Adding ThreadsAdding ThreadsIn a classic system, only one thread can be running per processor, the base thread
In a modern OS, additional threads can share the host process’ resources
When an abstract machine is given it’s own multiprogrammed OS, then it is a user space thread implementation
the OS implements classic processes, and the user space thread library runs on top to simulate multiprocessing
Adding ThreadsAdding Threads
Other modern OSs are built for threads, i.e. Windows, and support kernel threads
When kernel threads are supported, the notions of threads and processes are completely separate by managing both as separate entities
ResourcesResourcesA resource is anything that a process can request
If not available, the process is blocked
A request for a resource is made via an API call
Allocation results in the resource being configured for the abstract machine
Each resource has a unique system-wide resource identifier
Process Address Space
Process Address Space
The process address space is the collection of addresses that a thread can reference
Addresses link to memory locations or other abstract machine elements
Memory-mapped resources - those resources bound to a collection of addresses in the address space
The address space provides a uniform access method for getting memory-mapped resources
Processes Address Space
Processes Address Space
Each resource manager must bind (associate, or link) addresses to resources
The OS uses the address space system to control what processes have access to resources
Modern OSs usually have 232 address (about 4GB worth,) with some supporting (or planning to support) 264 addresses
OS FamiliesOS Families
The abstract interface is determined by the host’s hardware and set of functions released by the OS
The definition of an OS is important, both for how it works on the technical side and what software is available on the business side
Process Manager Responsibilities
Process Manager Responsibilities
Process Creation and Termination
Thread Creation and Termination
Process/Thread Synchronization
Resource Allocation
Resource Protection
Cooperation w/ Device Manager on IO
Address Space Implementation
Final Process CompositionFinal Process Composition
Address Space
Program
Data
Resources
Process Identifier
Final Thread CompositionFinal Thread Composition
Host Process Environment
Thread Specific Data
Thread Identifier
The Hardware Process
The Hardware Process
When a system boots up, there are no distinctions like processes and threads
On booting, all the computer knows is its basic hardware start up instructions, known as a bootstrap
This single thread of execution is known as the hardware process
Bootstrap & LoaderBootstrap & LoaderThe bootstrap must execute first
Executing the bootstrap leads to the loader, which starts loading the OS
After loading, the OS can initialize, polling and initializing hardware and data structures
Only after this can threads and processes be handled, by way of launching thread and process managers
Initial StructuresInitial Structures
When the OS loads, before normal execution can take place, an initial process and thread are created
It acts as a placeholder for all of the other threads and processes, it actually does nothing
This is also the idle thread (or idle process,) as this process is executed when no other processes are running
The Abstract Machine Interface
The Abstract Machine Interface
In an OS, there are two types of instructions: user mode instructions and OS (supervisor mode) instructions
This protects from a program being able to access resources completely unchecked
When a certain resource is needed, or a system call is necessary, then a call must be made to the OS, which directs the call into the supervisor mode via a trap instruction
Comparing System Call Interfaces
Comparing System Call Interfaces
Linux Kernel version 2.0.36 has 166 system functions
Kernel version 2.4 has over 200
Win32 has over 2,000
The number of system calls increases the functionality of the OS, along with the overhead needed to run it
SourceSource
Nutt, Gary. Operating Systems. Boston: Pearson Education, 2004.