Module 1_ Fundamentals of Operating System
Module 1_ Fundamentals of Operating System
Operating System
-By
Asst Prof Rohini Sawant
What is an OS?
● An operating system is software that manages a computer’s hardware.
● It also provides a basis for application programs and acts as an intermediary
between the computer user and the computer hardware.
● Operating systems are everywhere, from cars and home appliances that
include “Internet of Things” devices, to smart phones, personal computers,
enterprise computers, and cloud computing environments.
What is an OS?
● A program that acts as an intermediary between a user of a computer and the
computer hardware
● Operating system goals:
a. Execute user programs and make solving user problems
easier
b. Make the computer system convenient to use
c. Use the computer hardware in an efficient manner
COMPUTER SYSTEM STRUCTURE
Computer system can be divided into four components:
● Hardware – provides basic computing resources
● CPU, memory, I/O devices
● Operating system: Controls and coordinates use of hardware
among various applications and users
● Application programs: define the ways in which the system
resources are used to solve the computing problems of the
users Word processors, compilers, web browsers, database
systems, video games
FOUR COMPONENTS OF A COMPUTER SYSTEM
FUNCTIONS OF OPERATING SYSTEM
PROCESS MANAGEMENT
● In multiprogramming environment, the OS decides which process gets the
processor when and for how much time. This function is called process
scheduling. An Operating System does the following activities for processor
management −
● Keeps tracks of processor and status of process. The program responsible for
this task is known as traffic controller.
● Allocates the processor (CPU) to a process.
● De-allocates processor when a process is no longer required.
FUNCTIONS OF OPERATING SYSTEM
MEMORY MANAGEMENT: refers to management of Primary Memory or Main
Memory. Main memory is a large array of words or bytes where each word or byte has its
own address.
● Main memory provides a fast storage that can be accessed directly by the CPU. For a
program to be executed, it must in the main memory.
● An Operating System does the following activities for memory management
Keeps tracks of primary memory, i.e., what part of it are in use by whom, what part are
not in use.
In multiprogramming, the OS decides which process will get memory when and how
much.
Allocates the memory when a process requests it to do so.
De-allocates the memory when a process no longer needs it or has been terminated.
FUNCTIONS OF OPERATING SYSTEM
FILE MANAGEMENT-
● A file system is normally organized into directories for easy navigation
and usage. These directories may contain files and other directions.
● An Operating System does the following activities for file management
−
● Keeps track of information, location, uses, status etc. The collective
facilities are often known as file system.
● Decides who gets the resources.
● The fundamental operation of the operating system (OS) is to abstract the hardware to the programmer and
user. The operating system provides generic interfaces to services provided by the underlying hardware.
● In a world without operating systems, every programmer would need to know the most intimate details of the
underlying hardware to get anything to run. Worse still, their programs would not run on other hardware, even
if that hardware has only slight differences.
Multitasking
● the operating system is responsible for resource management within the system. Many tasks will be
competing for the resources of the system as it runs, including processor time, memory, disk and user input.
The job of the operating system is to arbitrate these resources to the multiple tasks and allow them access in
an orderly fashion. You have probably experienced when this fails as it usually ends up with your computer
crashing
Role of Operating System in IT
Standardised Interfaces
● Programmers want to write programs that will run on as many different hardware platforms as possible. By
having operating system support for standardised interfaces, programmers can get this functionality.
● For example, if the function to open a file on one system is open(), on another is open_file() and on yet another
openf() programmers will have the dual problem of having to remember what each system does and their
programs will not work on multiple systems.The Portable Operating System Interface (POSIX)[9] is a very
important standard implemented by UNIX type operating systems. Microsoft Windows has similar proprietary
standards.
Security
● On multi-user systems, security is very important. As the arbitrator of access to the system the operating system is
responsible for ensuring that only those with the correct permissions can access resources.
● Often a virus or worm will take advantage of these bugs to access resources it should not be allowed to, such as
your files or network connection; to fight them you must install patches or updates provided by your operating
system vendor.
CLOUD BASED OS
● A cloud-based operating system (OS) is an OS designed to run on cloud computing platforms
instead of directly on local hardware. The cloud OS typically utilizes remote servers, virtual
machines, and cloud infrastructure to provide computing resources and services.
● A cloud operating system, often called a Cloud OS, is a platform designed to manage and deliver
cloud-based services and resources.
● Unlike traditional operating systems installed on a single device or server, a Cloud OS operates
across distributed servers, integrating hardware, software, and networking to enable seamless
cloud computing.
● Also known as a “virtual operating system,” a cloud operating system is a unique type of
operating system that’s been specifically designed to function within a cloud computing and/or
virtualization environment.
● Cloud operating systems are beneficial because they allow the end users to manage their tasks
while on the go through a number of devices, including tablets and netbooks, in a manner similar
to what would be done on a desktop.
CLOUD BASED OS
Key Characteristics of Cloud-Based Operating Systems
● Cloud OS architectures are designed with fault tolerance in mind. Data and services are replicated across
multiple locations to ensure that even if one server or data center goes down, services remain available.
6. Managed Services:
● Many cloud operating systems offer managed services such as storage, databases, networking, and load
balancing, all of which are abstracted and managed for the user. These services can be integrated into
applications without worrying about the underlying infrastructure.
● Since cloud-based operating systems are accessible via the internet, they provide the flexibility of being
used from any device, whether it’s a desktop, laptop, tablet, or smartphone.
1. Internet Dependence:
○ A cloud OS requires a reliable internet connection to function. If there's an issue with connectivity,
users can lose access to their environment and data.
2. Data Privacy and Compliance:
○ Storing sensitive data on remote servers introduces concerns about data privacy and regulatory
compliance. Cloud providers must meet strict standards to ensure data security.
3. Performance Variability:
○ Since cloud OS performance depends on remote servers and internet speed, there can sometimes
be latency issues, especially for applications that require high computational power or real-time
processing.
4. Vendor Lock-In:
○ If you heavily integrate with one cloud provider's ecosystem (like AWS, Azure, or Google Cloud),
it may be difficult to migrate to another vendor later on due to proprietary tools and services.
CLOUD BASED OS
EXAMPLES:
1. Microsoft Azure:
● While Azure is primarily a cloud computing platform, it includes services that function as a cloud OS,
managing virtual machines, databases, storage, networking, and more. It allows for the creation of
scalable cloud-based applications.
2. Amazon Web Services (AWS) EC2:
● AWS EC2 is a cloud service that allows users to run virtualized computing environments. The
underlying operating system might vary, but the core services are based in the cloud and allow for
significant scalability and resource management.
EDGE COMPUTING OS
● Edge computing operating systems (Edge OS) are specialized operating systems designed to manage
computing resources at the "edge" of a network, closer to the data source or end-user, rather than relying
on centralized cloud-based infrastructure.
● Edge computing focuses on processing data locally, reducing latency, improving real-time data
processing, and decreasing the amount of data that needs to be transmitted to central data centers or the
cloud.
● Edge Computing OS is designed to enable efficient, autonomous, and low-latency processing at the edge
of the network, making it essential for applications that require real-time data analysis and
decision-making without relying heavily on the cloud.
● Smart Cities: Traffic lights or surveillance cameras processing data locally for real-time traffic control.
● Industrial IoT: Sensors in factories or oil rigs analyzing data locally to trigger immediate actions or
alerts.
● Autonomous Vehicles: Vehicles processing sensor data in real-time to make driving decisions without
latency.
EDGE COMPUTING OS
Key Characteristics of Edge Computing Operating Systems
1. Low Latency: Edge OS is optimized for real-time processing, making it ideal for use cases where latency is critical (e.g.,
autonomous vehicles, industrial automation, healthcare monitoring, etc.). By processing data close to the source, these
systems reduce delays that would otherwise occur if data had to be sent to distant cloud servers.
2. Distributed Architecture: Unlike traditional cloud systems that rely on a centralized data center, edge computing
involves a distributed network of devices (e.g., IoT sensors, edge gateways, and servers). Edge OS manages these devices
and coordinates the processing of data at the edge nodes.
3. Resource-Constrained Devices: Edge devices (e.g., IoT sensors, gateways, or embedded systems) are often
resource-constrained, meaning they have limited processing power, memory, and storage. Edge OS is designed to work
efficiently within these constraints, enabling powerful processing and management without overwhelming the device.
4. Autonomous Operations: Edge OS is designed to work autonomously or with minimal connection to the central cloud.
This is important for situations where connectivity is intermittent or unreliable, such as in remote or rural locations, or
where the system needs to operate without depending on cloud services.
5. Data Privacy and Security: Edge computing allows for more local data processing, which can help address privacy
concerns. Sensitive data can be processed and analyzed on-site rather than being transmitted to a central server, reducing
the risk of exposure. Additionally, security measures are often implemented locally, ensuring data integrity and secure
communication.
EDGE COMPUTING OS
Benefits of Edge Computing Operating Systems
1. Reduced Latency:
○ Edge OS enables real-time data processing, which significantly reduces latency compared to sending data to
centralized cloud servers for processing.
2. Reduced Bandwidth Usage:
○ By processing and filtering data locally, edge OS minimizes the amount of data that needs to be transmitted to
the cloud, reducing bandwidth costs and network congestion.
3. Improved Security and Privacy:
○ Local data processing reduces the amount of sensitive data transmitted to the cloud, providing better data
privacy and security, especially for critical applications.
4. Autonomy in Remote Locations:
○ Edge computing allows devices to function autonomously in remote locations with intermittent or no
connectivity to the cloud, making it ideal for applications in remote industrial sites, agriculture, or healthcare.
5. Scalability:
○ Edge OS enables distributed, scalable computing across multiple devices, making it easier to expand
applications and services as demand grows.
EDGE COMPUTING OS
Challenges of Edge Computing Operating Systems
1. Complexity of Management:
○ Managing a large fleet of edge devices can be complex, particularly when devices are spread across different
locations with varying levels of connectivity. Remote monitoring and management tools are essential for
simplifying this process.
2. Hardware Limitations:
○ Edge devices often have limited resources in terms of processing power, memory, and storage. Edge OS must
be optimized to run efficiently on these constrained devices, which can limit the types of applications that can
be run at the edge.
3. Security Risks:
○ While edge computing can enhance security by keeping data local, the distributed nature of edge networks can
also introduce vulnerabilities. Ensuring robust security across all devices and communication channels is a
critical challenge.
4. Intermittent Connectivity:
○ Edge devices often face intermittent or unreliable internet connections, which can impact communication with
the cloud and data synchronization. Edge OS must be designed to handle these situations effectively, ensuring
data is stored and processed locally when needed.
EDGE COMPUTING OS
examples of Edge Computing Operating Systems
Examples:
● There are two modes of operation in the operating system to make sure it works
correctly.
● These are user mode and kernel mode.
User Mode
● The system is in user mode when the operating system is running a user application
such as handling a text editor.
● The transition from user mode to kernel mode occurs when the application requests
the help of operating system or an interrupt or a system call occurs.
● The mode bit is set to 1 in the user mode. It is changed from 1 to 0 when switching
from user mode to kernel mode.
Kernel Mode
● The system starts in kernel mode when it boots and after the operating system is loaded,
it executes applications in user mode. There are some privileged instructions that can only
be executed in kernel mode.
● These are interrupt instructions, input output management etc. If the privileged
instructions are executed in user mode, it is illegal and a trap is generated.
● The mode bit is set to 0 in the kernel mode. It is changed from 0 to 1 when switching from
kernel mode to user mode.
● In the above image, the user process executes in the user mode until it gets a
system call.
● Then a system trap is generated and the mode bit is set to zero.
● The system call gets executed in kernel mode.
● After the execution is completed, again a system trap is generated and the
mode bit is set to 1.
● The system control returns to kernel mode and the process execution
continues.
Historical Perspective of Operating Systems
1. Pre-1950s:
○ No Operating Systems: Early computers ran individual programs without an OS.
2. 1950s-1960s:
○ Batch Processing: Early OS like IBM's mainframe systems handled batch jobs in sequences.
3. 1960s-1970s:
○ Time-Sharing OS: OS such as MULTICS allowed multiple users to interact with a single
machine (e.g., UNIX).
4. 1980s:
○ Personal Computers: Introduction of GUI-based systems like MS-DOS, early Windows, and
Apple's Macintosh.
5. 1990s-Present:
○ Modern OS: Evolved into multi-tasking, virtualized, and networked environments (e.g., Linux,
macOS, Windows).
Types of Kernels
● In a Monolithic kernel, the entire operating system runs as a single program in kernel
mode.
● The user services and kernel services are implemented in the same address space.
● A monolithic kernel is a type of operating system architecture where the entire operating
system, including core functions like memory management, process management, device
drivers, and file systems, is integrated into a single large block of code running in a single
address space.
● This design can make the system faster because all components can interact directly, but
it can also make the system more complex and harder to maintain, as a bug in one part of
the kernel can potentially affect the entire system.
Types of OS
Batch operating system
There is an operator which takes similar jobs having same requirement and group
them into batches.
smoothly.
The task can be from single user or from different users also.
Distributed Operating System
Various autonomous interconnected computers communicate each other using a
shared communication network.
Independent systems possess their own memory unit and CPU. These are referred
as loosely coupled systems or distributed systems.
Network Operating System
These systems runs on a server and provides the capability to manage data, users,
groups, security, applications, and other networking functions.
These type of operating systems allows shared access of files, printers, security,
applications, and other networking functions over a small private network.
Real-Time Operating System
Real-time systems are used when there are time requirements are very strict like
missile systems, air traffic control systems, robots etc.
These OSs are meant for the applications where time constraints are very strict and
even the shortest possible delay is not acceptable.
These OSs are for applications where for time-constraint is less strict.
Types of Operating Systems
1. Traditional OS:
○ Examples: Windows, Linux, macOS
○ Use Cases: Desktop computers, laptops, servers.
2. Cloud-Based OS:
○ Examples: Google Chrome OS, AWS OS
○ Use Cases: Cloud computing environments, virtualized services.
3. Containerized OS:
○ Examples: Docker, Kubernetes
○ Use Cases: Microservices architecture, cloud-native applications, DevOps.
4. Edge Computing OS:
○ Examples: Windows IoT, EdgeX Foundry
○ Use Cases: IoT devices, real-time data processing at the network edge.