Although many of the functions above are often not immediately visible/perceptible to the user, the importance of a computer’s operating system is crucial: in addition to the need to manage the aforementioned basic functions, beyond the maximum performance offered by the hardware of the ‘computer itself, the operating system actually determines the efficiency and a good part of the actual operating performance of the entire system, for example in terms of processing latencies, stability, interruptions or system crashes.
What are the two main functions of an operating system?
The operating system has two main functions:
- The control and management of the hardware components that make up the computer (input/output processes to and from the peripherals connected to the system)
- Manage file storage and access. The programs can manage data storage on mass memory (obtaining complex structures, such as a database), using the procedures made available to the operating system. The component of the OS that takes care of all this is called the file system.
If interaction with the user is envisaged, a software interface (graphic or textual) is usually used to access the hardware resources (disks, memory, I / O in general) of the system.
On the other hand, an operating system can also be used on a machine that does not directly interact with a human being (for example, see smart cards or certain embedded systems), which is often lighter and simpler.
Usually, an operating system installed on a computer also provides basic applications to perform different processing types.
Therefore, it is an essential component of the processing system that acts as a “base” on which the other software is supported, which therefore must be designed and built in such a way as to be recognized and supported by that particular operating system. The processor, with which it is closely linked, forms the so-called processing system platform.
A group of fundamental functions, strictly interconnected with each other and with the hardware, which is performed with the maximum privilege available on the machine in kernel mode. The kernel provides the basic functionality for all other operating system components, which perform their functions using its services. Depending on the type of operating system, the kernel can incorporate other parts ( classic, monolithic or modular kernel ) or provide only basic functions by delegating as many functions as possible to external objects/managers ( microkernel ).
A primary storage management system
It allocates the primary memory required by programs and by the operating system itself, saves the memory areas temporarily not used by programs ( virtual memory ) on mass memory, and ensures that the swapped pages are returned to memory if requested.
The file system manager
It deals with fulfilling requests for access to mass memories. It is used every time a file on disk is accessed, and in addition to providing the required data, it keeps track of open files, file access permissions. It also and above all, deals with the logical abstraction of data stored on the computer (directories, etc.).
A user interface
It allows users to interact with the machine. Depending on the case, a particular operating system may have all of these components or just some.
A further difference between operating systems is given by the type of communication between the various components: classic operating systems are based on direct function calls, while many modern operating systems, especially those that adopt microkernel, are based on message passing, on the exchange of messages between their various parts and between the operating system and the programs it runs.
A computer becomes much more useful and practical if equipped with a mass memory: to manage it, you need a file system manager, that is a software that is composed of a set of functions that allows you to organize and manage (access or read, or storage, sorting) the data on the surface of the storage means according to a well-defined structure.
Operating systems that resided on disk and capable of managing a file system are generically called Disk Operating System, e DOS precisely.
The most famous example is undoubtedly Microsoft’s MS-DOS, no longer in use today, but which was based on the Windows 95/98 / Me operating systems.
Programs don’t always really need the CPU: sometimes, instead of executing instructions, they are waiting for data to arrive from a file, or for the user to press a key on the keyboard. So you can, in principle, use these “dead times” to run another program.
This idea, which arose in the early fifties, materialized in multitasking operating systems. It is equipped with a scheduler that runs multiple processes (program executions), assigning the CPU to each one in turn and suspending the execution of pending programs.
Having to host more programs in the main memory simultaneously, multitask systems need more memory than monotask ones: this type of operating system is almost always equipped with a virtual memory manager. Furthermore, with multiple programs running simultaneously, hardware resources’ control becomes a real necessity and it is no longer possible to do without it.