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
2004-05-25