Classification of operating systems. Real time OS

The operating system determines the appearance of the computing system to the greatest extent. Modern computing systems consist of processors, memory, timers, various types of disks, tape drives, printers, network communications equipment, and other devices that require complex control mechanisms. The OS must manage all the resources of the computer in such a way as to ensure the maximum efficiency of its functioning. In accordance with this, the main function of the OS is the allocation of processors, memory, other devices and data among computational processes competing for these resources. Resource management includes solving the following tasks that do not depend on the type of resource:

resource planning, i.e. determining to whom, when and in what quantity it is necessary to allocate a given resource;

control over the state of the resource, i.e. maintaining operational information about whether the resource is busy or not, how much of the resource has already been allocated, and what is free.

The efficiency of the network operating system as a whole largely depends on the efficiency of the algorithms for managing the local resources of a computer.

Operating systems differ in the features of the implementation of algorithms for managing computer resources, areas of use, and in many other ways. So, depending on the features of the processor control algorithm, operating systems are divided into single-task and multitask, single-user and multi-user, single-processor and multi-processor systems, as well as local and network.

Single-tasking and multitasking operating systems. Operating systems are divided into two classes by the number of simultaneously executed tasks:

single-tasking(e.g. MS DOS, MSX);

multitasking(EU OS, OS / 2, Unix, Windows OS), etc.

Single-tasking OS mainly perform the function of providing the user with a virtual machine, making the user interface with the computer simpler and more convenient. Single-tasking operating systems include tools for controlling peripheral devices, tools for managing files, tools for communicating with the user.



Multitasking OS In addition to the above functions, they control the sharing of shared resources such as processor, RAM, files, and external devices.

Preemptive and non-preemptive multitasking. The most important shared resource is CPU time. The way the processor time is distributed among several computational processes simultaneously existing in the system largely determines the peculiarity of the OS. Among the many existing methods for implementing multitasking, two groups of algorithms can be distinguished:

Non-preemptive multitasking (NetWare, Windows 3.x);

Preemptive multitasking (Windows NT, OS / 2, Unix).

The main difference between preemptive and non-preemptive multitasking algorithms is the degree of centralization of the planning of computing processes. In the first case, the planning of computing processes is entirely assigned to the operating system, and in the second, it is distributed between the operating system and application programs. In non-preemptive multitasking, an active computational process is performed until the application itself, on its own initiative, instructs the operating system to select another process ready for execution from the queue. In preemptive multitasking, the decision to switch the processor from one active computing process to another is made by the OS itself, and not by the application program.

Depending on the areas of use, multitasking operating systems are divided into three types:

batch processing systems(for example, EU OS);

time-sharing systems(Unix, VMS, Windows, Linux);

real time systems(QNX, RT / 11).

Batch processing systems are designed to solve problems of a nature that do not require quick results. The main goal and efficiency criterion of batch processing systems is maximum throughput, i.e. solving the maximum number of problems per unit of time. To achieve this goal, the following order of data processing is used in batch processing systems: at the beginning of work, a batch of tasks is formed, each task contains a requirement for system resources; from this batch of tasks, a set of simultaneously executed tasks is formed. For simultaneous execution, those tasks are selected that have different resource requirements. This is done in order to ensure a balanced load of all devices of the computer. For example, the simultaneous presence of computational and I / O intensive tasks is desirable.

Thus, the choice of a new task from a batch of tasks depends on the internal situation in the system, i.e. the most optimal, “profitable” task is selected. Consequently, in such operating systems, it is impossible to guarantee the execution of a particular task within a certain period of time. In batch processing systems, the processor switches from one task to another only if the active task itself relinquishes the processor, for example, due to the need to perform an I / O operation. It is obvious that such an algorithm of the computational process reduces the efficiency of the user in an interactive mode, but it remains relevant to ensure high performance when processing large amounts of information to this day, especially in applied information systems.

Time-sharing systems. In a time-sharing system, each task is allocated a small slice of CPU time, no task takes a long time, and response times are acceptable. If the quantum is chosen small enough, then this implies the parallel execution of several programs existing within the same computing system. It is clear that such systems have a lower throughput than batch processing systems, since each task launched by the user is accepted for execution, and not the one that is “beneficial” to the system. The criterion for the efficiency of time-sharing systems is not the maximum throughput of the processor, but the efficiency of the user in interactive mode.

