You are on page 1of 24

UNDERTAKING

I, Ajay Chakravarty working as Assistant Professor in the Department CCSIT,


Teerthanker Mahaveer University, Moradabad, hereby, declare that the e-content
entitled ”Introduction of Operating system”, is an original work developed by me
with all the citations at relevant places.
This undertaking transfers the copyright to Teerthanker Mahaveer University, which
covers the exclusive right and license to reproduce, distribute, publish and archive the
e-content in all forms and media of expression now known or developed in the future,
including reprints, translations, photographic reproduction, microform, or any other
reproduction of similar nature.

Ajay Chakravarty

Name & Signature with Date

Verified & forwarded by the Principal: Name & Signature with Date
Annexure-II

NAME OF THE TEACHER Ajay Chakravarty

GENDER Male

MOBILE NO. 9897844622

E MAIL ID ajayc.computers@tmu.ac.in

DESIGNATION Assistant Professor

TMU Moradabad
UNIVERSITY NAME

COLLEGE NAME FOECS

STREAM NAME (For e.g.


Engineering, Fine Arts,
Management, Science, etc.)

DEPARTMENT NAME CCSIT

PROGRAMME NAME BCA

PROGRAMME TYPE (UG/PG) UG

PROGRAMME TYPE & DURATION 3rd SEMESTER


(IF Year-based,
then mention Yearly& no of years
and if semester based,pls mention
Semester & no of semesters)

SUBJECT NAME (Pls mention course Operating System


name here)
SUBTOPIC NAME Types of operating system

CONTENT TYPE (PPTS or text notes, Text note


etc)

NO. OF PAGES 20

SEARCH KEYWORD Operating system, types of operating system

Introduction of
Operating system

Name of the creator AJAY CHAKRAVARTY

Designation ASSISTANT PROFESSOR

Department CCSIT, TMU

3
Introduction of Operating System
An operating system acts as an intermediary between the user of a computer and
computer hardware. The purpose of an operating system is to provide an
environment in which a user can execute programs conveniently and efficiently.
An operating system is software that manages computer hardware. The hardware
must provide appropriate mechanisms to ensure the correct operation of the
computer system and to prevent user programs from interfering with the proper
operation of the system. A more common definition is that the operating system is
the one program running at all times on the computer (usually called the kernel),
with all else being application programs.
An operating system is concerned with the allocation of resources and services,
such as memory, processors, devices, and information. The operating system
correspondingly includes programs to manage these resources, such as a traffic
controller, a scheduler, a memory management module, I/O programs, and a file
system.

History of Operating System


The operating system has been evolving through the years.

1. 1940s-1950s: The Early Days


- The first electronic digital computers, such as the ENIAC and UNIVAC, were
programmed using machine language and had no true operating systems. Users had
to manually set switches and wires to load programs.

2. 1950s-1960s: Batch Processing Systems


- Batch processing systems were introduced, which allowed users to submit jobs
in batches. The computer would execute one job at a time. Examples include the
IBM OS/360 and the UNIVAC EXEC 8.

3. 1960s-1970s: Time-Sharing Systems


- Time-sharing systems were developed to allow multiple users to interact with
the computer simultaneously. CTSS (Compatible Time-Sharing System) and
MULTICS were early examples. The latter influenced the development of Unix.

4. 1969: Unix
- Unix, developed at AT&T Bell Labs by Ken Thompson, Dennis Ritchie, and
others, is one of the most influential operating systems in history. It introduced
4
many concepts like file hierarchy, the shell, and the use of text files for
configuration.

5. 1970s-1980s: Rise of Microcomputers and Personal Computers


- The 1970s saw the rise of microcomputers, like the Altair 8800 and the Apple
I, which used simple OSes or no OS at all. The 1980s brought personal computers
like the IBM PC, which used MS-DOS.

6. 1980s-1990s: Graphical User Interfaces (GUI)


