The last time we looked at operating systems was in Chapter 36 and we gained a new found appreciation of how important its role is. I imagine that the operating system that came to mind back then was the one we interact with when using our PC. Although at this stage you probably already went through Chapter 39, so you are also aware that the PC is not the only type of computer system. Computers can take any shape or form and so it is only logical that for different computers we need different operating systems.
Glossary
Single User | A computer system that has an OS which can service only one user e.g., Windows 11 which is a popular OS for a general purpose computer. |
Multithreading | An OS that is capable of maximising CPU performance through the management of multiple process threads to simulate parallelism. |
Multiprogramming | An OS that can handle multiple programs being active on the computer simultaneously. |
Multitasking | When one hardware resource can be used to manage multiple processes using scheduling mechanisms. |
Batch Processing
Some people say that batch was the first operating system to be created. Personally I am not quite sure it is an OS but one thing is fact — it was the first way a human could feed instructions to a machine. The video above explains what batch processing is perfectly, but I am going to give it a go here as well.
Batch Processing is really and truly a way of making a very large number of computations sequentially without any interruption. Back in the time of the earliest computers end users would not really interact with the computer directly. Users would punch cards and feed it into a device and later on the signals are interpreted by the computer. The punch cards would define simple jobs that can run in the background without any user interaction. Let's mention a few examples of what these jobs could have been so that you can get the idea:
A job that works out employee salaries of a very large company.
A job that processes daily transactions and writing them in a master file.
A job that creates invoices so that a telephone company can bill its subscribers.
Obviously we do not punch cards anymore but just because an idea is old it does not mean we ditch it. Batch Processing is still very useful today when building software. There are times when we need to run high-volume and repetitive data jobs. A simple and efficient batch method allows us to process data when computing resources are available with little or no user interaction, so they can be run in the background. Some jobs of this nature are usually scheduled to run during hours of low activity like during the night.
Real-time Operating System
A real-time operating system (RTOS) are usedin scenarios whereby the computer is recording signals from the outside world and must process them and provide feedback within a very short time frame. Such an operating system are found in fully automated control systems with very little human intervention. This may be sounding familiar because we had touched on similar systems when talking about special purpose computers in Chapter 39.
Hereunder is a list of common characteristics in an RTOS. Let's see if they are consistent with special purpose computers.
Able to support application programs which are non-sequential in nature 👍.
Able to handle events occurring concurrently 👍.
Must process and provide feedback within a guaranteed specified time interval 👍.
There is hardware redundancy — 🤔 very sophisticated computers such as ones for traffic control definitely would need hardware redundancy to cope with so many signals so... 👍.
Self Park Car Scenario
Here is an example of a graphical RTOS which is embedded in the Nissan Leaf. The driver can command the computer to park the car by pushing a button. The time frame between the button push and the desired outcome is impressively very short. When the driver pushes the button the computer instantly identifies the parking spot and calculates the minimum manuveres necessary to park the car without hitting any obstacles probably through the use of numerous sensors all around the car that are constantly measuring the distances between itself and other vehicles in the surroundings. What an impressive operating system!
Many impressive automated systems must mean different types of RTOS but we mainly need to focus on two types. Below are some key points to remember about each type.
Hard RTOS
This is also called critical RTOS because as soon as a command is given there is a very limited time for feedback. The time interval between start of operation and end is guaranteed. In the unlikely event a system cannot give valid feedback within the time frame then it is automatically a failure and the entire operation is rolled back.
Examples of systems that would require some form of Hard RTOS:
Railway Signalling System
Air Traffic Control System
Nuclear Reactor Control System
Anti-missile System
Soft RTOS
This is also called non-critical RTOS because the time interval between start of operation and end of it is not guaranteed. Examples of systems that would requires some form of RTOS:
Artificial Cardiac Pacemaker
Arcade/Video Game
Telecoms and Networks
The park assist navigation system is a soft RTOS since there is no real predefined time interval between the park command and the desired result. If the car takes a little bit longer than usual to park itself, the system is not destabilised and it does not put the user in danger.
MultiTasking (Time-Sharing) Operating System
In a multitasking OS several applications may be simultaneously loaded and used in the memory. While the processor handles only one application at a particular time it is capable of switching between the applications effectively to apparently simultaneously execute each application. Time-sharing systems, also called on-line, run programs that are interactive and are used by a single user. This type of OS is intended for general purpose computers like personal computers, smartphones, tablets and we should probably include virtual reality headsets. I think it is useful to point out that the early personal computers e.g. Microsoft Windows 3.0 had this type of OS but is still very much alive today in the form of: Android, iPadOS, iOS and BlackBerry OS.
Multitasking vs Multiprocessing
Watch this video on YouTube.
Network Operating System (NOS)
A network operating system provides services for computers connected to a network. An NOS manages concurrent requests from clients and provides the security necessary in a multiuser environment. You will definitely see an NOS in office environments (and schools) so that the users are able to share files securely, manage shared applications, grant appropriate permissions and get access to hardware on a private network.
In institutions like banks or government entities you will most likely find an NOS which is termed as client-server — one machine is the server that has an NOS, like Windows Server 2008, installed and is used to manage client computers on a private network.
In smaller businesses you can have a peer-to-peer (P2P) network whereby each computer on a private network has an NOS, like Windows XP, installed.
More examples of NOS include: Windows Server 2020, Mac OS X, Linux, Oracle Solaris, FreeBSD (PlayStation's Orbis OS is based on FreeBSD) and now Windows 10.
Which is the most popular type of OS?
This is a tough one, well common sense dictates that it must be either Multi-tasking OS and Network OS. Wouldn't you agree? So which is it...?
At the time of writing this post, Android is officially the most popular OS, so technically multi-tasking operating systems are the most common. However, Windows 10 comes at a very very close second!
Useful Term Definitions
Just in case you are interesting in reading more about operating systems, below are a few useful definitions.
Single User
The OS is designed to be used by one user at a point in time. OSs that allow multiple users to simultaneously use the system are referred to as multi user.
Multiprocessing
Supports the running of a program on more than one CPU. Multithreading
Multithreading allows different parts of a single program to run concurrently.
Multiprogramming
More than one process can reside in the main memory at a time. To explain, imagine two processes P1 and P2; when P1 goes for I/O the CPU is not kept idle and is allocated to P2 for the duration of I/O.
Comments