Kernel and utilities

The operating system includes a number of routines (subroutines). the most important are the core or kernel. It is loaded into memory live at system initialization and contains many procedures needed to ensure system operation. Other routines, less critical, are called utilities.

The kernel of an operating system consists of four main parts: the manager tasks (or processes), the memory manager, and file manager IO Device Manager. It also has two auxiliary parts: charger operating system and shell.

Task Manager

On a time-shared system, one of the most important parts of the operating system is the task manager or scheduler. A system to a single processor, it divides the time interval or called slices. periodically, the task manager decides to interrupt the current process and start (or resume) the performance of another, or because the first has exhausted its allocation time the process is that it is blocked (waiting for a given one of the devices).

Control of several parallel activities is hard work. Therefore designer’s operating systems have consistently, over the years, improved parallelism model to make it easier to use.

Some operating systems allow only non-preemptive process, which means that the task manager is invoked when a process voluntarily yields the processor. But the process of a multi-user system must be preemptive.

The memory manager

Memory is an important resource that must be managed carefully. Any microcomputer has, since the late 1980s, ten times more memory than the IBM 7094, the most powerful computer in the early sixties. But the size of programs increases just as fast as that of memories.

Memory management is the responsibility of the memory manager. One must know the free parts and occupied parts of memory, allocating memory to processes that need it, reclaim the memory used by a process when it ends and treating back and forth (swapping in or paging) between the disk and the main memory when the can not contain all processes.

The file manager

As we have already said, one of the fundamental tasks of the operating system is to hide the specifics disks and other input-output devices and provide the programmer with a nice and easy to use template. This is done through the file concept.

Device Manager

Control of input-output (I/O) of the computer is one of the primary of an operating system functions. It must send commands to devices, intercepting interruptions, and handle errors. It must also provide a simple interface and easy to use between devices and the rest of the system to be as far as possible, the same for all devices, that is to say, irrespective of the device used. The input-output code is an important part of an entire operating system.

Many operating systems provide a level of abstraction that allows users to perform input-output without going into details of the material. This level of abstraction shows each device as a special file that can process the input-output devices as files. This is the case of UNIX. In this case, we call regular file any file located in the mass memory.

The operating system loader

In general, these days, when the computer (compatible PC or Mac) is turned on, it runs a program called BIOS (for Basic Input Output System) placed a definite address and content RAM. This software initializes the devices, loads a sector of a disc, and performs what is placed there. When designing an operating system, the operating system loader sector placed or, more accurately, the loader of the operating system loader (or pre-charger) since the content of a sector is insufficient for the charger itself.

The design of the charger and the pre-loader is needed, even if they are not explicitly part of the operating system.

The shell

The actual operating system is the code that defines system calls. System programs such as text editors, compilers, assemblers, linkers, and command interpreters are not part of the operating system. However, the command interpreter (shell) is often considered part of it.

In its most basic form, the command executes an infinite loop that displays a prompt (thereby showing that one expects something), reads the program name entered by the user at that time and 'runs.