- Apple's Macintosh and Microsoft Windows popularized GUIs in the mid-1980s.
Windows 3.0 and Windows 3.1 in the early 1990s marked significant milestones
in GUI-based computing.

7. 1990s: The Internet and Networked Systems


- The growth of the internet led to the development of networked operating
systems, like Linux, which is a Unix-like OS that gained popularity due to its open-
source nature.

8. 2000s-Present: Mobile and Cloud Computing


- The 2000s saw the rise of mobile operating systems like iOS and Android.
Cloud computing introduced a new paradigm with OSes like Amazon's AWS and
Google's Cloud Platform.

10 Recent Developments
- In recent years, containerization technologies like Docker and Kubernetes have
gained prominence, providing new ways to manage and deploy applications across
different environments.

5
Characteristics of Operating Systems
Operating systems (OS) are complex software that manage and control computer
hardware and provide a platform for running applications. They exhibit a range of
characteristics that define their functionality and role in computing. Here are some
key characteristics of operating systems:

1. Concurrency: Operating systems enable multiple tasks or processes to run


concurrently on a computer. They manage CPU time-sharing, ensuring that each
process gets a fair share of the CPU's processing power.

2. Multi-User Support: Most modern operating systems support multiple users


simultaneously. They provide user authentication and access control mechanisms
to protect data and resources from unauthorized access.

3. Resource Management: OSes allocate and manage hardware resources such


as CPU, memory, disk space, and I/O devices. They optimize resource utilization
to ensure efficient operation.

4. Abstraction: Operating systems abstract hardware complexities, providing a


consistent and standardized interface for software applications. This abstraction
shields applications from low-level hardware details.

5. File System: OSes manage files and directories, providing a hierarchical


structure for data storage. They offer file I/O services for reading, writing, and
manipulating data.

6. Process Management: OSes create, schedule, and terminate processes or


tasks. They facilitate inter-process communication and synchronization when
necessary.

7. Memory Management: Operating systems allocate and manage system


memory, ensuring efficient memory usage and preventing processes from
interfering with each other's memory space.

8. Device Management: They control and coordinate access to input/output


devices, including peripherals like printers, keyboards, and displays. Device
drivers enable communication between software and hardware.

6
9. Security: OSes implement security features such as user authentication, access
control lists, and encryption to protect data and system integrity. They also monitor
and respond to security threats.

10. Error Handling: Operating systems detect and handle hardware and
software errors to prevent system crashes and data corruption. They often log errors
for troubleshooting and debugging.

11. User Interface: Most OSes provide a user interface, which can be command-
line-based (CLI) or graphical (GUI), to interact with the system. GUIs are common
in desktop and mobile operating systems.

12. Networking: Modern operating systems support network communication,


allowing devices to connect to the internet or local networks. They include
networking protocols and services for data transmission.

13. Virtualization: OSes can provide virtualization capabilities, allowing


multiple virtual machines (VMs) to run on a single physical server. This technology
is crucial for cloud computing and server consolidation.

14. Real-Time Support: Some specialized OSes, like real-time operating


systems (RTOS), provide predictable and deterministic responses to time-sensitive
tasks, common in embedded systems and critical applications.

15. Upgradability and Maintenance: OSes can be updated and patched to fix
security vulnerabilities and add new features. This ensures that the system remains
current and secure.

16. Compatibility: They strive to maintain compatibility with older software


and hardware to ensure that legacy applications continue to function on newer
versions of the OS.

17. Modularity: Some OSes are designed with a modular architecture, allowing
users to add or remove components as needed to customize the system's
functionality.

These characteristics collectively define the role of operating systems in modern


computing environments, facilitating the execution of applications, managing
resources, and providing a stable and secure platform for users and developers.

7
Functionalities of Operating System
Resource Management: When parallel accessing happens in the OS means when
multiple users are accessing the system the OS works as Resource Manager, Its
responsibility is to provide hardware to the user. It decreases the load in the system.

Process Management: It includes various tasks like scheduling and


