-Multiple users of the system
-Multiple applications run by the same user
-Multiple devices for the same functionality
Back
Challenges of abstraction
Front
Correct abstractions?
How much hardware should be exposed
Back
Why does os care about abstraction
Front
-Allow applications to reuse common facilities
-Make different devices look the same
-Provide higher level/more useful functionality
Back
3 pieces of OS
Front
1. Virtualization
2. Concurrency
3. Persistence
Back
Why should OS share resources well?
Front
-Protect apps at a common layer
-Provide efficient access to resources
-provide fair access to resources
Back
3 Requirements of concurrency
Front
1. Hide concurrency from independent processes
2. Manage concurrency with interacting processes
3. Provide abstractions
Back
Role 2 of OS
Front
Share resources well
Back
Security=
Front
isolation + reliability
Back
Challenges of resource sharing
Front
-Correct mechanisms?
-Correct policies?
Back
Virtualization
Front
Make each application believe it has each resource to itself
Back
Race condition
Front
Processes carry out their tasks on a shared resource in an incorrect order due to lack of mediation (results when several threads try to access and modify the same data concurrently)
Back
Concurrency
Front
Events occur simultaneously and may interact with each other
Back
Issues with persistence
Front
-High level abstractions
-Correctness with unexpected failures
-Performance
Back
Role 1 of OS
Front
Abstraction
Back
Ex of disk abstraction
Front
File system
Back
Persistence
Front
Lifetime of data is longer than lifetime of any one process
Machine may lose power or crash unexpectedly