Table of Contents
INTRODUCTION
An operating system is an essential component of a computer system. An operating system is a system program which plays a role of interface between the user and the computer. It allows the user to interact with the system. The operating system must reside in the main memory when the computer is in operation.
A user can input a command for some I/O operation or can request the operating system to load any other system program such as compiler etc. in the main memory. The operating system provides a shell to the computer user so that he can perform some system operations like copying of the information from one storage device to other, deleting unwanted information from the storage, listing of the information contents in the storage etc. This shell in this way behaves as an intermediary between computer hardware and the user. The operating system also performs many other useful operations in the computer system. These operations can functionally be classified as follows:
- (a) Resource Management,
- (b) Interrupt Processing,
- (c) Job Scheduling,
- (d) File processing,
- (e) Security and protection.
Some or all functions are available on various kinds of operating systems. Depending upon the functions available, the capability and power of operating system is decided.
TYPES OF OPERATING SYSTEMS | DIFFERENT TYPES OF OPERATING SYSTEMS
The nature of system program ‘operating system’ is such that it has got great responsibility in a computer system. It has to render services to each resource connected to the computer machine. The operating system can process its workload in a serial or concurrent mode. In a serial mode, the operating system is fully devoted to a single task (a program or a routine) till it gets completed. In a concurrent mode, the operating system can dynamically change over from one task to other and the tasks will be completed in different stages of execution. In general, the operating systems can be classified in following main streams:
- Batch processing Operating System,
- Multiprogramming Operating System,
- Time-sharing Operating System,
- Multiprocessing Operating System,
- Real Time Operating System,
- Network Operating System.
Batch Processing Operating Systems
In batch processing mode, a batch of jobs (programs) is set at the input side of the computer, the batch monitor (a routine of operating system) takes one job at a time, processes it completely and supplies the result to the output side of the computer. Figure below shows a typical scheme of batch processing.
There are two important issues related to the batch processing operating system. One is turn-around time and other is job scheduling. For effective utilization of computer resources, it is desirable to minimize the turn-around time. The turn-around time is the span of time from the instant of job-start to the instant job-finish. This time span includes the formation of batch, execution of all jobs in the batch, printing of results on the printer and releasing the output to the user.
Job scheduling is the task of assigning the turn and selecting the job for execution. In batch processing mode, there is no means by which batch monitor can assign the turn, but it can only take the jobs in the order in which they have been put at the input of the computer system. This becomes first-come first-served basis of job scheduling. A prescheduling (also known as phasing) is possible during the batch formation. The order can be decided manually by the nature of job depending upon the relative importance, computing time requirements and any other factor like usage environment and computer house revenues.
The batch operating system is, in fact, an extension of pure serial processing where only a single job is entertained from start-to-end point. In pure serial mode, the most of the resources of the computer system remain idle, thus leading to small throughput.
For increasing the throughput and resource utilization, the input and output operations can be over-lapped. Dedicated processors, peripheral controllers and direct memory access circuitry can be added to the computer hardware for further increase in the performance of batch processing. I/O buffering in the main memory is another way of improving the system performance. In I/O buffering, the input job can be read and put in the buffer memory. When the job is scheduled for execution, it is taken from the input buffer memory which is faster than input device. Similarly, the results of the jobs can be put in the output buffer memory, can be sent to the output device while the next schedule job undergoes the execution.
Multiprogramming Operating Systems
In multiprogramming operating system, the computer system is made responsible to handle more than one job at one time. The idea of multiprogramming stems from the fact that the CPU is a faster resource than other resources of the computer system. In order to understand the principle of multiprogramming, let us consider two jobs (programs) P1 and P2 with following characteristics:
P1 : 60% compute bound, 40% I/O bound
P2 : 25% compute bound, 75% I/O bound
Suppose that two jobs are handled in pure serial way i.e. P2 starts getting service after P1 has completely been executed. Such a serial situation would appear as in Figure(a) below. The shaded area indicates the compute bound activity i.e. CPU is engaged and unshaded area indicates I/O activity during the period.
It is clear that the CPU remains idle for a significant amount of time (shown by unshaded area). For instance, such a situation occurs when the printer is printing the data filled in the printer buffer by CPU. The idle time of CPU can be used by performing concurrent execution of the two jobs. Figure(b) above depicts one possibility. During the period when I/0 activity is going on for job P1, CPU can work on job P2. It is the responsibility of the operating system to overlap two job activities in such a manner that the CPU idling is minimized. An ideal situation would be that CPU is never idle. This can be visualized when both jobs are identical with equal compute bound and I/O bound behaviour. The CPU can switch alternately to two jobs without any idle period.
In a realistic multiprogramming systems, a large number of jobs can run in the above described manner where the services of CPU can switch from one process to another depending upon the requirements. The multiprogramming offers advantage of serving a multiple number of programs concurrently. Concurrent execution of programs has a significant potential for enhancing the system throughput and effective resource utilization over the batch mode.
A related yet different concept in multiprogramming operating system is multiprocess mode. The difference between multiprogramming and multiprocess lies in the fact that the multiprogramming system, in addition to supporting multiple concurrent processes (multiprocess mode), permits the data and instruction from different programs to reside in the main memory simultaneously.
Another related concept with multiprogramming is multi-access or multi-user mode in which simultaneous access of computer resource is possible from more than one terminal. In many computer systems, the multi-user facility is available with multiprogramming, but it is not always imperative. A multi-user mode does not always imply the multiprogramming.
In general, a multiprogramming operating system handles a multitude of simultaneously active programs that need the system resources of all types such as CPU, main memory, I/O devices and secondary storage. The state of all active programs and resources is governed by the system.
Time Sharing Operating Systems
Time shared mode of operating systems is motivated by an objective to provide a quick response to the users. A large number of users are served sequentially in a round-robin mode. Each user feels that the computer system is available to him or her only. An appropriate number of interactive terminals are connected to the computer system and each user occupying a terminal inserts his commands to the system.
An underlying principle of time shared operating systems is time-slicing. A fixed period of time (T) is sliced amongst n number of users. Each user gets a time slice of T/n unit. In a simple scheme, each user gets a turn after T(n-1)/n period of time when there is a rotating schedule. Irrespective of computation time required by each job (a user program), all the jobs get equal service from the operating system.
The time shared mode of operating system can also be enhanced to include those programs which are not being active from the terminals. Thus, a number of interactive terminals along with a number of programs in the background can be serviced by time-shared operating system.
The merit of time-shared operating system is reflected in terms of the fast response to each user. In providing the fast response to the user, there is often cost to be paid in terms of resource utilization. Multiprogramming activity can be combined with the time shared operating system to improve the resource utilization. Accordingly, some changes have to be made in the basic mode in working of the time-shared operating system. Mainly priorities of the job execution are changed from pure round-robin basis.
Multiprocessor Operating Systems
The operating systems, discussed above, are implemented for computer system with one CPU (or processor). New computer architecture’s employ more than one CPU and are called multiprocessor systems. Therefore, it is required to manage a group of CPUs through software in the multiprocessor systems. In addition to other resources, the processors also become a resource to be managed. There is a fundamental difference in the design of operating systems for uniprocessor system and multiprocessor system which is based on architectural features of the multiprocessor system. A uniprocessor system is centralized to monitor the whole state of the system and all the resources are available at the disposal of operating system. In a multiprocessor system, each processor has got a restricted environment and it has a partial knowledge of system resources.
A related concept with multiprocessor operating systems is distributed operating system. The distributed operating systems run parallel processes with coherent structure of the multiprocessor systems. There is a need of framework for establishing proper communication and cooperation amongst concurrent processes.
Real Time Operating Systems
There are many applications where the events and processes, which are external to the computer, are to be actuated instantly. The applications like autonomous industrial control, satellite control, robotics, boiler temperature control and plant process control involve the activities where the response should be available at the next instant of the excitation. Such applications are called real time applications. The operating systems specially created for the real time applications are known as real time operating systems. In real time operating systems, the primary objective becomes to provide the quick actions to the external events within the scheduled deadlines, rather than the user convenience and resource utilization. The underlying concept in the real time operating systems is the process of responding to several interrupts occurring frequently from the events. Since there will be a multitude of events to be controlled, a multi-process mode of operating system will be needed. Depending upon the relative priority of each of the events, a priority based scheduling is performed. This is an important aspect of real time systems.
Network Operating Systems
Now-a-days, there is a wide variety of computer networks available for data communication, distributed databases and office automation. There is often need of controlling and managing remotely placed computer resources. The operating systems needed for computer network applications are called network operating systems.
OPERATING SYSTEM FUNCTIONS | FUNCTIONS OF OPERATING SYSTEM
The functions of operating system vary depending upon its type, the resources available on the machine and other policies related to the design of overall computer system. We shall discuss here the important functions which are generally found in almost all operating systems. Our discussion will be more taxonomic rather than design oriented.
The operating system functions can broadly be divided into two categories: Click here to read about Functions of operating system in details.
- (a) Machine-dependent functions,
- (b) Machine-independent functions.
Machine-Dependent Functions
In machine-dependent category, our discussion is confined to following:
- (a) Process Management,
- (b) I/O Management,
- (c) Memory Management, and
- (d) Processor Management.
Machine-independent functions
The Machine-independent functions can broadly be classified into following:
- (a) File management
- (b) Job scheduling
- (c) Protection and security
Click here to read about Functions of operating system in details.
Hope you liked this article on “What is an Operating System(OS) ? Types of OS, Function & features”. You are invited for any kind of suggestion or feedback in the comment box. You can also mail us your suggestions or feedback directly at theinstrumentguru@gmail.com. To read more such articles related to Technology, Electronics and Instrumentation. You can also download our Android App. Click here to download the mobile app.
Read More
- Digital Integrated Circuit | What is an ICs?
- Resistor transistor logic (RTL)
- Diode Transistor Logic (DTL)
- Direct coupled Transistor Logic (DCTL)
- What is computer programming
- Calibration Standards | Their Importance and Types
- Pressure Control Valve | Applications of pressure control valves
- What are functions of operating system