termination of the process. It is done with the help of CPU Scheduling algorithms.

Storage Management: The file system mechanism used for the management of
the storage. NIFS, CIFS, CFS, NFS, etc. are some file systems. All the data is
stored in various tracks of Hard disks that are all managed by the storage manager.
It included Hard Disk.

Memory Management: Refers to the management of primary memory. The


operating system has to keep track of how much memory has been used and by
whom. It has to decide which process needs memory space and how much. OS also
has to allocate and deallocate the memory space.

Security/Privacy Management: Privacy is also provided by the Operating system


using passwords so that unauthorized applications can’t access programs or data.
For example, Windows uses Kerberos authentication to prevent unauthorized
access to data.

Conceptual View of Computer System

8
Every computer must have an operating system to run other programs. The
operating system coordinates the use of the hardware among the various system
programs and application programs for various users. It simply provides an
environment within which other programs can do useful work.
The operating system is a set of special programs that run on a computer system
that allows it to work properly. It performs basic tasks such as recognizing input
from the keyboard, keeping track of files and directories on the disk, sending output
to the display screen, and controlling peripheral devices.

Components of an Operating Systems


There are two basic components of an Operating System.
Shell
Shell is the outermost layer of the Operating System and it handles the interaction
with the user. The main task of the Shell is the management of interaction between
the User and OS. Shell provides better communication with the user and the
Operating System Shell does it by giving proper input to the user it also interprets
input for the OS and handles the output from the OS. It works as a way of
communication between the User and the OS.
Kernel
The kernel is one of the components of the Operating System which works as a
core component. The rest of the components depends on Kernel for the supply of
the important services that are provided by the Operating System. The kernel is the
primary interface between the Operating system and Hardware.
Functions of Kernel
The following functions are to be performed by the Kernel.
• It helps in controlling the System Calls.
• It helps in I/O Management.
• It helps in the management of applications, memory, etc.
Types of Kernel
There are four types of Kernel that are mentioned below.
• Monolithic Kernel
• Microkernel
• Hybrid Kernel
• Exokernel

9
Types of Operating Systems
There are several types of Operating Systems which are mentioned below.
• Batch Operating System
• Multi-Programming System
• Multi-Processing System
• Multi-Tasking Operating System
• Time-Sharing Operating System
• Distributed Operating System
• Network Operating System
• Real-Time Operating System

1. Batch Operating System


A batch operating system is a type of operating system that manages and executes
computer programs in batches, rather than interactively in real-time. It was a
common type of operating system used in early computer systems and mainframes,
and it is still used in certain specialized environments today. Here are some key
characteristics and features of batch operating systems:
Batch Processing: In a batch operating system, multiple jobs (programs or tasks)
are grouped together into batches. These batches are submitted to the system for
execution as a unit. The operating system processes one batch at a time, executing
all the jobs within the batch before moving on to the next.
No User Interaction: Unlike interactive operating systems where users interact
with the computer in real-time, batch systems are designed for non-interactive or
offline processing. Users submit their jobs to the system, and the system executes
them without requiring constant user input.
Job Scheduler: Batch operating systems typically have a job scheduler that
manages the order and priority of job execution. It decides which batch to execute
next and which job within a batch should be processed.
Resource Allocation: The operating system allocates system resources (CPU time,
memory, I/O devices) to each job in the batch. Jobs are typically executed in the
background, and the resources are released once a job completes.
Job Control Language: To specify the details of a job, users often use a job
control language (JCL) or scripting language specific to the batch operating
system. This language describes job parameters, input/output files, and other job-
related information.
Error Handling: Batch operating systems need to have robust error-handling
mechanisms because jobs may run unattended for extended periods. If errors occur

10
during job execution, the system must log them and possibly take corrective
actions.
Efficiency: Batch systems are designed for maximum resource utilization and
efficiency. They aim to minimize idle time on the computer system by continuously
processing jobs in the queue.
Limited User Interaction: While batch systems are not designed for user
interaction during job execution, they often provide means for users to monitor the
progress of their jobs and receive job completion notifications.
Historical Significance: Batch operating systems were prevalent in the early days
of computing when computers were expensive and processing was slow. They
allowed organizations to automate repetitive tasks and optimize resource
utilization.

