What is an Operating System?
In the 1960s, the definition of an operating system might have been the software that controls hardware. But the landscape of computer systems has evolved significantly since then, requiring a richer definition.
Today’s hardware executes a great variety of software applications. To increase hardware utilization, applications are designed to execute concurrently. If these applications are not carefully programmed, they may interfere with one another. As a result, a layer of software called an operating system separates applications from the hardware they access and provides services that allow each application to execute safely and effectively.
An operating system is software that enables applications to interact with a computer’s hardware. The software that contains the core components of the operating system is called the kernel.
Operating System Components and Goals
• Core Operating System Components
A user interacts with the operating system via one or more user applications and often through a special application called a shell, or command interpreter. Most of today’s shells are implemented as text-based interfaces that enable the user to issue commands from a keyboard or as GUIs that allow the user to point and click and drag and drop icons to request services from the operating system.
Typical operating system core components include:
1. The process scheduler, which determines when and for how long a process executes on a processor.
2. The memory manager, which determines when and how memory is allocated to processes and what to do when main memory becomes full.
3. The I/O manager, which services input and output requests from and to hardware devices, respectively.
4. The interprocess communication (IPC) manager, which allows processes to communicate with one another.
5. The file system manager, which organizes named collections of data on storage devices and provides an interface for accessing data on those devices.
NOTE: Operating systems with networking capability have a sixth essential manager called the Network Manager that provides a convenient way for users to share resources while controlling users’ access to them. These resources include hardware (such as CPUs, memory areas, printers, tape drives, modems, and disk drives) and software (such as compilers, application programs, and data files).
• Operating Systems Goals
Users have come to expect certain characteristics of operating systems such as:
An efficient operating system achieves high throughput and low average turn-around time. Throughput measures the amount of work a processor can complete within a certain time period.
A robust operating system is fault tolerant and reliable – the system will not fail due to isolated application or hardware errors, and if it fails, it does so gracefully (i.e. by minimizing loss of work and by preventing damage to the system’s hardware). Such an operating system will provide services to each application unless the hardware it relies on fails.
A scalable operating system is able to use resources as they are added. If an operating system is not scalable, then it will quickly reach a point where additional resources will not be fully utilized. A scalable operating system can readily adjust its degree of multiprogramming. Scalability is a particularly important attribute of multiprocessor systems – as more processors are added to a system, ideally the processing capacity should increase in proportion to the number of processes though, in practice that does not happen.
An extensible operating system will adapt well to new technologies and provide...