Overview of Operating System Types
Overview of Operating System Types
Operating System
An Operating System (OS) is an interface between a computer user and computer hardware. An
operating system is a software which performs all the basic tasks like file management, memory
management, process management, handling input and output, and controlling peripheral
devices such as disk drives and printers.
Some popular Operating Systems include Linux Operating System, Windows Operating
System, VMS, OS/400, AIX, z/OS, etc. The OS helps you to communicate with the computer
without knowing how to speak the computer’s language. It is not possible for the user to use
any computer or mobile device without having an operating system.
Definition: An operating system is a program that acts as an interface between the user and the
computer hardware and controls the execution of all kinds of programs.
Resources Abstraction
Resource abstraction is a technique used in operating systems to hide the details of a resource
from users and programs. By hiding the details of a resource, the operating system can provide
a simpler and more consistent interface to users and programs.
Resource abstraction is used to hide the details of many different types of resources, including
hardware resources, software resources, and data resources. Hardware resources include
devices such as printers and disk drives. Software resources include files, network connections,
and process control blocks. Data resources include databases and message queues.
The operating system manages all of these resources and provides a consistent interface to
users and programs. Users and programs access resources through system calls, which are
abstractions of the underlying resource. For example, the open system call is used to open files,
and the read system call is used to read data from files. The OS provides a variety of other
services to users and programs, such as process control, memory management, and file system
management. These services are also implemented using resource abstraction.
Resource abstraction is a powerful technique that allows the operating system to hide the details
of its implementation from users and programs. By hiding the details of its implementation, the
operating system can provide a simpler and more consistent interface to users and programs.
Generally An OS abstraction layer(OSAL) presents a representation of the common system
functionality that is offered by any Operating system by providing meaningful and easy-to-use
wrapper functions that in turn encapsulate the system functions offered by the OS to which the
code needs to be ported.
Types of Operating Systems
[Link] Operating System
Def: An operating system that allows multiple programmes to run simultaneously on a single
processor machine is known as a multiprogramming operating system.
• This multiprogramming allows several jobs to be in memory at the same time, thus
ensuring the CPU utilisation and CPU has always has a job to execute.
Types of Multiprogramming Operating Systems:
• This multiprogramming operating system try's to take as many processes into the
RAM(Main Memory).
• In the above figure we can see that for a process (JOB A) which wants to perform some
input/output operation, in that case the process will be sent for I/O operation and in the
mean time the CPU will start executing another process (JOB B).
• Similarly if the job B wants to perform or require some input output operations, then
the CPU will start executing another process Job C.
• If a process does not want to perform any kind of I/O operation then CPU will first
execute the job completely and then goes for second one in the job pool.
Advantages:
• It has a faster response time.
• It may be beneficial to run multiple jobs in a single application at the same time.
• It aids in the computer’s overall optimization of job throughput.
• In comparison to long-term work, short-term jobs are completed swiftly.
• It may aid in reducing turnaround time for short-duration tasks.
• It contributes to higher CPU utilisation and is never idle so, resources are wisely
allocated.
Disadvantages:
• It’s quite complex and sophisticated.
• CPU scheduling is necessary.
• Since all types of tasks get stored in the main memory, memory management is required
in the operating system.
• The more difficult challenge is managing all procedures and tasks.
• Long-term jobs will demand a long wait if it has a high number of jobs.
The operating system performs time sharing through CPU scheduling and multiprogramming.
Let us study closely the process in a time sharing system. It is as follows:
• It is the division of CPU time for each process when more than one task are given by
the user.
• A short duration of time is chosen for each process. Moreover, this time duration is
very small in the order of 10-100 milliseconds. This time duration is known as time
slot, time slice, or quantum.
• Suppose three processes namely, P1, P2, and P3 are running on the system. Now,
suppose that the quantum is 4 nanoseconds (ns). Now, they will execute in the
following manner.
• Process P1 will execute for 4 ns, as soon a sit gets over, process p2 starts executing for
a duration of 4 ns. Further, when p2 gets complete process P3 executes for 4ns. This
process continues till all the processes gets complete.
• In this way, only one process runs at a time but, the switching between the processes
is very fast. Hence, the user feels that all the processes are running at the same time.
The above diagram shows the working of the time-sharing operating system.
The process 4 in the diagram is shown in active state. Process 5 is in ready state while process
1,2,3 and 6 are in waiting state.
Let's understand what these active state, ready state, and waiting for state mean.
Active state - The process currently using the CPU is said to be in an active state. Only one
process can be inactive state as the CPU can be assigned to only one process at a time for
processing.
Ready state - The process which is ready for execution and is waiting for the CPU to get
assigned to them is said to be in a Ready state. More than one process can be in a Ready state
at a time, but the CPU is allocated to only one of them at a time for processing.
Waiting State - The processes that are not ready for execution and are waiting for some
input/output process to be completed are said to be in waiting state. Once the input/output
process is completed, the process jumps to a Ready state and is ready for execution.
• Once the process executes its one-time quantum, it goes to the Ready state and is ready
for execution again. While if the process gets some input/output operation while in the
active state, it goes to the waiting state and waits there until the input/output is
completed and then goes to the ready state again as soon as the input/output operation
is completed.
Challenges for Time sharing OS:
• Time-sharing operating system also requires high specification hardware as the very
fast switching between the process for CPU execution is required.
• As there is very fast switching between the processes, there is a risk of data mixing
between the processes of different programs.
Advantages:
• Time-sharing operating system works in such a way that it minimises the response time
of the CPU.
• Each process gets an equal opportunity as the processes get equal time quantum for
execution at a time by the CPU.
• CPU idle time is also reduced as the CPU is continuously switching between the process
for the process, so the idle time is minimized in Time-sharing operating system.
Disadvantages:
• There are chances of data mixing due to fast switching between the processes.
• Time-sharing OS faces reliability issues.
• Data communication is a problem in Time-Sharing Operating Systems as
communication is an essential factor for the processes to get the CPU processing time.
Multiprogramming System Time-Sharing System
The processor and memory underutilization The processor's time is shared with multiple users.
problem is resolved, and multiple programs That's why it is called a time-sharing operating
run on the CPU. That's why it is called system.
multiprogramming.
Multiprogramming OS has no fixed time slice. Time-sharing OS has a fixed time slice.
Here the system does not take some time to Here the system works for the same or less time on
work on different processes. each process.
In Multiprogramming OS, the system depends In time-sharing, the OS system depends on time to
on devices to switch between tasks such as I/O switch between different processes.
interrupts.
Example: Mac OS, Window OS, Example: Windows NT server, Unix, Linux,
microcomputers such as MP/M, XENIX, and Multics, TOPS-10, TOPS-20
ESQview
Multiprocessing Operating System
In Multiprocessing, Parallel computing is achieved. There are more than one processors
present in the system which can execute more than one process at the same time. This will
increase the throughput of the system.
In Multiprocessing, Parallel computing is achieved. More than one processor present in the
system can execute more than one process simultaneously, which will increase the throughput
of the system.
Linux OS:
Linux was developed in 1991 by Linus Torvalds and it is one of the derivative of UNIX. Linux
is also the least popular operating system for workstation [Link] is open source
operating system which means that anyone can download it, use it and can modify it according
to their will. Linux is basically a command-line operating system. However, many distributions
(distros) come with a desktop environment (DE) that provides a GUI for Linux users. One of
the most popular distros for casual users is Ubuntu. There are also other distros in Linux like
Linux Mint, Debian, KDE, and Red Hat.
In the Ubuntu interface, the topmost Launcher button is the Dash button, which is almost
equivalent to Windows’ Start button. We install applications in Ubuntu mostly through CLI.
Apple OS:
Apple introduced the Macintosh computer in 1984 and it had a very easy-to-use interface —
the first popular WIMP(Window, Icon, Menu and Pointer) interface. The OS on the first Mac
was simply called System. Many previous versions using the word ‘system’ are system 1–7 in
which System 7 was the last version to use the “System” name.
With update 7.6, Apple dropped the title and renamed it Mac OS. Mac OS X was the tenth
version of the Mac series of operating systems which has many updated features as compared
to its previous ones. Similarly, Max OS X has many updated versions and Apple has named
each version after large cats
Various updated versions of Mac OS X
Mac OS X has also user friendly interfaces like windows and these are also a commercial
operating systems which require proper license before use it. These are used in high visual
projects because they have high definition graphics as compared to all other types of operating
systems.
Chrome OS:
Chrome OS was developed by Google and launched in 2011. Chrome OS is supposed to be
lightweight and perform the most common tasks users need today. Chrome desktop looks like
most other modern OS desktops, with a launcher in the lower-left corner, a taskbar, and status
tray with a clock in the lower-right [Link] interesting thing about Chrome OS is that it
stores very little on the local computer. Everything is stored on the cloud. Chrome operating
systems are mostly found on the small mini Netbooks which are also called Chromebooks.
These don’t have proper versions like the windows or mac OS, but instead these are
automatically updated through the Internet.
Handheld Operating System
Handheld operating systems are available in all handheld devices like Smartphones and
tablets. It is sometimes also known as a Personal Digital Assistant. The popular handheld
device in today’s world is Android and iOS. These operating systems need a high-processing
processor and are also embedded with various types of sensors.
Some points related to Handheld operating systems are as follows:
1. Since the development of handheld computers in the 1990s, the demand for
software to operate and run on these devices has increased.
2. Three major competitors have emerged in the handheld PC world with three
different operating systems for these handheld PCs.
3. Out of the three companies, the first was the Palm Corporation with their
PalmOS.
4. Microsoft also released what was originally called Windows CE. Microsoft’s
recently released operating system for the handheld PC comes under the name
of Pocket PC.
5. More recently, some companies producing handheld PCs have also started
offering a handheld version of the Linux operating system on their machines.
This process is completely uninterrupted unless a higher priority interrupt occurs during its
execution. Therefore, there must be a strict hierarchy of priority among the interrupts. The
interrupt with the highest priority must be allowed to initiate the process , while lower priority
interrupts should be kept in a buffer that will be handled later. Interrupt management is
important in such an operating system.
Real-time operating systems employ special-purpose operating systems because conventional
operating systems do not provide such [Link] various examples of Real-time
operating systems are:
• MTS
• Lynx
• QNX
• VxWorks etc.
Applications of Real-time operating system (RTOS):
• Real-time running structures are used inside the Radar gadget.
• Real-time running structures are utilized in Missile guidance.
• Real-time running structures are used in Medical Imaging Systems.
• Real-time running structures are used inside the Fuel injection gadget.
• Real-time running structures are used inside the Traffic manipulate gadget.
Types of Real-time operating system
1. Hard Real-Time operating system
In Hard RTOS, all critical tasks must be completed within the specified time duration,
i.e., within the given deadline. Not meeting the deadline would result in critical failures
such as damage to equipment or even loss of human life.
For Example
Let's take an example of airbags provided by carmakers along with a handle in the driver's seat.
When the driver applies brakes at a particular instance, the airbags grow and prevent the driver's
head from hitting the handle. Had there been some delay even of milliseconds, then it would
have resulted in an accident.
2. Soft Real-Time operating system
Soft RTOS accepts a few delays via the means of the Operating system. In this kind of
RTOS, there may be a closing date assigned for a particular job, but a delay for a small
amount of time is acceptable. So, cut off dates are treated softly via means of this kind
of RTOS.
For Example, This type of system is used in Online Transaction systems and Livestock price
quotation Systems.
3. Firm Real-Time operating system
In Firm RTOS additionally want to observe the deadlines. However, lacking a closing
date mi ght not have a massive effect, however may want to purposely undesired effects,
like a massive discount within the fine of a product.
For Example, this system is used in various forms of Multimedia applications.
Advantages:
• Easy to layout, develop and execute real-time applications under the real-time operating
system.
• The real-time working structures are extra compact, so those structures require much
less memory space.
• In a Real-time operating system, the maximum utilization of devices and systems.
• Focus on running applications and less importance to applications that are in the queue.
• Since the size of programs is small, RTOS can also be embedded systems like in
transport and others.
• These types of systems are error-free.
• Memory allocation is best managed in these types of systems.
Disadvantages:
• Real-time operating systems have complicated layout principles and are very costly to
develop.
• Real-time operating systems are very complex.
Process State
This specifies the process state i.e. new, ready, running, waiting or terminated.
Process Number
This shows the number of the particular process.
Program Counter
This contains the address of the next instruction that needs to be executed in the process.
Registers
This specifies the registers that are used by the process. They may include accumulators, index
registers, stack pointers, general purpose registers etc.
List of Open Files
These are the different files that are associated with the process
CPU Scheduling Information
The process priority, pointers to scheduling queues etc. is the CPU scheduling information that
is contained in the PCB. This may also include any other scheduling parameters.
Memory Management Information
The memory management information includes the page tables or the segment tables
depending on the memory system used. It also contains the value of the base registers, limit
registers etc.
I/O Status Information
This information includes the list of I/O devices used by the process, the list of files etc.
Accounting information
The time limits, account numbers, amount of CPU used, process numbers etc. are all a part of
the PCB accounting information.
Location of the Process Control Block
The process control block is kept in a memory area that is protected from the normal user
access. This is done because it contains important process information. Some of the operating
systems place the PCB at the beginning of the kernel stack for the process as it is a safe location.
Operating System Structure
An operating system has a complex structure, so we need a well-defined structure to assist us
in applying it to our unique requirements. Just as we break down a big problem into smaller,
easier-to-solve subproblems, designing an operating system in parts is a simpler approach to
do it. And each section is an Operating System component.
The approach of interconnecting and integrating multiple operating system components into
the kernel can be described as an operating system structure. As mentioned below, various sorts
of structures are used to implement operating systems.
• Simple Structure
• Monolithic Structure
• Layered Approach Structure
• Micro-kernel Structure
Simple Structure
It is the simplest Operating System Structure and is not well defined; It can only be used for
small and limited systems. In this structure, the interfaces and levels of functionality are well
separated; hence programs can access I/O routines which can cause unauthorized access to I/O
routines.
This structure is implemented in MS-DOS operating system:
The MS-DOS operating System is made up of various layers, each with its own set of
functions.
These layers are:
• Application Program
• System Program
• MS-DOS device drivers
• ROM BIOS device drivers
Layering has an advantage in the MS-DOS operating system since all the levels can be defined
separately and can interact with each other when needed.
It is easier to design, maintain, and update the system if it is made in layers. So that's why
limited systems with less complexity can be constructed easily using Simple Structure.
If one user program fails, the entire operating system gets crashed.
The abstraction level in MS-DOS systems is low, so programs and I/O routines are visible to
the end-user, so the user can have unauthorized access.
Layering in simple structure is shown below:
Advantages of Simple Structure
• It is easy to develop because of the limited number of interfaces and layers.
• Offers good performance due to lesser layers between hardware and applications.
Disadvantages of Simple Structure
• If one user program fails, the entire operating system crashes.
• Abstraction or data hiding is not present as layers are connected and communicate with
each other.
• Layers can access the processes going in the Operating System, which can lead to data
modification and can cause Operating System to crash.
Monolithic Structure
The Monolithic operating System in which the kernel acts as a manager by managing all things
like file management, memory management, device management, and operational processes of
the Operating System.
The kernel is the heart of a computer operating system (OS). Kernel delivers basic services to
all other elements of the System. It serves as the primary interface between the Operating
System and the hardware.
In monolithic systems, kernels can directly access all the resources of the operating System
like physical hardware, exp Keyboard, Mouse etc.
The monolithic kernel is another name for the monolithic operating system. Batch
processing and time-sharing maximize the usability of a processor by multiprogramming. The
monolithic kernel functions as a virtual machine by working on top of the Operating System
and controlling all hardware components. This is an outdated operating system that was used
in banks to accomplish minor activities such as batch processing and time-sharing, which
enables many people at various terminals to access the Operating System.
A Diagram of the Monolithic structure is shown below:
In this approach, functionalities of each layer are isolated, and abstraction is also available. In
layered structure, debugging is easier as it is a hierarchical model, so all lower-level layered is
debugged, and then the upper layer is checked. So all the lower layers are already checked, and
the current layer is to be checked only.
The input data travels from input unit to ALU. Similarly, the computed data travels from ALU
to output unit. The data constantly moves from storage unit to ALU and back again. This is
because stored data is computed on before being stored again. The control unit controls all the
other units as well as their data.
Details about all the computer units are −
• Input Unit
The input unit provides data to the computer system from the outside. So, basically it
links the external environment with the computer. It takes data from the input devices,
converts it into machine language and then loads it into the computer system. Keyboard,
mouse etc. are the most commonly used input devices.
• Output Unit
The output unit provides the results of computer process to the users i.e it links the
computer with the external environment. Most of the output data is the form of audio
or video. The different output devices are monitors, printers, speakers, headphones etc.
• Storage Unit
Storage unit contains many computer components that are used to store data. It is
traditionally divided into primary storage and secondary [Link] storage is also
known as the main memory and is the memory directly accessible by the CPU.
Secondary or external storage is not directly accessible by the CPU. The data from
secondary storage needs to be brought into the primary storage before the CPU can use
it. Secondary storage contains a large amount of data permanently.
• Arithmetic Logic Unit
All the calculations related to the computer system are performed by the arithmetic
logic unit. It can perform operations like addition, subtraction, multiplication, division
etc. The control unit transfers data from storage unit to arithmetic logic unit when
calculations need to be performed. The arithmetic logic unit and the control unit
together form the central processing unit.
• Control Unit
This unit controls all the other units of the computer system and so is known as its
central nervous system. It transfers data throughout the computer as required including
from storage unit to central processing unit and vice versa. The control unit also dictates
how the memory, input output devices, arithmetic logic unit etc. should behave.
A multi-programmed batch operating system improves CPU utilization by using spooling to handle many jobs already read and waiting on disk. This allows the operating system to choose which job to run next, maximizing CPU efficiency and minimizing idle time . A simple batch system, conversely, processes jobs sequentially as they arrive, without reordering or dynamic scheduling .
The evolution of batch operating systems from single-stream to multi-programmed systems has significantly enhanced modern computing efficiency by introducing concepts like spooling, dynamic job scheduling, and improved CPU utilization . These developments laid the groundwork for modern operating systems by optimizing job processing and resource management, reducing idle time, and allowing complex task coordination .
Time-sharing operating systems allow multiple tasks to be performed simultaneously, with each task receiving an equal amount of time to execute, thereby improving CPU responsiveness and reducing the waiting time for users . In contrast, multi-programmed batch systems focus primarily on maximizing CPU use by managing job scheduling through spooling rather than on real-time task execution .
Linux's open-source nature has significantly facilitated its adoption across a wide range of devices, from PCs to smartphones, by allowing user customization and extensive community support . Its portability, ability to run on various hardware, and free availability make it a flexible choice for developers and organizations, fostering widespread use and innovation .
The licensing requirements of Windows and Mac OS necessitate the purchase of a license, which can limit adoption due to cost considerations, despite their wide market presence and user-friendly interfaces . In contrast, Linux, being open-source, is free to use and modify, leading to a smaller market share but greater flexibility and adoption among developers and in niche computing environments .
Batch operating systems load less stress on the CPU and manage large repetitive jobs without much user interaction, leading to improved CPU utilization and efficient processing of jobs in a 'first come, first served' manner . However, they involve complex debugging processes and lack direct user interaction, which can lead to inefficiencies if jobs fail or enter infinite loops, causing delays for other pending tasks .
Chrome OS differs from traditional operating systems by storing primarily in the cloud rather than on the local computer, reducing the system's physical storage requirements and emphasizing real-time updates and management . Traditional operating systems often rely on local storage for applications and data, which necessitates manual updates and larger local resource allocation .
Handheld operating systems are designed for real-time operations with flexible input/output devices and high configurability to manage tasks efficiently on smaller, mobile hardware . In contrast, desktop operating systems prioritize comprehensive user interfaces and resource management to support a wider array of tasks on more powerful hardware, often with significant local storage .
Fedora is particularly suited for corporate environments due to its open-source nature, providing developers with comprehensive tools and utilities, effective virtualization capabilities, and seamless integration with container technologies . This flexibility and robust toolset, combined with its modern interface, allow developers in corporate settings to focus on coding efficiently .
Chrome OS supports Android and Linux applications by leveraging its Linux-kernel foundation and maintaining compatibility with Android's ecosystem . Its design includes integrated features like remote application access and robust virtualization capabilities, allowing seamless operations of Android apps while also supporting Linux applications for increased versatility .