Batch Operating System

Advantages of Batch Operating Systems:

Efficiency: Batch operating systems are designed for maximum resource


utilization. They aim to keep the computer system busy by continuously processing
jobs from the batch queue. This leads to efficient use of CPU time and other system
resources.
Workload Management: Batch systems can handle large workloads efficiently,
making them suitable for processing high volumes of repetitive tasks, such as
payroll processing, report generation, and data analysis.

11
Automated Processing: Batch systems automate the execution of jobs, reducing
the need for constant user intervention. This is particularly useful for tasks that can
be scheduled to run during non-peak hours.
Error Handling: Batch systems often include robust error-handling mechanisms.
They can log errors, generate error reports, and take predefined actions when errors
occur during job execution.
Resource Allocation: The operating system can allocate resources to jobs based
on priority and requirements, ensuring that critical jobs receive the necessary
resources for timely execution.

Disadvantages of Batch Operating Systems:

Lack of Interactivity: One of the primary disadvantages of batch systems is their


lack of interactivity. Users cannot interact with the system while their jobs are
running, which can be a limitation in environments where real-time responses are
required.
Limited User Control: Users have limited control over job execution once they
submit their jobs to the batch queue. They must wait for their turn in the queue,
and the system administrator typically determines job priorities.
Complex Job Submission: Submitting jobs in a batch system often requires
knowledge of a job control language (JCL) or a specific scripting language, which
can be a barrier for non-technical users.
Response Time: Batch systems are not well-suited for tasks that require immediate
user feedback or real-time processing, such as interactive gaming, video
conferencing, or real-time simulations.
Queue Wait Times: Depending on the workload and system configuration, jobs
may spend significant time waiting in the queue before they are executed, leading
to potential delays in job completion.

Multi-Programming Operating System

Multi-programming is a computer operating system technique that allows multiple


programs or processes to run concurrently on a computer system. This technique
improves the utilization of the CPU and overall system efficiency by keeping the
CPU busy with tasks, even when one task is waiting for some external event (such
as user input or I/O operations) to complete.

12
Advantages of Multi-Programming Operating Systems:

Improved CPU Utilization: Multi-programming allows the CPU to stay busy by


quickly switching between different programs as they await I/O operations or other
events. This leads to better CPU utilization and increased system throughput.

Enhanced Responsiveness: Users experience improved responsiveness because


they don't have to wait for one program to finish before starting another. Multiple
applications can run concurrently, making the system more interactive.

Resource Sharing: Multi-programming enables efficient sharing of system


resources, such as memory, I/O devices, and CPU time, among multiple programs.
This resource sharing optimizes overall system efficiency.

Better Throughput: By keeping the CPU active and efficiently managing


resources, multi-programming systems can handle a higher load of processes or
tasks, improving the overall throughput of the system.

Faster Execution: Batch processing and background tasks can execute


simultaneously with interactive applications, leading to faster job execution and
shorter response times.

Disadvantages of Multi-Programming Operating Systems:

Complexity: Multi-programming operating systems are more complex to design,


implement, and maintain than single-program systems. The management of
concurrent processes, memory allocation, and scheduling introduces complexity.

Increased Overhead: Context switching between processes, interrupt handling,


and memory management all introduce overhead. These operations consume CPU
cycles and system resources, potentially slowing down individual program
execution.

Resource Contention: In a multi-programming environment, programs may


compete for system resources. If not managed properly, this can lead to resource
contention, resulting in slowed performance or even deadlock situations.

Difficulty in Debugging: Debugging and troubleshooting become more


challenging in a multi-programming environment due to the interplay of multiple

13
processes. Issues like race conditions and synchronization errors can be hard to
identify and resolve.

