Operating system

An operating system is a set of computer programs that manages the system resources of a computer, such as memory, hard disks, input and output devices, and makes them available to application programs. The operating system thus forms the interface between the hardware components and the user's application software. Operating systems usually consist of a kernel (German: Kern), which manages the hardware of the computer, as well as special programs, which take over different tasks at the start. These tasks include loading device drivers. Operating systems are found in almost all types of computers: as real-time operating systems on process computers and embedded systems, on personal computers, tablet computers, smartphones, and on larger multiprocessor systems such as servers and mainframes.

The tasks of an operating system can be summarized as follows: User communication; loading, executing, interrupting and terminating programs; managing and allocating processor time; managing internal memory space for applications; managing and operating connected devices; protective functions, e.g. through access restrictions. The weighting between these tasks changed over time, in particular protective functions such as memory protection or limited user rights are now given more importance than in the 1990s. This makes systems generally more robust, e.g. reduces the number of program and system crashes, and also makes the system more stable against attacks from outside, such as computer viruses.

This article deals with the term "operating system" mainly in the context of "computer systems generally used for information processing". In addition, operating systems (with possibly specialized functionality) are basically used in almost all devices in which software is operated (such as game computers, mobile phones, navigation systems, machines in the mechanical engineering industry, and many others). Many control systems (embedded systems) that can be found, for example, in airplanes, cars, trains, or satellites, also have specialized operating systems.

PC operating systems Market shares in GermanyZoom
PC operating systems Market shares in Germany

Relationship between operating system, hardware, application software and the userZoom
Relationship between operating system, hardware, application software and the user

Developmental Stages

The development of computer operating systems ran and still runs parallel to the development and performance of available hardware: Both lines were mutually dependent and enabled or required further developments on the 'other' side. The development proceeded partly in small, sometimes in larger leaps:

Punched card processing systems (applies mutatis mutandis to punched tape) are now (since the early 1970s) a thing of the past. However, they are a good starting point for considering system development: In these spatially relatively large systems, there were no external electronic storage media yet. The programs were available (in machine language) in the form of stacks of punched cards and were 'read' into the internal memory by the operator via the punched card reader. After the 'end card', the application program was started, which also had to read its input data via the card reader, depending on the task (hence the term batch processing, queued systems) and output its results directly via a printer and/or via the card punch. Upstream and downstream, capture, mixing and sorting processes were necessary, carried out with the aid of electro-mechanical devices (card punchers, mixers, sorters). Already at this time, the internal processing was much faster than the input/output devices; reading a stack of punched cards (cardboard box with 2000 cards) took about 5-10 minutes, the working memory sizes of such machines were about 16 to 64 kB (example see System/360).
These machines had no conventional operating system, as it is common today. Only a control program (resident monitor) was kept in memory and ensured smooth operation by passing control to the programs currently being executed. The computer could only run one program at a time.

A further development - Multiprogrammed Batch Systems - could support additional devices (magnetic tape units, first magnetic disks with e.g. 7.25 MB storage volume), execute several programs simultaneously (e.g. in 3 'partitions') and hold programs and data on external memories. Faster processing was possible as the time required to read and issue stacks of cards was eliminated - and processors became faster. Here, mechanisms such as spooling (intermediate output of printer data to magnetic tape with delayed printing possible in parallel) and the possibility of offline operation were already used extensively. However, a program was needed to take care of the tasks of I/O management, memory management and, above all, CPU scheduling, etc. From this point on, one could speak of the first operating systems.

The next steps were then consequences of the respective tasks that were assigned to the systems. The following systems were developed and are still in use today: Parallel systems, distributed systems, personal computer systems, time-sharing systems, real-time systems and, more recently, personal digital assistants and smartphones.

In the PC sector, the most widely used operating systems are currently the different variants of Windows from Microsoft (leading in systems with GUI), BSD incl. macOS from Apple (most widely used desktop Unix) and GNU/Linux (leading in servers). For special applications (example: industrial control), experimental operating systems are also used for research and teaching purposes.

In addition to the classic variants, there are also special operating systems for distributed systems in which a distinction is made between the logical system and the physical system(s). The logical computer consists of several physical computer units. Many mainframes, number crunchers and the systems from Cray work according to this principle. One of the best known operating systems in the field of distributed systems is Amoeba.

See also: List of operating systems

Tasks

The tasks of an operating system usually include:

  • Memory management
    • Management of the system resource main memory.
    • Logging of memory usage.
    • Reservation and release of memory.
  • (Process) management
    • Monitoring of memory accesses and, if necessary, termination of processes in the event of a protection violation.
    • Creation of new processes (either at the request of the operating system or at the request of other already existing processes) and reservation of the memory required by the processes.
    • Communication and synchronization of processes among each other (inter-process communication)
  • Device and file management
    • Efficient allocation of input/output devices and switching units (data channels, control units), avoidance of conflicts
    • Initiation, monitoring of execution, scheduling of input/output operations.
    • Management of the file system. Creation of a namespace with associated storage objects and, if necessary, further objects.
  • Rights management
    • Independent users/programs must not interfere with each other.
  • Abstraction
    • Hiding the complexity of the machine from the user
    • Abstraction of the machine concept (after Coy):
      • Real machine = central unit + devices (hardware)
      • Abstract machine = Real machine + Operating system
      • User machine = abstract machine + application program

For historical reasons, a device from the point of view of an operating system is everything that is addressed via input/output channels. These are not only devices in the conventional sense, but now also internal extensions such as graphics cards, network cards and others. The (sub)programs for initializing and controlling these "devices" are collectively referred to as device drivers.

Questions and Answers

Q: What is an operating system?


A: An operating system (OS) is a group of computer programs that allow people to interact with a computer and manage computer hardware and software resources.

Q: What are the components of an operating system?


A: The components of an operating system include device drivers, kernels, and other software that provide common services for computer programs.

Q: Can an operating system be small or large?


A: Yes, an operating system can be small (like MenuetOS) or large (like Microsoft Windows).

Q: What are some examples of operating systems?


A: Some examples of operating systems are macOS, Linux, and Microsoft Windows.

Q: What are the different uses for operating systems?


A: Different operating systems can be used for different purposes, such as personal computers, mobile operating systems, or specialized work.

Q: What jobs does an operating system perform?


A: An operating system makes sure that all programs can use the CPU, system memory, displays, input devices, and other hardware. Additionally, some give the user an interface to use a computer and are responsible for sending data to other computers or devices in a network.

Q: What is the importance of an operating system?


A: An operating system is essential because it allows people to interact with their computers, manages computer hardware and software resources, and provides common services for computer programs. It also ensures that all programs can use the hardware and sends data to other computers or devices on a network.

AlegsaOnline.com - 2020 / 2023 - License CC3