Real time systems(OS RT) are used to control various technical objects (such as a machine tool, satellite, scientific experimental installation) or technological processes (galvanic line, blast furnace process, etc.). OS RV is also used in banking. The criterion of efficiency for real-time systems is their ability to withstand predetermined time intervals between the start of the program and the receipt of the result (control action). This time is called the reaction time of the system, and the corresponding property of the system is called reactivity. Among the most well-known RT operating systems for the IBM PC are RTMX, AMX, OS-9000, FLEX OS, QNX, etc. Among the operating systems listed above, the most complete set of tools is possessed by the RT OS QNX, which runs 32-bit applications and can work in conjunction with the OS family Unix.

Some operating systems can combine the properties of systems of different types, for example, some tasks can be performed in batch mode, and some in real time or in time-sharing mode. In such cases, batch processing is often referred to as background processing.

Multiplayer and single player modes. By the number of concurrent users, the OS can be divided into single-user(MS DOS, Windows 3.x) and multiplayer(Unix, Windows NT, Windows XP, Linux).

The main difference between multi-user systems and single-user is the availability of means of protecting the information of each user from unauthorized access by other users. It should be noted that not every multi-tasking system is multi-user and not every single-user operating system is single-tasking.

Multiprocessor and uniprocessor systems. Another important feature of the OS is the absence or presence of multiprocessing support. Nowadays, it is becoming generally accepted to introduce multiprocessing support functions into the OS. These features are available on Sun's Solaris 2.x, Santa Crus Operations' Open Server 3.x, IBM's OS / 2, Microsoft's Windows NT, and Novell's NetWare 4.1.

On a multiprocessor operating system can be divided according to the method of organizing the computational process as follows: asymmetric OS and symmetric OS. Asymmetric OS is completely executed only on one of the system processors, distributing application tasks among the rest of the processors. Symmetric OS completely decentralized and uses the full number of processors, dividing them between system and application tasks.

One of the important signs of OS classification is their division on network and local.

Network OS are designed to manage the resources of computers connected to a network for the purpose of sharing data.

They provide a means of differentiating access to information, its integrity and safety, as well as other opportunities for using network resources.

A network operating system is the backbone of any computer network.

On the one hand, every computer on the network is autonomous to some extent, so under the network operating system means the whole set of operating systems of individual computers interacting with the purpose of exchanging messages and dividing resources according to uniform rules - protocols.

On the other side, network OS Is the operating system of an individual computer that enables it to operate on a network.

In most cases, operating systems are installed on one or more sufficiently powerful server computers dedicated solely to serving the network and shared resources.

All other operating systems will be considered local network and can be used on any PC connected to the network as a workstation. Each workstation runs its own local network operating system, which differs from the operating system of a stand-alone computer in the presence of additional tools that allow the computer to work on the network.

Local Network OS This type does not fundamentally differ from the operating system of a stand-alone computer, but it necessarily contains software support for network interface devices (network adapter driver), as well as tools for remote access to other network computers and tools for accessing remote files, but these additions do not significantly change the structure of the operating system itself.

On a network operating system a separate machine can be divided into several parts:

tools for managing local computer resources: functions for distributing RAM between scheduling and scheduling processes, controlling processors in multiprocessor machines, controlling peripheral devices and other functions for managing local OS resources;

means of providing own resources and services for general use- the server side of the OS (server). These tools provide, for example, the locking of files and records, which is necessary for their sharing; maintaining directories of names of network resources; processing requests for remote access to its own file system and database; management of queues of requests of remote users to their peripheral devices;

means of requesting access to remote resources and services and their use- the client side of the OS. This part performs recognition and redirection to the network of requests to remote resources from applications and users, while the request comes from the application in a local form, and is transmitted to the network in a different form that meets the server's requirements. The client part also receives responses from servers and converts them to a local format, so that for the application the execution of local and remote requests is indistinguishable;

OS communication tools, with the help of which messages are exchanged on the network. This part provides addressing and buffering of messages, selection of a message transmission route over the network, transmission reliability, etc. is a means of transporting messages.

The operating system is designed to control the execution of user programs, planning and managing the computing resources of a computer.