Potential for Poor Quality of Service: Without proper prioritization and


scheduling algorithms, certain tasks may monopolize system resources, leading to
a poor quality of service for other applications. This can impact the user experience.

Multi-Processing Operating System

A multi-processing operating system, also known as a multiprocessor operating


system, is designed to support and manage the execution of multiple processes or
tasks on a computer system with multiple CPUs (Central Processing Units) or
processor cores. The primary objective of such an operating system is to efficiently
utilize the available hardware resources to improve system performance and
responsiveness
Characteristics:

Parallel Processing: Multi-processing OSes enable concurrent execution of


multiple processes across multiple CPU cores. This parallel processing can
significantly increase the system's overall processing power.

Symmetric Multiprocessing (SMP): Many multi-processing systems are


designed with symmetric multiprocessing, where all CPUs or cores are treated
equally, and any processor can execute any process. This provides a
straightforward and balanced approach to utilizing multiple processors.

Asymmetric Multiprocessing: In some cases, multi-processing systems may


employ asymmetric multiprocessing, where certain processes or tasks are assigned
to specific processors. This approach can be useful for handling specialized tasks
efficiently.

Thread Support: Multi-processing operating systems often provide support for


multithreading, allowing individual processes to spawn multiple threads of
execution that can run concurrently on different CPU cores. This can improve the
performance of multithreaded applications.

14
Advantages:
Improved Performance: The primary advantage of multi-processing operating
systems is improved performance. By distributing the workload across multiple
processors or cores, these systems can execute tasks more quickly and handle a
higher number of concurrent processes.

Enhanced Scalability: Multi-processing systems can be easily scaled by adding


more CPUs or cores, making them suitable for handling growing workloads
without significant architectural changes.

Better Responsiveness: Multi-processing systems can maintain system


responsiveness even when running resource-intensive applications, as they can
allocate CPU resources to various tasks more efficiently.

Support for Multithreaded Applications: Multi-threaded applications, which


can take advantage of multiple cores, benefit from the increased processing power
offered by multi-processing systems.

High Availability: Some multi-processing systems are designed for high


availability and fault tolerance. Redundant hardware and failover mechanisms can
ensure that the system continues to operate even in the event of hardware failures.

Considerations:

Software Compatibility: Not all software applications are optimized for multi-
processing. Some older or poorly designed applications may not fully utilize the
available CPU cores.

Complexity: Managing multiple processors and coordinating their activities can


be complex. The OS must handle synchronization, load balancing, and resource
allocation efficiently.

Cost: Building and maintaining a multi-processing system can be more expensive


than a single-processor system due to the cost of multiple CPUs or cores, as well
as the supporting hardware and software infrastructure.

Programming Challenges: Developing software for multi-processing


environments can be more challenging than single-threaded programming.
Developers must consider issues like synchronization and data sharing among
threads or processes.
15
Scalability Limits: While multi-processing systems can be scaled to some extent
by adding more processors or cores, there are practical limits to scalability, and
diminishing returns may occur as the system becomes more complex.

Time-Sharing Operating Systems


A time-sharing operating system (also known as a multitasking operating system)
is designed to allow multiple users or processes to share a single computer's
resources (such as the CPU and memory) by dividing the available time into small
intervals or time slices. Each user or process gets a fair share of the system's
resources for a brief period, creating the illusion of concurrent execution. Time-
sharing operating systems were a significant advancement in the evolution of
computing systems and have several key characteristics and advantages:

Characteristics:

Time Slicing: Time-sharing OSes divide CPU time into small time slices, typically
in the range of milliseconds. Each user or process is allocated a time slice during
which it can execute its instructions. Once the time slice expires, the OS switches
to the next user or process in a round-robin fashion.

Concurrent Execution: Users and processes appear to run concurrently, even


though only one process is actively executing at any given moment. This
concurrent execution provides a more interactive and responsive computing
experience.

