A Guide to Understanding Different Types of Operating Systems
What is an Operating System?
An OS is just an interface between users and hardware, but they have expected responsibilities to provide a convenient environment where tasks can be executed.
The Responsibilities
Operating systems are expected to be secure, and handle Process Management, Process Synchronization, Memory Management, CPU Scheduling, and File Management.
Process Management
A program being executed is a process. Process management is how the tasks involved in this execution are handled, including creating, starting, pausing, resuming, and terminating processes. The allocation of resources like CPU time and memory fall under this responsibility.
Process Synchronization
Techniques used to coordinate the execution of processes and how the access shared resources, like avoiding race conditions, deadlocks and data inconsistency that can come from too many hands in the cookie jar.
Memory Management
How memory is allocated for processes, techniques like virtual memory (using hard disk instead of RAM) falls under this responsibility. A part of Process Management.
CPU Scheduling
The allocation of CPU time using techniques like Round Robin, First Come First Serve. A part of Process Management.
File Management
How the OS handles files and directories, maintains and organizes files, file operations and data integrity.
Types of Operating Systems
Now that we have ideas of what to look for in an operating system, we can compare the major types of operating systems and their popular distributions.
Multiprogramming Operating System
Goal is to manage multiple processes concurrently, in contrast to other OS’s that prioritize single tasking or real-time processing, like Batch OS’s.
Ex: Linux (Debian, SUSE, RHEL), Unix (FreeBSD, OpenBSD, NetBSD)
Batch Operating System
Used in industries where massive volume of data needs to be processed where efficiency is paramount. This is like those giant mainframe jobs where they feed it a single task.
Multiprocessing Operating System
This is the approach to scalability and scheduling where they just add more processors. There are many CPU’s in this operating system which means the same system can achieve impressive processing power and throughput. Has obvious hardware requirements.
Ex: Windows Server (On server-grade hardware)
Network Operating System
A networking solution in the 90’s and early 2000’s. The idea is to manage and control the resources of a network, like file sharing, printers, user authentication but has fallen off in popularity with modern networking practices.
Real-Time Operating System
RTOS’s work to maximize predictability and responsiveness where your normal multi-programming system would in contrast maximize throughput and multitasking processes. These are used often in embedded systems and have strict priority queues where high priority tasks get immediate access to system resources like CPU and memory. The idea is that critical tasks will execute as fast as possible.
Ex: VxWorks
Distributed Operating System
Any operating system where resources and workload is distributed among many nodes. This is like cloud computing with resource sharing and load balancing but works to achieve the responsibilities of an operating system.
Ex: Android
I am pleased that we revisited the responsibilities of operating systems and their various categories! I anticipate exploring practical aspects for developers soon. I hope you will find it both informative and valuable!