Operating System Types: Batch, Real-Time, and Multiprocessing
Batch Processing Systems
The first operating systems were batch systems. Initially, punch card systems only allowed sequential access to information, so tasks were executed line by line, using only one application package at a time. In a batch OS, instructions are delivered, implemented, and then the result is delivered.
Monoprogramming means that the system can only perform one task at a time. When a program enters the process, it takes over the CPU and I/O until it finishes.
There are several variants:
- Monoprogrammable linearly
- Monoprogrammable with priorities
- Monoprogrammable with time-out
Multiprogramming allows the OS to handle other tasks while the CPU is idle (e.g., during printing). This ensures the CPU is always doing something. Advanced memory management is needed to order the work to be executed.
Real-Time Systems
A real-time system is used when the execution times of operations or data flows are very rigid. It is usually used as a control system.
They are classified into:
- Real-time OS Hardware: Everything is stored in nonvolatile memory such as EPROM. It does not use virtual memory or time-sharing (as this cannot be implemented without volatile memory).
- Real-time OS Software: They are used for less critical tasks and can handle task priority techniques. Their uses are more restricted but are generally used for multimedia and monitoring of industrial control processes.
Multithreaded Systems
Multithreaded systems contain more than one CPU. They generally have greater computational power and greater reliability. A task is assigned to each CPU, usually with one processor acting as the master, controlling which processor performs which instruction (defining a master/slave relationship).
There are two schemes:
- Strongly coupled: The processors share memory and clock. Communication is done through shared memory.
- Loosely coupled (distributed): They do not share memory or clock. The processors are connected by high-speed lines or telephone lines, including different types of CPUs (up to Mini PC computers).
Not all processors are or may be the same type; small processors can be used apart from the main CPU (modems, printers, etc.).
Symmetric and Asymmetric Systems
Symmetric Multiprocessor Systems: PTP or local networks where each computer has a copy of the OS and has the same importance in the network.
Asymmetric Distributed Systems: Each processor has a different task (defines a client/server relationship). The processors are connected by high-speed lines or telephone lines. These are computer networks where processors vary in size and function.
Distributed Systems
Some characteristics of distributed systems are:
- Sharing resources: You can use the resources of another installation (printers).
- Acceleration Calculations: You can split a task into smaller transactions and forward them to multiple installations. If an installation is overloaded, work is passed to other facilities (cargo compartment).
- Reliability: If a facility fails, the others can substitute.
- Communication: You can easily share information between facilities.
System Calls
System calls are an interface between a program and the OS. These are generally implemented by machine language instructions.
They are grouped into three categories: Process Control and jobs, devices and file handling, and maintenance of information.
Concurrent Processing
The CPU performs concurrent processing on a high number of programs. The implementation of these programs is done through processes.
A process is the work unit of a system. All processes can be performed concurrently. That is, the CPU can work with multiple processes at once, alternating rapidly between them.