Resource Allocation: The OS must manage and allocate resources, such as CPU
time, memory, and I/O devices, fairly among competing users and processes.
Resource management and scheduling algorithms are essential for efficient time
sharing.

Context Switching: To switch between processes rapidly, the OS performs context


switches, which involve saving the state of the currently executing process and
restoring the state of the next process to run. Context switches introduce some
overhead but are necessary for time sharing.

Multi-User Support: Time-sharing operating systems are designed to support


multiple users simultaneously. Each user may have their own terminal or session,
and the OS ensures that their activities do not interfere with one another.

16
Advantages:

Resource Sharing: Time-sharing allows efficient sharing of computing resources


among multiple users and processes, making the most of available hardware
resources.

Improved Responsiveness: Users experience better responsiveness because they


don't have to wait for one process to complete before they can interact with the
system or run other programs.

Maximized CPU Utilization: Time-sharing operating systems maximize CPU


utilization by keeping the CPU busy with tasks, even when some processes are
waiting for I/O operations.

Effective Use of Interactive Applications: Time-sharing systems are well-suited


for interactive applications, such as text editors, command-line interfaces, and
graphical user interfaces (GUIs), where users expect quick responses to their
inputs.

Fairness: These systems provide fairness in resource allocation. Each user or


process gets a fair share of CPU time and other resources, preventing any single
user or process from monopolizing the system.

Considerations:

Overhead: Context switching and managing time slices introduce some overhead,
which can impact overall system performance. Careful design and optimization are
required to minimize this overhead.

Scheduling Complexity: Effective scheduling algorithms are crucial for ensuring


fairness and optimal resource allocation. Developing and maintaining these
algorithms can be complex.

Security: Time-sharing systems must enforce security mechanisms to protect user


data and prevent unauthorized access or interference between users.

Resource Contention: In cases of high demand, resource contention can occur,


leading to longer wait times for users or processes.

17
Distributed Operating System
A distributed operating system is an operating system that runs on multiple
interconnected computers and provides a seamless, unified computing environment
for users and applications across a network or a distributed computing
environment. Unlike traditional single-machine operating systems, distributed
operating systems manage and coordinate resources, processes, and data across
multiple machines, allowing for increased scalability, fault tolerance, and resource
sharing. Here are some key characteristics, advantages, and considerations related
to distributed operating systems:

Characteristics:

Resource Sharing: Distributed operating systems enable the sharing of resources


such as files, printers, and storage devices across the network. Users from different
machines can access and utilize these resources transparently.

Location Transparency: Users and applications can access resources and services
without needing to be aware of their physical locations. This simplifies resource
access and management.

Scalability: Distributed operating systems can be easily scaled by adding more


machines to the network, making them suitable for handling large and growing
workloads.

Fault Tolerance: Distributed systems are designed to be fault-tolerant. If one


machine or component fails, the system can continue to operate by routing tasks
and data to available nodes.

Concurrent Processing: Distributed operating systems support concurrent


processing, allowing multiple tasks or processes to run in parallel on different
machines, enhancing overall system performance.

Communication: Communication mechanisms are a critical component of


distributed systems. They facilitate inter-process communication (IPC) and data
sharing across networked machines.

18
Advantages:

High Availability: Distributed operating systems are designed to ensure high


availability of services and resources. If one machine or server fails, others can
take over, reducing downtime.

Improved Performance: Distributed systems can improve performance by


distributing computational workloads across multiple machines, allowing for
parallel processing.

Resource Utilization: Resource utilization is optimized as distributed systems


make efficient use of available hardware and software resources across the
network.

Scalability: Distributed systems can grow to accommodate increasing demands by


adding more machines or servers, making them suitable for large-scale applications
and services.

Geographical Distribution: These systems can span multiple geographical


locations, enabling organizations to build and maintain services and applications
across a wide area or globally.

Considerations:

Complexity: Designing, implementing, and managing distributed operating


systems is complex. Issues related to communication, synchronization, and
consistency must be carefully addressed.

