Interface between hardware and user.
Handle technical details without user intervention.
A Collection of programs
Responsible for the management and coordination of activities and the sharing of the resources of a computer
Acts as a host for computing applications run on the machine.
Determines which applications should run in what order and how much time should be allowed for each application before giving another application a turn (in multitasking OS).
Handle the resource allocation and access protection of the hardware.
Relieves the application programmers from having to manage these details.