Types of Operating System
1. 5.1 Batch operating system
- The users of a batch operating system do not interact with the computer directly.
- Each user prepares his job on an off-line device like punch cards and submits it to the computer operator.
- To speed up processing, jobs with similar needs are batched together and run as a group.
- The programmers leave their programs with the operator and the operator then sorts the programs with similar requirements into batches.
The problems with Batch Systems are as follows −
- Lack of interaction between the user and the job.
- CPU is often idle, because the speed of the mechanical I/O devices is slower than the CPU.
- Difficult to provide the desired priority.
- As we know that in the Batch Processing System there are multiple jobs Execute by the System.
- The System first prepare a batch and after that he will Execute all the jobs those are Stored into the Batch.
- But the Main Problem is that if a process or job requires an Input and Output Operation, then it is not possible and second there will be the wastage of the time when we are preparing the batch and the CPU will remain idle at that Time.
- But With the help of Multi programming we can Execute Multiple Programs on the System at a Time and in the Multi-programming the CPU will never get idle, because with the help of Multi-Programming, we can Execute Many Programs on the System and When we are Working with the Program then we can also Submit the Second or Another Program for Running and the CPU will then Execute the Second Program after the completion of the First Program.
- And in this we can also specify our Input means a user can also interact with the System.
- The Multi-programming Operating Systems never use any cards because the Process is entered on the Spot by the user.
- But the Operating System also uses the Process of Allocation and De-allocation of the Memory Means he will provide the Memory Space to all the Running and all the Waiting Processes.
- There must be the Proper Management of all the Running Jobs.
1.5.3 Multitasking is a logical extension of multi programming system that supports multiple programs to run concurrently.
- In multitasking more than one task are executed at the same time.
- In this technique the multiple tasks, also known as processes, share common processing resources such as a CPU.
- In the case of a computer with single CPU, only one job can be processed at a time.
- Multitasking solves the problem by scheduling and deciding which task should be the running task and when a waiting task should get turn.
- This attempt is done with the help of interrupt (a signal) which is attended by CPU by keeping the current activity aside, saves its present status in buffer and returns to another important job whatever task it was doing earlier.
- The act of re-assigning a CPU from one task to another one is known as context switch.
- The multitasking systems were developed to provide interactive use of a computer system.
- This system uses the CPU scheduling and multiprogramming to provide each user with a small portion of a time-shared computer.
- Thus multitasking makes the best possible use of available hardware at any given instance of time and improves the overall efficiency of computer system.
- A multi-tasking operating system is characterized by its capability to support the concurrent execution of more than one task.
- This is achieved by simultaneous management of several processes in the main memory at the same time and by availing I/O resources amongst the active tasks.
- The multi-tasking OS monitors the state of all the tasks and of the system resources.
- Multitasking provides the fundamental mechanism for an application to control and react to multiple, discrete real-world events and is therefore essential for many real-time applications.
- A multitasking environment allows applications to be constructed as a set of independent tasks, each with a separate thread of execution and its own set of system resources.
- The inter-task communication facilities allow these tasks to synchronize and coordinate their activity.
- Multitasking creates the appearance of many threads of execution running concurrently when, in fact, the kernel interleaves their execution on the basis of a scheduling algorithm.
- This also leads to efficient utilization of the CPU time and is essential for many embedded applications where processors are limited in computing speed due to cost, power, silicon area and other constraints.
- In a multi-tasking operating system, it is assumed that the various tasks are to cooperate to serve the requirements of the overall system Co-operation will require that the tasks communicate with each other and share common data in an orderly and disciplined manner, without creating the contention and deadlocks.
1.5.4 Multiprocessor Operating System refers to the use of two or more central processing units (CPU) within a single computer system.
- These multiple CPUs are in a close communication sharing the computer bus, memory and other peripheral devices. These systems are referred as tightly coupled systems.
- These types of systems are used when very high speed is required to process a large volume of data. These systems are generally used in environment like satellite control, weather forecasting etc.
- The basic organization of multiprocessing system is shown in fig.
- Multiprocessing system is based on the symmetric multiprocessing model, in which each processor runs an identical copy of operating system and these copies communicate with each other.
- In this system processor is assigned a specific task.
- A master processor controls the system.
- This scheme defines a master-slave relationship.
- These systems can save money in compare to single processor systems because the processors can share peripherals, power supplies and other devices.
- The main advantage of multiprocessor system is to get more work done in a shorter period of time.
- Moreover, multiprocessor systems prove more reliable in the situations of failure of one processor.
- In this situation, the system with multiprocessor will not halt the system; it will only slow it down.
- In order to employ multiprocessing operating system effectively, the computer system must have the followings:
Support: A motherboard capable of handling multiple processors. This
means additional sockets or slots for the extra chips and a chipset capable of
handling the multiprocessing arrangement.
- Processor Support: processors those
are capable of being used in a multiprocessing system.
- The whole task of multiprocessing is managed by
the operating system, which allocates different tasks to be performed by the
various processors in the system.
- Applications designed for the use in
multiprocessing are said to be threaded, which means that they are broken into
smaller routines that can be run independently.
- This allows the operating system to let these
threads run on more than one processor simultaneously, which is multiprocessing
that results in improved performance.
- Multiprocessor system supports the processes to
run in parallel.
- Parallel processing is the ability of the CPU to
simultaneously process incoming jobs.
- This becomes most important in computer system,
as the CPU divides and conquers the jobs.
- Generally the parallel processing is used in the
fields like artificial intelligence and expert system, image processing,
weather forecasting etc.
- In a multiprocessor system, the dynamically
sharing of resources among the various processors may cause therefore, a
- There are three main sources of contention that
can be found in a multiprocessor operating system:
- Locking system: In
order to provide safe access to the resources shared among multiple processors,
they need to be protected by locking scheme.
- The purpose of a locking is to serialize accesses
to the protected resource by multiple processors.
- Undisciplined use of locking can severely degrade
the performance of system.
- This form of contention can be reduced by using
locking scheme, avoiding long critical sections, replacing locks with lock-free
algorithms, or, whenever possible, avoiding sharing altogether.
- Shared data: The
continuous accesses to the shared data items by multiple processors (with one
or more of them with data write) are serialized by the cache
- Even in a moderate-scale system, serialization
delays can have significant impact on the system performance.
- In addition, bursts of cache coherence traffic
saturate the memory bus or the interconnection network, which also slows down
the entire system.
- This form of contention can be eliminated by
either avoiding sharing or, when this is not possible, by using replication
techniques to reduce the rate of write accesses to the shared data.
- False sharing: This
form of contention arises when unrelated data items used by different
processors are located next to each other in the memory and, therefore, share a
single cache line: The effect of false sharing is the same as that of regular
sharing bouncing of the cache line among several processors.
- Fortunately, once it is identified, false sharing
can be easily eliminated by setting the memory layout of non-shared data.
- Apart from eliminating bottlenecks in the system,
a multiprocessor operating system developer should provide support for
efficiently running user applications on the multiprocessor.
- Some of the aspects of such support include
mechanisms for task placement and migration across processors, physical memory
placement insuring most of the memory pages used by an application is located
in the local memory, and scalable multiprocessor synchronization primitives.
1.5.5 Real Time operating System
real-time system is defined as a data processing system in which the time
interval required to process and respond to inputs is so small that it controls
the environment. The time taken by the system to respond to an input and
display of required updated information is termed as the response time. So in this method, the
response time is very less as compared to online processing.
systems are used when there are rigid time requirements on the operation of a
processor or the flow of data and real-time systems can be used as a control
device in a dedicated application. A real-time operating system must have
well-defined, fixed time constraints, otherwise the system will fail. For
example, scientific experiments, medical imaging systems, industrial control
systems, weapon systems, robots, air traffic control systems, etc.
are two types of real-time operating systems.
Hard real-time systems
real-time systems guarantee that critical tasks complete on time.
hard real-time systems, secondary storage is limited or missing and the data is
stored in ROM.
these systems, virtual memory is almost never found.
Soft real-time systems
real-time systems are less restrictive.
critical real-time task gets priority over other tasks and retains the priority
until it completes.
real-time systems have limited utility than hard real-time systems.
example, multimedia, virtual reality, Advanced Scientific Projects likes
undersea exploration and planetary rovers, etc.
- MODERN OPERATING SYSTEMS by Andrew S. Tanenbaum, Second Edition
- The Operating System Concepts by Silberschatz, Galvin, Gagne, 8th Edition