Introduction
An operating system (OS) is a system software that is responsible for the working of hardware. While the hardware provides 'raw computer power', the OS is responsible for making that power of any use for the users. The OS is the main component of any computer system and therefore must be loaded and activated before we can use any other softwares.
An operating system (OS) is the program that manages all the computer resources (both hardware and software). It provides an environment for other programs to work. It also acts as an intermediary between the user and the hardware. The purpose of an operating system is to provide a platform on which a user can execute programs in a convenient and efficient manner. In short, the operating system is the master control program of a computer. Some examples of Operating systems are MS-DOS, Windows 2000, Windows XP, Windows 7, Linux, UNIX, Android, iOS, etc.
Functions of an Operating System
The following are some of the important functions of an operating system:
1. Memory Management: Memory management refers to management of primary memory like RAM and secondary memory like hard disk. An Operating System does the following activities for memory management-
- Keeps tracks of primary memory, i.e., what part of it are in use by whom and what part is not in use.
- In multiprogramming, the OS decides which process will get memory when and how much.
- Allocates the memory when a process requests it to do so.
- De-allocates the memory when a process no longer needs it or has been terminated.
- Allocation Storage for programs and data in the secondary storage.
2. Process Management: OS manages the processes running in a computer system. A process is basically a program that is being executed by a user on a computer system. For example, a spreadsheet application program such as Microsoft Excel runs as a process in a computer system.
- An Operating System does the following activities for processor management :
- Keeps tracks of processor and status of processes. The program responsible for this task is known as traffic controller.
- Allocates the processor (CPU) to a process.
- De-allocates processor when a process is no longer required.
3. Device Management: This function of operating system deals with the management of peripheral devices attached to it, such as keyboard, printer and mouse. An Operating System manages device communication via their respective drivers. It does the following activities for device management:
- Keeps tracks of all devices. Program responsible for this task is known as the I/O controller.
- Decides which process gets the device when and for how much time.
- Allocates the device in the efficient way.
- De-allocates devices.
Types of Operating Systems
Some of the widely used operating systems are as follows:
Advantages of Batch Operating System
- Multiple users can share the batch systems
- The idle time for batch system is very less
- It is easy to manage large work repeatedly in batch systems
Disadvantages of Batch Operating System
- The computer operators should be well known with batch systems
- Batch systems are hard to debug
- It is sometime costly
- The other jobs will have to wait for an unknown time if any job fails
Advantages of Time-Sharing OS
- Each task gets an equal opportunity
- Less chances of duplication of software
- CPU idle time can be reduced
Disadvantages of Time-Sharing OS
- Reliability problem
- One must have to take care of security and integrity of user programs and data
- Data communication problem
Advantages of Distributed Operating System
- Failure of one will not affect the other network communication, as all systems are independent from each other
- Since resources are being shared, computation is highly fast and durable
- Load on host computer reduces
- These systems are easily scalable as many systems can be easily added to the network
- Delay in data processing reduces
Disadvantages of Distributed Operating System
- Failure of the main network will stop the entire communication
- To establish distributed systems the language used is not well defined yet
- These types of systems are not readily available as they are very expensive. Not only that the underlying software is highly complex and not understood well yet
Advantages of Network Operating System
- Highly stable centralized servers
- Security concerns are handled through servers
- New technologies and hardware up-gradation are easily integrated to the system
- Server access are possible remotely from different locations and types of systems
Disadvantages of Network Operating System
- Servers are costly
- User has to depend on central location for most operations
- Maintenance and updates are required regularly
- Hard Real-Time Systems: These OSs are meant for the applications where time constraints are very strict and even the shortest possible delay is not acceptable. These systems are built for saving life like automatic parachutes or air bags which are required to be readily available in case of any accident. Virtual memory is almost never found in these s systems.
- Soft Real-Time Systems: These OSs are for applications where for time-constraint is less strict.
Advantages of RTOS
- Maximum Consumption: Maximum utilization of devices and system, thus more output from all the resources.
- Task Shifting: Time assigned for shifting tasks in these systems are very less. For example in older systems it takes about 10 micro seconds in shifting one task to another and in latest systems it takes 3 micro seconds.
- Focus on Application: Focus on running applications and less importance to applications which are in queue.
- Real time operating system in embedded system: Since size of programs is small, RTOS can also be used in embedded systems like in transport and others.
- Error Free: These types of systems are error free.
- Memory Allocation: Memory allocation is best managed in these type of systems.
Disadvantages of RTOS
- Limited Tasks: Very few tasks run at the same time and their concentration is very less on few applications to avoid errors.
- Use heavy system resources: Sometimes the system resources are not so good and they are expensive as well.
- Complex Algorithms: The algorithms are very complex and difficult for the designer to write on.
- Device driver and interrupt signals: It needs specific device drivers and interrupt signals to response earliest to interrupts.
- Thread Priority : It is not good to set thread priority as these systems are very less prone to switching tasks.