What is the classification of the computer

What is an operating system

Universal operating systems These operating systems meet several of the criteria listed above.

Classification according to the number of programs running at the same time:

In this classification comes the term "Task" in front. Alternatively, the German term "Process" Find use. From the user's point of view, the term "Task"or. "Assignment" be used.
  • Single program operation (single tasking)
    A single program runs at a specific point in time. Several programs are executed one after the other.
  • Multi-program operation (multitasking)
    Several programs are processed simultaneously (with several CPUs) or interlaced in time, i.e. quasi-parallel.

Classification according to the number of users working on the computer at the same time:

  • Single user mode
    The computer is only available to one user.
  • Multi-user operation (multiuser mode)
    Several users share the computer power, they are connected to the computer via terminals or network connections.

Classification according to the number of managed processors or computers:

However, it is not a question of how many processors are generally used in a computer, but how many Universal processors are available for processing the data. What do you mean with that? In a modern computer there is at least one main processor (CPU, Central Processing Unit). We generally refer to it as the processor. But the PC may also contain other processors that work somewhat covertly, e.g. B. the graphics processor, which has special properties and a special instruction set. The controller for the SCSI interface also often has its own processor, and input and output can also be handled by its own processors.
This results in the following distinction:
  • Single processor operating system
    Most computers based on the von Neumann architecture have only one universal processor. For this reason, most operating systems only support one processor for this application area.
  • Multi-processor operating system
    No statement has yet been made about the coupling of the individual processors for this classification of the operating systems. Also, there is no quantitative indication of the number of processors, only that there is more than one processor. There are two approaches to implementing the operating systems for the multiprocessor systems:
    • Each processor is assigned its own task by the operating system. This means that only as many tasks can be processed at any point in time as there are processors available. Coordination problems arise when the number of tasks is not equal to the number of available processors.
    • In principle, each task can be assigned to any processor; the distribution of the tasks to the processors is not tied to the condition that the number of tasks is equal to the number of processors. If there are more tasks to be processed than there are processors, a processor processes several outputs "quasi-parallel". If there are more processors than tasks, then several processors process a task.
    The operating system for its part can also be distributed over several processors. One then speaks of "distributed operating systems".

1.3 Operating System Architecture

For logical structuring, the operating system is usually divided into several layers or shells. The bottom shell contains all hardware-dependent parts of the operating system, especially the processing of interrupts. In this way it is possible to easily adapt the BS to different computer equipment. The next layer contains the basic I / O services for disk storage and peripheral devices. The next layer deals with communication and network services, files and file systems. Further layers can follow depending on requirements. An operating system therefore has three or more logical layers.

Each layer forms an abstract (virtual) machine that communicates with its neighboring layers via well-defined interfaces. It can call functions of the next lower layer and in turn make functions available for the next higher layer. The entirety of the functions offered by a layer is also referred to as the "services" of this layer. The entirety of the regulations that must be complied with when using the services is referred to as the "protocol".

The lowest layer is always based directly on the computer hardware. She manages the real resources of the computer and instead provides virtual resources. This layer is often referred to as the "BIOS" (Basic I / O System). All other layers are independent of the hardware.

An increasing "refinement" of the hardware is achieved through each layer (e.g. increasing abstraction, increasing user friendliness).

The early computers (mainframe computers, "medium data technology") were characterized by the fact that the hardware and operating system came from the same manufacturer and were optimally coordinated with one another. In today's PCs, this is only the case with Apple's Macintosh. In the case of personal computers based on Intel processors, the hardware and operating system come from different manufacturers, even if the operating system is often delivered together with the hardware. You can choose between Microsoft operating systems (Windows 98 / ME, Windows 2000, Windows XP, etc.) or free UNIX implementations (Free BSD, Linux). Since additional plug-in cards and peripheral devices (printers, scanners, etc.) come from a wide variety of manufacturers, they usually also provide the operating system adaptation in the form of drivers that are integrated when the operating system is loaded ("bootstrap").

The programming interface (API, Applications Programmers Interface) of the higher layers also avoids that every programmer has to program the basic routines for access to input / output devices and mass storage devices himself. The BS therefore provides a defined programming interface. Changes to the OS or the hardware thus have no effect on the user programs, which continue to use the services of the OS via the same operating system calls.

In the case of single-user single-tasking systems, user programs can break through the layer structure and B. set up directly on a specific hardware component. This is not possible with multi-user or multi-tasking systems, as the protection of the individual resources (CPU, disk, input / output, etc.) must be guaranteed for each program from being influenced by other programs. Strictly hierarchical communication is required here, which is only permitted between two adjacent layers.

If you consider that today's computer systems differ even within a computer family in many ways in terms of memory equipment, type and scope of the connected devices, it becomes clear that the creation of monolithic programs for every possible computer constellation is a practically impracticable undertaking. The solution to this problem is called here: Modularization.

Programs are broken down into modules that are related to each other via defined interfaces. It is thus possible to replace a module within a program with another with the same interface in order to adapt the program to a different computer constellation. The selection and composition of the generally applicable modules is determined by the hardware used and the type of programs that are to be supported by these modules. It is the same for many programs that are to be processed on a computer and, in turn, differs somewhat from computer to computer.

The term "middleware" often appears in connection with operating systems. It describes system and network services (e.g. database, communication, logging, security) located between the actual applications and the operating system level. As an application layer, it is a service layer that is used instead of the operating system interface. Middleware systems enable applications to be distributed over several computers in the network. The distribution is object-oriented: servers export their services as class interfaces, clients use remote method calls to access the services. The binding can be static or dynamic.

1.4 Why multitasking brings more computing power

One would like to assume that with several programs running quasi-parallel, the real runtime for each individual program is longer than if only one program were running on the computer. For the sake of simplicity, let us assume that each process is assigned the same runtime and that everyone also has a regular turn.

If you look at this picture, of course, each program takes longer, because the time is divided between the programs. In practice, however, programs often have to wait for external events, e.g. B. until a key input has been made or until data has been transported from the disk to the memory. As you will see later, a program waiting for an external event can be put in a wait state and other programs can continue working in the meantime. With a multitasking operating system, the computer can index databases, print documents, send e-mails, etc. while you are thinking about the next move against the chess program.

Copyright © Munich University of Applied Sciences, FB 04, Prof. Jürgen Plate