Book chapter notes:
The operating system (OS) is the software that runs on the bare hardware of a computer and provides essential support for users to develop and use applications in the most efficient and safe manner.
The OS will also serve as an abstraction layer for the user/applications to interact with hardware.
The OS can serve as a virtualization process, to different applications appear to have their own memory, processor, etc. Consider the following:
If two applications are running in the same section of memory, it is possible that program A will access and change program B. What would the net effect be? Disastrous?
But, what if Program A and Program B both see memory/CPU/etc as their own. And that memory space is protected from the other – what is the chance of crossover? How does that protect the user from crashes and make the system more stable?
This concept is known as virtualization, and is standard in many modern OSes. However, the OS must run as a program organizer. It must keep track of how much memory each application needs, when it is running, what other applications are waiting to run, etc.
Multiprogramming
Multiprogramming is a technique that keeps several programs active in memory and switches execution among the different programs to maximize the use of the CPU and other resources.
This technique keeps several programs active in memory and switches execution among the different programs to maximize the use of the CPU and other resources.
Time-sharing (multitasking) is an extension of multiprogramming where the CPU is switched periodically among all active computations to guarantee acceptable response times to each user.
With the advent, and drop in prices for multi-core/multi-thread processors, and an abundance of RAM, it is easier to run in a time-sharing scenario, only being bound by limitations such as IO, (network limitations, accessing a disk, sending information to a printer).
Role of the OS was originally found on Access 2 Learn