Types of Operating Systems
Primitive OS
- A library OS is a library of standard services
- standard interface above hardware-specific drivers
- Assumptions
- system runs one program at a time
- no bad users or programs
Problems
- Poor utilization of hardware
* A lot of idle time
* Waiting for I/O- Poor utilization of human user
- Have to wait for each program to finish running
- Poor utilization of human user
- Used by simple devices like doorbell and thermostats
Multitasking OS
- Can have multiple processes at the same time
- When one process is blocked we can run another
Problems: What can a bad process do?
- Infinite loop
- All processes stuck
- Overwrite another process's memory
Solutions to the problems above:
- Protection
- Pre-emption
- Take processor away
- Memory protection
- Protect processes' memory from one another
- Pre-emption
Multi-user OS
- Provide protection to bad users and buggy apps
- So that they don't affect other users and apps
- The system does not slow linearly based on the number of users
- user demand for processor is bursty, not uniform
Problems
- Users can use too much resources → Need policies
- Total memory usage greater than machine has → Must virtualize
- Super-linear slowdown with increasing demand
- Thrashing