Intro to Computer Systems

Chapter 11: Systems and Software

Components of an Operating System

Command Interpreter

In order to perform the actions requested by the users, an Operating System must be able to communicate with those users. This communication takes the form of accepting user commands, acting on them, and informing the user of the result of these commands. The portion of an Operating System that handles this communication is often called the shell. Older shells communicate with users through textual messages using a keyboard and monitor screen.

Modern shells perform this task by means of a Graphical User Interface (GUI) in which objects are represented pictorially on the monitor screen as icons. These systems allow the users to issue commands by manipulating these icons with a mouse by pointing and clicking.

The shell as the interface between the kernel and the user.
The shell as the interface between the kernel and the user.

The Kernel

Although an Operating System’s shell plays an important role, it is merely an interface between a user and the heart of the Operating System. In contrast to the shell, the internal part of an Operating System is called the kernel.

The kernel contains those software components that perform the very fundamental functions of a computer:

File Manager

One of such unit is the file manager, which coordinates the use of the machine’s storage facilities. The file manager maintains records of all files stored, which users are allowed to access them and which sections of the storage device are free for new files - these records are kept on the individual storage devices.

File managers generally allow files to be grouped into a bundle called a folder (or directory), which allows the user to group related files according to their purpose. Furthermore, directories can contain other directories (called sub-directories) so a hierarchical organization of files is possible. A chain of directories is called a directory path.

Device Drivers

Another component consists of a collection of device drivers, which communicate with the peripherals attached to the machine. Each device driver is uniquely designed for its type (such as a printer or video card) and translates the generic requests of the Operating System into the detailed instructions of the device. In this way, the design of the Operating System is independent of the characteristics of the particular devices but it can be customized for different devices by installing the appropriate driver.

Memory Manager

The memory manager is in charge of coordinating the machine use of the main memory. In multitasking environments, the duties of the memory manager are extensive as the computer is asked to address many needs at the same time. In these cases, many programs and their associated data must reside in main memory concurrently. Thus, the memory manager must .nd and assign memory for these needs and ensure that the actions of each program are restricted to their allocated space.

The work of memory manager is complicated further when the total main memory space required exceeds the space actually available in the computer. In this case, the memory manager creates the illusion of additional memory space by swapping programs and data between main memory and disk storage. This large ‘fictional’ memory space created by paging is called virtual memory (see later).

Scheduler

The scheduler determines the order in which activities (called processes) are to be considered for execution in multiprogramming systems, while the dispatcher is in charge of dispatching processes to run on the CPU. There are more details about these components in the next section.