Security: Distributed systems are susceptible to various security threats, such as


unauthorized access, data breaches, and distributed denial-of-service (DDoS)
attacks. Robust security mechanisms are necessary.

Consistency: Ensuring data consistency and maintaining a coherent view of data


across distributed nodes can be challenging, especially in the presence of network
failures or delays.

Communication Overhead: Communication between nodes in a distributed


system can introduce latency and overhead, affecting overall system performance.

19
Interoperability: Compatibility and interoperability issues may arise when
different machines or platforms with varying hardware and software configurations
are part of the distributed system.

Examples of distributed operating systems include Google's distributed


infrastructure for services like Google Search and Google Maps, distributed file
systems like Hadoop HDFS, and cloud computing platforms like Amazon Web
Services (AWS) and Microsoft Azure.

Real-Time Operating System


A real-time operating system (RTOS) is an operating system designed to meet strict
timing constraints and provide deterministic behavior for real-time applications.
Real-time systems are used in situations where timely and predictable responses to
external events are critical, such as in embedded systems, industrial automation,
robotics, aerospace, automotive, and medical devices. Here are some key
characteristics, advantages, and considerations related to real-time operating
systems:
Characteristics:

Determinism: RTOSs prioritize deterministic behavior, ensuring that tasks or


processes are completed within specified time frames. This predictability is
essential for real-time applications.

Task Scheduling: Real-time operating systems use task scheduling algorithms that
prioritize tasks based on their importance and deadlines. Tasks are scheduled to
run at specific times or in response to external events.

Low Latency: RTOSs aim to minimize system response times and provide low-
latency communication between tasks or processes. This is crucial for applications
that require rapid responses.

Resource Management: Real-time systems efficiently manage system resources,


such as CPU time, memory, and I/O devices, to ensure that critical tasks are not
delayed by non-critical ones.

Hard and Soft Real-Time: RTOSs can be categorized into hard real-time and soft
real-time systems. Hard real-time systems have strict and unalterable timing
requirements, while soft real-time systems prioritize meeting deadlines but can
tolerate occasional delays.

20
Advantages:

Predictable Timing: RTOSs guarantee predictable and reliable timing behavior,


which is essential for applications like automotive control systems, medical
devices, and industrial automation.

High Reliability: Real-time systems are designed for high reliability and fault
tolerance, making them suitable for critical applications where failure is not an
option.

Optimized Resource Usage: RTOSs efficiently allocate and manage resources,


reducing wastage and ensuring that resources are available for critical tasks when
needed.

Improved Performance: By minimizing system overhead and providing low-


latency communication, RTOSs can improve the overall performance of real-time
applications.

Safety-Critical Applications: RTOSs are commonly used in safety-critical


applications, such as avionics and medical devices, where human safety is a
primary concern.
Considerations:
Complexity: Developing and debugging real-time systems can be more complex
than non-real-time systems due to the need for precise timing control and
deterministic behavior.

Resource Constraints: RTOSs often run on embedded systems with limited


resources. Optimizing resource usage is crucial to meet real-time requirements.

Testing and Verification: Rigorous testing and verification processes are essential
to ensure that real-time systems meet their timing constraints and operate reliably.

Scalability: Real-time systems may have limitations in terms of scalability, as


adding more tasks or increasing system complexity can introduce challenges in
maintaining timing guarantees.

Portability: Real-time applications developed for one RTOS may not be easily
portable to another, as the timing behavior and APIs can vary significantly between
RTOSs.

21
Common examples of real-time operating systems include VxWorks, QNX,
FreeRTOS, and RTEMS. These systems are widely used in various industries
where precise timing and reliability are critical for the success of applications.

Services & Functions of Operating System

• Program execution
• Input Output Operations
• Communication between Process
• File Management
• Memory Management
• Process Management
• Secuirity and Privacy
• Resource Management
• User Interface
• Networking
• Error handling
• Time Management

