Process Management
Intro
What is an operating system?
OS definition
An operating system is a layer of systems software that
- Directly has previleged access to underlying hardware
- Hide hardware complexity
- Manage hardware on behalf of software according to predefined policies.
- In addition, it ensures that applications are isolated and protected from each other.
Design Principles
Separation of mechanism & policy
- Implement flexible mechanisms to support many policies.
Optimize for common use
OS Protection Boundary
User Mode
- Applications
Kernel Mode
- OS Kernel
- Privilege direct hardware access
User-Kernel switch is supported by hardware:
- trap instructions
- system call
- signals
System Call Flowchar
To make a system call, an application must
- write arguments
- save relevant data at well-defined location
- make system call
- Synchronous mode: wait until the system call completes
Crossing the OS boundary
User/Kernel Transitions
- hardware supported
- involves a number of instructions
- switches locality
Because context switches will swap the data/addresses currently in cache, the performance of applications can benefit or suffer based on how a context switch changes what is in cache at the time they are accessing it.
A cache would be considered hot (fire) if an application is accessing the cache when it contains the data/addresses it needs.
Likewise, a cache would be considered cold (ice) if an application is accessing the cache when it does not contain the data/addresses it needs -- forcing it to retrieve data/addresses from main memory.
Basic OS Services
- Process management
- File management
- Device management