The operating system, on the one hand, acts as an interface between the computer hardware and the user with his tasks, on the other hand, it is designed for the efficient use of the resources of the computing system and the organization of reliable computing.

File management systems are designed to provide more convenient access to data organized as files.

Instead of low-level data access by specifying specific physical addresses, the file management system allows logical access by specifying a file name.

Any file management system does not exist on its own - it is designed to work on a specific OS and with a specific file system. That is, the file management system could be attributed to the OS.

But due to the fact that:

  • 1) a number of OS allows you to work with several file systems (either with one of several, or with several at once); and an additional file system can be installed (i.e., they are independent);
  • 2) the simplest operating systems can work without file systems; file management systems are separated into a separate group of system programs.

Note that often in the specialized literature, file management systems are still referred to as operating systems.

Operating systems differ in the features of the implementation of algorithms for managing computer resources, areas of use.

So, depending on the processor control algorithm, operating systems are divided into:

  • · Single-tasking and multi-tasking.
  • · Single and multiplayer.
  • · Uniprocessor and multiprocessor systems.
  • · Local and network.

Operating systems are divided into two classes by the number of simultaneously executed tasks:

  • · Single-tasking (MS DOS).
  • · Multitasking (OS / 2, Unix, Windows).

Single-tasking systems use peripheral device management tools, file management tools, and user communication tools. Multitasking operating systems take advantage of all the tools that single-tasking systems have, and also manage the sharing of shared resources: processor, RAM, files, and external devices.

Depending on the areas of use, multitasking operating systems are divided into three types:

  • · Batch processing systems (OS EU).
  • · Time-sharing systems (Unix, Linux, Windows).
  • · Real time systems (RT11).

Batch processing systems are designed for tasks that do not require quick results. The main goal of batch processing OS is to maximize throughput or solve the maximum number of tasks per unit of time.

These systems provide high performance when processing large amounts of information, but reduce the user's online efficiency.

In time-sharing systems, each task is allocated a small amount of time, and no task takes up the processor for long. If this period of time is selected to be the minimum, then the appearance of the simultaneous execution of several tasks is created. These systems have lower bandwidth but provide a high user experience online.

Real-time systems are used to control a technological process or a technical object, for example, an aircraft, machine tool, etc.

According to the number of concurrent users on a computer, OSs are divided into single-user (MS DOS) and multi-user (Unix, Linux, Windows 95 - XP).

In multi-user operating systems, each user customizes the user interface for himself, i.e. can create your own sets of shortcuts, groups of programs, set an individual color scheme, move the taskbar to a convenient place and add new items to the Start menu.

In multi-user operating systems, there are means of protecting the information of each user from unauthorized access by other users.

Multiprocessor and uniprocessor operating systems. One of the important properties of the OS is the availability of multiprocessor data processing support in it. Such tools exist in OS / 2, Net Ware, Widows NT. According to the method of organizing the computing process, these operating systems can be divided into asymmetric and symmetric.

One of the most important features of the classification of computers is their division into local and network. Local operating systems are used on stand-alone PCs or PCs that are used in computer networks as a client.

The local OS includes the client software for accessing remote resources and services. Network operating systems are designed to manage the resources of PCs connected to the network for the purpose of sharing resources. They represent powerful means of differentiating access to information, its integrity and other possibilities of using network resources.

software antivirus system file

All the variety of existing (and currently not used) operating systems can be classified according to many different characteristics. Let's dwell on the basic classification features.

1. By purpose, OS are divided into universal and specialized. Specialized operating systems, as a rule, work with a fixed set of programs (functional tasks). The use of such systems is due to the impossibility of using a universal OS for reasons of efficiency, reliability, security, etc., as well as due to the specifics of the tasks being solved.

Universal operating systems are designed to solve any user problems, but, as a rule, the form of operating a computing system may impose special requirements on the operating system, ᴛ.ᴇ. to the elements of her specialization.

2. By the download method, you can select bootable OS(majority) and resident systems computing system. The latter, as a rule, are specialized and are used to control the operation of specialized devices (for example, in an on-board computer of a ballistic missile or satellite, scientific instruments, automatic devices for various purposes, etc.).

3. By features resource management algorithms... The main resource of the system is the processor, in this regard, we will give a classification according to the processor control algorithms, although, of course, the OS can be classified according to memory management algorithms, input-output devices, etc.

