A Guide to Understanding Different Types of Operating Systems

Andrew-Shepard
3 min readJul 27, 2023

--

Operating Systems on Devops Roadmap from Roadmap.sh

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!

--

--

Andrew-Shepard
Andrew-Shepard

Written by Andrew-Shepard

Andrew Shepard, a Software Engineer with hands-on experience in SaaS and pharmaceutical tech, focuses on Python, REST, Docker, and Kubernetes.

No responses yet