Operating System
Operating System
Operating System
An Operating System performs all the basic tasks like managing files, processes,
and memory. Thus operating system acts as the manager of all the resources,
i.e. resource manager. Thus, the operating system becomes an interface between
the user and the machine. It is one of the most required software that is present in
the device.
Operating System is a type of software that works as an interface between the
system program and the hardware.
MultiProgramming
Advantages of Multi-Programming Operating System
• Multi Programming increases the Throughput of the System.
• It helps in reducing the response time.
Disadvantages of Multi-Programming Operating System
• There is not any facility for user interaction of system resources with the
system.
Multitasking
Advantages of Multi-Tasking Operating System
• Multiple Programs can be executed simultaneously in Multi-Tasking
Operating System.
• It comes with proper memory management.
Disadvantages of Multi-Tasking Operating System
• The system gets heated in case of heavy programs multiple times.
Time-Sharing OS
Advantages of Time-Sharing OS
• Each task gets an equal opportunity.
• Fewer chances of duplication of software.
• CPU idle time can be reduced.
• Resource Sharing: Time-sharing systems allow multiple users to share
hardware resources such as the CPU, memory, and peripherals, reducing
the cost of hardware and increasing efficiency.
• Improved Productivity: Time-sharing allows users to work concurrently,
thereby reducing the waiting time for their turn to use the computer. This
increased productivity translates to more work getting done in less time.
• Improved User Experience: Time-sharing provides an interactive
environment that allows users to communicate with the computer in real
time, providing a better user experience than batch processing.
Disadvantages of Time-Sharing OS
• Reliability problem.
• One must have to take care of the security and integrity of user programs
and data.
• Data communication problem.
• High Overhead: Time-sharing systems have a higher overhead than
other operating systems due to the need for scheduling, context
switching, and other overheads that come with supporting multiple
users.
• Complexity: Time-sharing systems are complex and require advanced
software to manage multiple users simultaneously. This complexity
increases the chance of bugs and errors.
• Security Risks: With multiple users sharing resources, the risk of security
breaches increases. Time-sharing systems require careful management
of user access, authentication, and authorization to ensure the security of
data and software.
Examples of Time-Sharing OS with explanation
• IBM VM/CMS: IBM VM/CMS is a time-sharing operating system that was
first introduced in 1972. It is still in use today, providing a virtual
machine environment that allows multiple users to run their own
instances of operating systems and applications.
• TSO (Time Sharing Option): TSO is a time-sharing operating system
that was first introduced in the 1960s by IBM for the IBM System/360
mainframe computer. It allowed multiple users to access the same
computer simultaneously, running their own applications.
• Windows Terminal Services: Windows Terminal Services is a time-
sharing operating system that allows multiple users to access a
Windows server remotely. Users can run their own applications and
access shared resources, such as printers and network storage, in real-
time.
Distributed OS
Advantages of RTOS
• Maximum Consumption: Maximum utilization of devices and systems,
thus more output from all the resources.
• Task Shifting: The time assigned for shifting tasks in these systems is
very less. For example, in older systems, it takes about 10 microseconds
in shifting from one task to another, and in the latest systems, it takes 3
microseconds.
• Focus on Application: Focus on running applications and less
importance on applications that are in the queue.
• Real-time operating system in the embedded system: Since the 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 types
of systems.
Disadvantages of RTOS
• Limited Tasks: Very few tasks run at the same time and their
concentration is very less on a 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
interrupts signal to respond earliest to interrupts.
• Thread Priority: It is not good to set thread priority as these systems are
very less prone to switching tasks.
Examples of Real-Time Operating Systems are Scientific experiments, medical
imaging systems, industrial control systems, weapon systems, robots, air traffic
control systems, etc.
Running Running
Running multiple
Running multiple multiple tasks multiple threads
processes on
Definition programs on a (applications) within a single
multiple CPUs
single CPU on a single task
(or cores)
CPU (application)
Resources
Resources (CPU, Each process has
Resources (CPU, (CPU,
Resource memory) are its own set of
memory) are shared memory) are
Sharing shared among resources (CPU,
among programs shared among
threads memory)
tasks
Each program has Each task has Threads share Each process has
Memory
its own memory its own memory space its own memory
Management
space memory space within a task space
Requires a
Requires a Requires a
Requires a context context switch
Context context switch context switch to
switch to switch to switch
Switching to switch switch between
between programs between
between tasks processes
threads
Memory Management
Processor Management
In a multi-programming environment, the OS decides the order in which processes
have access to the processor, and how much processing time each process has.
This function of OS is called Process Scheduling. An Operating System performs
the following activities for Processor Management.
An operating system manages the processor’s work by allocating various jobs to it
and ensuring that each process receives enough time from the processor to
function properly.
Keeps track of the status of processes. The program which performs this task is
known as a traffic controller. Allocates the CPU that is a processor to a process.
De-allocates processor when a process is no longer required.
Processor Management
Device Management
An OS manages device communication via its respective drivers. It performs the
following activities for device management. Keeps track of all devices connected
to the system. designates a program responsible for every device known as the
Input/Output controller. Decide which process gets access to a certain device and
for how long. Allocates devices effectively and efficiently. Deallocates devices
when they are no longer required. There are various input and output devices. an
OS controls the working of these input-output devices. It receives the requests
from these devices, performs a specific task, and communicates back to the
requesting process.
File Management
A file system is organized into directories for efficient or easy navigation and
usage. These directories may contain other directories and other files. An
Operating System carries out the following file management activities. It keeps
track of where information is stored, user access settings, the status of every file,
and more. These facilities are collectively known as the file system. An OS keeps
track of information regarding the creation, deletion, transfer, copy, and storage of
files in an organized way. It also maintains the integrity of the data stored in these
files, including the file directory structure, by protecting against unauthorized
access.
File Management
Command Interpreter
The history of the operating system has four generations now. The evolution of the
Operating system can be understood from the following image.
First Generation
Electronic computers were introduced during the 1940s when there were no
operating systems therefore the code was written in machine language where they
were just used to solve simple mathematic problems.
Example - to control the machine functions plug boards were used using the
wiring.
Second Generation
(1955-1965) GMOS (General Motos operating system) was the first operating
system that came into the picture in the 1950s which was developed for IBM
computers. IBM was the first one that bought an operating system into the world.
In the second generation, around the 1960s the first UNIX Operating system was
developed that was available for free for a few years. Also, the batch processing
system, where all the similar jobs are collected in groups by the system, and then
all the jobs are submitted to the operating system using a punch card to execute all
jobs in a machine.
Third Generation
Fourth Generation
(1980-now) The evolution of computers aka operating systems came under the
fourth generation. Every user is using their personal computers in this generation.
The concept of personal computers is similar to the minicomputer that was
introduced in the third generation. The birth of the Microsoft Windows operating
system was in 1975 and then Bill Gates took the personal computers to next level
by launching MS-DOS in 1981, but due to the cryptic commands, it was difficult for
a user to get hold of the commands. In this generation, people were also introduced
to Graphic User Interface(GUI). Today, Windows is the most popular operating
system and has evolved from Windows 95, Windows 98, Windows XP, and
Windows 7. The most used Windows operating system was Windows 7
and Windows 10. In 2021, Windows 11 was introduced with major changes. Apple
also introduced its operating system known as MacOS which is also as popular as
Windows these days.