Support for multitasking (multiprogramming). By the number of simultaneously executed tasks, OS are divided into 2 classes: single-programmed (single-tasking) - for example, MS-DOS, MSX, and multi-programmed (multitasking) - for example, ES ECM OS, OS / 360, OS / 2, UNIX, Windows of various versions.

ü Single-program operating systems provide the user with a virtual machine, making it easier and more convenient for the user to interact with the computer. Οʜᴎ also have tools for managing files, peripherals and communication with the user.

ü Multitasking operating systems also manage the sharing of shared resources (processor, memory, files, etc.), which can significantly improve the efficiency of the computing system.

Support for multiplayer mode. By the number of concurrently working users, the operating systems are divided: into single-user (MS-DOS, Windows 3x, early versions of OS / 2) and multi-user (UNIX, Windows NT / 2000/2003 / XP / Vista).

The main difference between multi-user systems and single-user systems is the availability of means to protect the information of each user from unauthorized access by other users. It should be noted that there must be a single user multiprogramming system.

Types of multi-program work. The specificity of the OS is largely determined by the way of distributing time between several processes (or threads) simultaneously existing in the system. On this basis, 2 groups of algorithms can be distinguished: non-preemptive multiprogramming (Windows3.x, NetWare) and preemptive multiprogramming (Windows 2000/2003 / XP, OS / 2, Unix).

In the first case, the active process runs until it itself hands over control to the operating system. In the second case, the operating system decides to switch processes. Such a multiprogramming mode is also possible, when the OS shares the processor time between separate branches (threads, fibers) of one process.

Multiprocessing. An important feature of the OS is the absence or presence of multiprocessing support tools. On this basis, one can distinguish an OS without multiprocessing support (Windows 3.x, Windows 95) and with multiprocessing support (Solaris, OS / 2, UNIX, Windows NT / 2000/2003 / XP).

Multiprocessor operating systems are classified according to the way the computing process is organized into asymmetric operating systems (executed on one processor, distributing application tasks among the rest of the processors) and symmetric operating systems (decentralized system).

4. According to the area of ​​use and the form of operation. Usually, three types are distinguished here in accordance with the performance criteria used in their development:

Batch processing systems (OS / 360, OC EC);

Time sharing systems (UNIX, VMS);

Real time systems (QNX, RT / 11).

The first ones were intended for solving problems, mainly of a computational nature, that did not require fast results. The criterion for creating such an OS is the maximum throughput with a good load of all computer resources. In such systems, the user is removed from the computer.

Time sharing systems provide convenience and efficiency for the user, who has a terminal and can conduct a dialogue with his program.

Real-time systems are designed to control technical objects (machine tool, satellite, technological process, for example, a blast furnace, etc.), where there is a limit time for executing programs that control the object.

5. According to the hardware platform (type of computer equipment) for which they are intended, operating systems are divided into the following groups.

Operating systems for smart cards. Some of them can only manage one transaction, for example, an electronic payment. Some smart cards are JAVA oriented and contain a JAVA virtual machine interpreter. JAVA applets are loaded onto the card and executed by the JVM interpreter. Some of these cards can control multiple JAVA applets at the same time, which leads to multitasking and scheduling is extremely important.

Embedded operating systems. They control pocket computers (lialm OS, Windows CE - Consumer Electronics), mobile telephones, televisions, microwave ovens, etc.

Operating systems for personal computers, for example, Windows 9.x, Windows XP, Linux, Mac OSX, etc.

Minicomputer operating systems, for example, RT-11 for PDP-11 - real-time OC, RSX-11 M for PDP-11 - time sharing OS, UNIX for PDP-7.

Mainframe (large machine) operating systems such as OS / 390, derived from OS / 360 (IBM). Typically, mainframe operating systems provide three types of service at the same time: batch processing, transaction processing (for example, working with databases, booking air tickets, working in banks) and time sharing.

Server operating systems such as UNIX, Windows 2000, Linux. Application area - LAN, regional networks, Intranet, Internet.

Clustered operating systems. A cluster is a loosely coupled collection of several computing systems working together to run common applications and presented to the user by a single system, for example, Windows 2000 Cluster Server, Windows 2008 Server, Sun Cluster (base OS - Solaris).

