A program that acts as an intermediary between a user of a computer and the computer hardware.
- An operating system (OS) is everything in system that isn't an application or hardware
 
- An OS provides orderly and controlled allocation and use (i.e.,
sharing, optimization of resource utilization) of the resources (Processor, Memory, I/O devices)  by the users (jobs) that compete for them.
 
- Support programs (typically called daemons) running in the machine that handle higher level services such as mail transport (networking), off-line file system checking (system robustness), web serving (server work), etc.
 
- Protection and Security
 
- Provides an abstraction layer over the concrete hardware. Use the computer hardware in an efficient manner (converting hardware into useful form;) ``hide'' the complexity of the underlying hardware and give the user a better view (an abstraction) of the computer for applications by providing:
- Standard library
- allow applications to reuse common facilities
 
- make different devices look the same
 
- provide higher-level abstractions
 
- What are the right abstractions Challenge.
 
 
- Resource manager, Resource - ``Something valuable'' e.g. CPU, memory (RAM), I/O devices (disk). Each program gets time with the resource and each program gets space on the resource
- Multiple users/applications can share, why share: (1) devices are expensive, and (2) there is need to share data as well as communicate
 
- Protect applications from one another
 
- Provide fair and efficient access to resources
 
- OS cannot please all the people all the time, but it should please most of the people most of the time, so: What mechanisms? What policies? (e.g.,. which user/process should get priority for printing on a common shared printer?); Challenges
 
 
 
Subsections
Cem Ozdogan
2004-03-06