Program Execution
It is the Operating System that manages how a program is going to be executed. It
loads the program into the memory after which it is executed. The order in which
they are executed depends on the CPU Scheduling Algorithms. A few are FCFS,
SJF, etc. When the program is in execution, the Operating System also handles
deadlock i.e. no two processes come for execution at the same time. The Operating
System is responsible for the smooth execution of both user and system programs.
The Operating System utilizes various resources available for the efficient running
of all types of functionalities.
Input Output Operations
Operating System manages the input-output operations and establishes
communication between the user and device drivers. Device drivers are software
that is associated with hardware that is being managed by the OS so that the sync
between the devices works properly. It also provides access to input-output devices
to a program when needed.

22
Communication between Processes
The Operating system manages the communication between processes.
Communication between processes includes data transfer among them. If the
processes are not on the same computer but connected through a computer network,
then also their communication is managed by the Operating System itself.

File Management
The operating system helps in managing files also. If a program needs access to a
file, it is the operating system that grants access. These permissions include read-
only, read-write, etc. It also provides a platform for the user to create, and delete
files. The Operating System is responsible for making decisions regarding the
storage of all types of data or files, i.e, floppy disk/hard disk/pen drive, etc. The
Operating System decides how the data should be manipulated and stored.

Memory Management
Let’s understand memory management by OS in simple way. Imagine a cricket
team with limited number of player . The team manager (OS) decide whether the
upcoming player will be in playing 11 ,playing 15 or will not be included in team
, based on his performance . In the same way, OS first check whether the upcoming
program fulfil all requirement to get memory space or not ,if all things good, it
checks how much memory space will be sufficient for program and then load the
program into memory at certain location. And thus , it prevents program from using
unnecessary memory.

Process Management
Let’s understand the process management in unique way. Imagine, our kitchen
stove as the (CPU) where all cooking(execution) is really happen and chef as the
(OS) who uses kitchen-stove(CPU) to cook different dishes(program). The
chef(OS) has to cook different dishes(programs) so he ensure that any particular
dish(program) does not take long time(unnecessary time) and all dishes(programs)
gets a chance to cooked(execution) .The chef(OS) basically scheduled time for all
dishes(programs) to run kitchen(all the system) smoothly and thus cooked(execute)
all the different dishes(programs) efficiently.

Security and Privacy


Security : OS keep our computer safe from an unauthorised user by adding security
layer to it. Basically, Security is nothing but just a layer of protection which protect
computer from bad guys like viruses and hackers. OS provide us defences like
firewalls and anti-virus software and ensure good safety of computer and personal
information.
23
Privacy : OS give us facility to keep our essential information hidden like having
a lock on our door, where only you can enter and other are not allowed . Basically
it respect our secrets and provide us facility to keep it safe.
Resource Management
System resources are shared between various processes. It is the Operating system
that manages resource sharing. It also manages the CPU time among processes
using CPU Scheduling Algorithms. It also helps in the memory management of the
system. It also controls input-output devices. The OS also ensures the proper use
of all the resources available by deciding which resource to be used by whom.
Networking
This service enables communication between devices on a network, such as
connecting to the internet, sending and receiving data packets, and managing
network connections.
Error Handling
The Operating System also handles the error occurring in the CPU, in Input-Output
devices, etc. It also ensures that an error does not occur frequently and fixes the
errors. It also prevents the process from coming to a deadlock. It also looks for any
type of error or bugs that can occur while any task. The well-secured OS sometimes
also acts as a countermeasure for preventing any sort of breach of the Computer
System from any external source and probably handling them.
Time Management
Imagine traffic light as (OS), which indicates all the cars(programs) whether it
should be stop(red)=>(simple queue) , start(yellow)=>(ready
queue),move(green)=>(under execution) and this light (control) changes after a
certain interval of time at each side of the road(computer system) so that the
cars(program) from all side of road move smoothly without traffic.

References:
https://www.os-book.com/OS8/os8c/slide-dir/index.html
https://www.geeksforgeeks.org/

24

You might also like