Classification of operating systems - concept and types. Classification and features of the category "Classification of operating systems" 2017, 2018.

There are several schemes operating system classification... Below is a classification based on some characteristics from the user's point of view.

By the number of concurrent users:

  • Single-user OS allow only one person to work on the computer.
  • Multiuser OS support the simultaneous operation of several users on the EMV at different terminals.

By the number of processes simultaneously running under the control of the system:

  • Single-tasking OS support the execution of only one program at a time, that is, they allow you to run one program in the main mode.
  • Multitasking OS(multitasking) support the parallel execution of several programs that exist within the same computing system for a certain period of time, that is, they allow you to run simultaneously several programs that will run in parallel without interfering with each other.

In multitasking mode, there are several user tasks in the RAM, the processor's operating time is divided between programs that are in the RAM and ready for service by the processor. In parallel with the processor's work, information is exchanged with various external devices.

Modern operating systems support multitasking, creating the illusion of several programs running at the same time on a single processor. In fact, for a fixed period of time, the processor processes only one process, and the processor time is divided between programs, thereby organizing parallel work. This note does not apply to multiprocessor systems, which may actually be running multiple tasks at the same time.

The multitasking OS, solving the problems of resource allocation and competition, fully implements the multiprogramming (multitasking) mode. Multitasking, which embodies the idea of ​​time sharing, is called preemptive. Each program is allocated a quantum of processor time, after which control is transferred to another program. The first program is said to be supplanted. Preemptive mode is used by custom programs on most operating systems.

By the number of processors supported (uniprocessor, multiprocessor):

Multiprocessor OS support the mode of allocating resources of several processors for solving a particular task. In a multiprocessor mode of operation, two or more connected and approximately equal in characteristics processors jointly execute one or more processes (programs or sets of instructions). The purpose of this mode is to increase performance or computing power.
Multiprocessor operating systems are divided into symmetric and asymmetric. V symmetrical The OS runs the same core on each processor, and the task can be performed on any processor, that is, the processing is completely decentralized. In this case, all the memory is available to each of the processors.
V asymmetric OS processors are unequal. Usually there is a main processor (master) and slaves (slaves), the load and nature of which are determined by the main processor.

By the type of user access to the computer (with batch processing, time sharing, real time):

Batch processing OS: in them, from the programs to be executed, a package (set) of tasks is formed, entered into the computer and executed in order of priority, with the possible consideration of priority.

Timesharing OS provide a simultaneous dialog (interactive) mode of access to a computer for several users on different terminals, to whom in turn the resources of the machine are allocated, which is coordinated by the operating system in accordance with a given service discipline. Each program in the RAM and ready for execution is allocated a fixed time interval set in accordance with the user's priority (multiplexing interval) for execution. If the program is not completed to the end within this interval, its execution is forcibly interrupted, and the program is transferred to the end of the queue. The next program is retrieved from the head of the queue, which is executed during the corresponding multiplexing interval, then arrives at the end of the queue, and so on. in accordance with a cyclical algorithm.

Real time OS provide a certain guaranteed response time of the machine to the user's request with control of any events, processes or objects external to the computer. In this mode, the computer controls some external process, processing data and information directly from the control object.

By the bitness of the operating system code: eight-bit, sixteen-bit, thirty-two-bit, sixty-four-bit:

The bitness of the code Is the bitness of the hardware used (for example, using 32-bit registers for processors). It is understood that the bitness of the OS cannot exceed the bitness of the processor.

By interface type (command (text), object-oriented (usually graphical):

User interface- these are software and hardware means of interaction between the user and the program or computer. The user interface is command and object-oriented. .

Command interface involves the user entering commands from the keyboard when performing actions to manage computer resources. With this technology, the keyboard serves as the only way to enter information from a person to a computer, and the computer displays information to a person using a monitor. This combination (monitor + keyboard) became known as console.

Commands are typed on the command line. The command line is a prompt string. The command ends with the Enter key. After that, the transition to the beginning of the next line is carried out. It is from this position that the computer displays the results of its work on the monitor. Then the process is repeated.

Note

The command line contains the command to create (md) the Kat1 directory in the root directory of the C drive.

Object oriented interface Is the management of the resources of a computing system by performing operations on objects that represent files, directories (folders), drives, programs, documents, etc.

A kind of object-oriented interface is a graphical WIMP - interface(Window - window, Image - image, Menu - menu, Pointer - pointer). A characteristic feature of this type of interface is that the dialogue with the user is conducted not with the help of commands, but with the help of graphic images - menus, windows, and other elements. Although in this interface commands are given to the machine, but this is done "indirectly", through graphic images. This kind of interface is implemented on two levels of technologies: a simple graphical interface and a "pure" WIMP interface, an example Windows graphical WIMP interface.

In addition to the named main types of interface, one more can be distinguished - SILK- interface (Speech - speech, Image - image, Language - language, Knowlege - knowledge). This type of interface is the closest to the usual, human form of communication. Within the framework of this interface, there is a normal "conversation" between a person and a computer. At the same time, the computer finds commands for itself, analyzing human speech and finding key phrases in it. It also converts the result of executing commands into a human-readable form.

Typeresource use (network, not network): Network OS: Novell NetWare, Windows 2008 Server.

Network OS are designed to manage the resources of computers connected to a network for the purpose of sharing data, and provide powerful means of differentiating access to data in terms of ensuring their integrity and safety, as well as many service capabilities for using network resources.

By the features of construction methods: monolithic kernel or microkernel approach.

When describing an operating system, the features of its structural organization and the basic concepts underlying it are often indicated.

Ways to build the system kernel - monolithic core or microkernel approach... Most operating systems use a monolithic kernel, which is linked as a single program that runs in privileged mode and uses fast transitions from one procedure to another, not requiring switching from privileged mode to user mode and vice versa. An alternative is to build an OS based on a microkernel, which also operates in a privileged mode and performs only a minimum of hardware management functions, while the functions of a higher OS are performed by specialized OS components - servers running in user mode. With this design, the OS works more slowly, since transitions are often made between privileged mode and user mode, but the system turns out to be more flexible - its functions can be increased, modified or narrowed by adding, modifying or excluding user-mode servers. In addition, the servers are well protected from each other, just like any user processes.

An operating system (OS) is a set of software, the main task of which is to ensure the rational use of computer hardware in the most user-friendly way. OS is primarily a resource manager, it manages processors, memory, input-output devices and data.

The generalized structure of a computing system can be represented as a combination of hardware and software. Hardware: processor, memory, monitor, disk devices, etc. All software is usually divided into two parts: application and system. Application software usually includes a variety of user programs, games,

word processors, etc.

System software is a set of programs that facilitate the functioning and development of application programs. Thus, the operating system is a fundamental component of system software.

OS classification

There are several approaches to classifying operating systems. The following classification criteria can be noted:

- implementation of multitasking.

Operating systems can be divided into two classes based on the number of simultaneously executed tasks:

1 - multitasking (Unix, OS / 2, Windows), fully implements multiprogramming mode;

2 - single-tasking (e.g. MS-DOS).

- support for multiplayer mode.

By the number of concurrent users, the OS can be divided into:

1 - single-user (MS-DOS, Windows 3.x);

2 - multi-user (Windows NT, Unix), characterized by the presence of mechanisms to protect the personal data of each user.

- multiprocessing.

According to this criterion, operating systems are divided into:

1 - uniprocessor;

2 - multiprocessor, characterized by support for multiprocessing and more complex resource management algorithms (Linux, Solaris, Windows NT, and a number of others). Multiprocessor systems consist of two or more central processing units that execute instructions in parallel.

Multiprocessor operating systems are divided into:

1 - symmetric, in which the same core operates on each processor and the task can be performed on any processor, that is, the processing is completely decentralized;

2 - asymmetric, in which the processors are unequal, i.e. there is a main processor (master) and slaves (slaves), the load and nature of which are determined by the main processor.

- work in real time.

Specialized operating systems are designed for real-time operation. Real-time systems are operating systems characterized by the maximum permissible response time to an external event, during which the program that controls the object must be executed. The main requirement is that the system must process the incoming data faster than it can arrive, and from several sources at the same time. Real-time systems are used to control various technical objects or technological processes. Such severe restrictions affect the architecture of real-time systems, for example, they may lack virtual memory, the support of which leads to unpredictable delays in program execution.

Appointment

The main purpose of the OS is resource management, and the main resources it controls are the computer hardware:

CPU,

Input-output devices.

Functions

The OS implements many different functions, including:

Defines the so-called user interface,

· Provides sharing hardware resources between users,

Makes it possible to work with common data in the mode of collective use,

· Plans user access to shared resources,

· Provides effective performing input-output operations,

· Carries out information recovery and the computational process in case of errors.

Requirements

1. Reliability. The system must be at least as reliable as the hardware it runs on. In the event of an error in software or hardware, the system must detect the error and either try to correct the situation or try to minimize the damage.

2. Protection. The system must be protected from unauthorized access.

3. Efficiency. An OS is a complex set of software tools that uses a significant portion of the hardware resources for its own use. Therefore, the system itself should be as economical as possible so that most of the resources remain at the disposal of users. In addition, the system must manage user resources in such a way as to minimize downtime, or, in other words, maximize resource utilization.

4. Predictability. The user prefers that the service does not change too much over time. In particular, when starting the program, the user should have an idea, based on previous experience, of when to expect the results to be returned.

5. Convenience. The OS should be flexible and user-friendly enough.

Systems can be divided into several classes.

DOS (Disk Operating Systems). These are systems that take on only the first four functions. As a rule, this is just some kind of resident set of subroutines, nothing more. It loads the user program into memory and transfers control to it, after which the program does whatever it wants with the system. It is considered desirable that after the end of the program, the machine remains in such a state that the DOS can continue to work. (in principle, DOS can in no way prevent the program from turning the system into an inoperative state).

The disk operating system MS DOS for the IBM PC is an example of systems of this class. She, however, is able to load several programs, but does not provide the means for the execution of these programs. Moreover, in terms of documented functions, these programs cannot work (there are, however, so-called undocumented backdoors).

The existence of systems of this class is due to their simplicity and the fact that they consume few resources. Another reason why such systems can be used even on fairly powerful machines is the requirement for software compatibility with early models of the same family of computers.

OS. This class includes systems that perform all of the above functions. The division into OS and DOS apparently comes from the IBM DOS / 360 and OS / 360 systems for large computers of this company, the clones of which are known in our country under the name ES 10XX computers. (By the way, IBM also had TOS / 360, Tape Operating System).

Hereinafter, by OS, we mean "general-purpose" systems, that is, designed for the interactive work of one or several users in a time-sharing mode, with not very strict requirements for the response time of the system to external events. Typically, such systems place great emphasis on protecting the system itself, software, and user data from erroneous and malicious programs and users. Typically, these systems use protection and memory virtualization built into the processor architecture. This class includes such widespread systems as VAX / VMS, systems of the Unix family and OS / 2, although the latter does not provide for the simultaneous operation of several users and protect users from each other.

Such systems are often a general-purpose OS subsystem: MS DOS and MS Windows emulators for UNIX and OS / 2, DOS window for MS Windows, RT-11 emulator for VAX / VMS.

Real time systems. These are systems designed to facilitate the development of so-called real-time applications. These are programs that control non-computer hardware, often with very tight time constraints. An example of such an application can be a cruise missile on-board computer program, a particle accelerator control system, or industrial equipment. Such systems must support multiprocessing, guaranteed response time to an external event, easy access to the timer and external devices. For other reasons, such systems may belong to both the DOS class (RT-11) and the OS (OS-9, QNX). Often such systems (for example, VxWorks) are designed to work in conjunction with a control host machine running a "normal" operating system.

Cross-loaders. These systems are completely host-oriented. They are most often used to write and debug code that is later flashed into ROM. These are programming systems for microcontrollers of the Intel 8048 family and the like, TDS (Transputer Development System) from Inmos, and many others. Such systems, as a rule, include a set of compilers and assemblers running on the host system (less often - loaded from the host machine to the target system), libraries that perform most of the OS functions when the program is running (but not loading this program!) , and debugging tools.

Systems of intermediate types. There are systems that at first glance cannot be attributed to one of the above classes. Such, for example, is the RT-11 system, which, in essence, is a DOS, but allows the simultaneous execution of several programs with fairly rich means of interaction and synchronization. Another example of a staging system is MS Windows 3.x and Windows 95, which, as an OS, use processor hardware to protect and virtualize memory and can even provide some semblance of multitasking, but do not protect themselves and programs from errors of other programs.