0% found this document useful (0 votes)
2 views134 pages

Module 1.Pptx

An operating system (OS) is a crucial program that manages hardware and software resources on a computer, enabling the execution of applications. It performs essential tasks such as handling input/output operations, managing files, and controlling peripheral devices. Various types of operating systems exist, including batch, multiprogramming, multiprocessing, multitasking, network, and real-time systems, each designed to optimize resource utilization and user experience in different computing environments.

Uploaded by

arul_vmax
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views134 pages

Module 1.Pptx

An operating system (OS) is a crucial program that manages hardware and software resources on a computer, enabling the execution of applications. It performs essential tasks such as handling input/output operations, managing files, and controlling peripheral devices. Various types of operating systems exist, including batch, multiprogramming, multiprocessing, multitasking, network, and real-time systems, each designed to optimize resource utilization and user experience in different computing environments.

Uploaded by

arul_vmax
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Operating Systems

What is an Operating System?

• The most important


program that runs on your
computer. It manages all
other programs on the
machine.

• Every PC has to have one


to run other applications or
programs. It’s the first
thing “loaded”.
Operating System
• It performs basic
tasks, such as:

• Recognizing input from


the keyboard or mouse,

• Sending output to
the monitor,
Operating System

• Keeping track of
files and directories
on the disk, and

• Controlling
peripheral devices
such as disk drives
and printers.
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
Users
People, machines, other computers
Abstract View of Components of Computer
Where does the OS fit in?
What Operating Systems Do
• Depends on the point of view
• Users want convenience, ease of use
and good performance
• Don’t care about resource utilization
• But shared computer such as
mainframe or minicomputer must keep
all users happy
• Operating system is a resource allocator and
control program making efficient use of HW and
managing execution of user programs
What Operating Systems Do
• Users of dedicate systems such as
workstations have dedicated resources but
frequently use shared resources from
servers
• Mobile devices like smartphones and
tables are resource poor, optimized for
usability and battery life
• Mobile user interfaces such as touch screens, voice
recognition
• Some computers have little or no user
interface, such as embedded computers
in devices and automobiles
• Run primarily without user intervention
Operating System Definition
• No universally accepted definition
• “The one program running at all times on
the computer” is the kernel, part of the
operating system
• Everything else is either
• A system program (ships with the operating system, but not part of the
kernel) , or
• An application program, all programs not associated with the operating
system
• Today’s OSs for general purpose and
mobile computing also include middleware
– a set of software frameworks that
provide additional services to application
developers such as databases,
multimedia, graphics
Interrupt Handling
• The operating system preserves the
state of the CPU by storing the
registers and the program counter
• Determines which type of interrupt
has occurred:
• Separate segments of code
determine what action should be
taken for each type of interrupt
Interrupt-drive I/O Cycle
Types of Operating Systems

Types of Operating Systems
• 1. Batch Operating System
•2. Multiprogramming Operating
System
•3. Multiprocessing Operating
System
•4. Multitasking Operating System
•5. Network Operating System
•6. Real Time Operating System
•7. Time-Sharing Operating System
•8. Distributed Operating System
Batch Operating System
• In the 1970s, Batch processing was viral.
• In this technique, similar types of jobs were
batched together and executed in time.
• People were used to having a single
computer, which was called a mainframe.
• In the Batch operating system, access is
given to more than one person; they submit
their respective jobs to the system for
execution.
• The system puts all of the jobs in a queue
on the basis of first come, first serve and
then executes the jobs one by one. The
users collect their respective output when all
the jobs get executed.
Batch Operating System

The purpose of this operating system was mainly to transfer control


from one job to another as soon as the job was completed. It contained
a small set of programs called the resident monitor that always resided
in one part of the main memory. The remaining part is used for servicing
jobs.
Advantages of Batch OS

• It has increased efficiency, like a resident monitor that eliminates CPU idle
time between jobs to enable it to smoothen the switching of tasks.
• The automatic handling of the processing of jobs means that users should
not take control to intervene in whatever is going on while running or
executing tasks.
• The resources, such as the CPU and the memory, are utilized and not left
idle.
• It goes well with the payroll as well because it keeps processing jobs in
batches without any time wastage and hard work.
• It can also perform even very huge complex jobs without any intermission
because it simply streams without any intermission, even when the task is
excessively intensive.
• Group jobs as 'batches' remove most of the manual setup that had to be
done in between individual tasks, thereby saving time.
• It logs and deals with errors at the time when the batch is over. This allows
the system to run even without intermissions.
Disadvantages of Batch OS

1. Starvation
2. Not Interactive
3. Delayed Output
4. Difficult to Debug
5. It Requires Knowledge of Job Scheduling
6. Large Jobs Cause Delays
Multiprogramming Operating System

• Multiprogramming is an extension to batch processing where the CPU is


always kept busy. Each process needs two types of system time: CPU time
and IO time.
• In a multiprogramming environment, when a process does its I/O, The CPU
can start the execution of other processes. Therefore, multiprogramming
improves the efficiency of the system.
Advantages of Multiprogramming OS

• Throughout the system, it increased as the CPU always had one program to
execute.
• Response time can also be reduced.
• Multiprogramming maximizes the utilization of resources like memory, I/O
devices, and processing power since more than one program can be kept alive
at any time.
• Since several jobs are being processed in parallel, significantly more tasks
could be completed within a certain amount of time, thus enhancing the overall
throughput of the system.
• During times when a program is waiting for I/O operations, the processor does
not go idle since it jumps on to another task to continue processing.
• The system can support both short and long tasks to be executed in parallel,
which makes for a more dynamic and productive processing environment.
Disadvantages of Multiprogramming
OS
• Multiprogramming systems provide an environment in which various systems
resources are used efficiently, but they do not provide any user interaction with
the computer system.
• Multiple programs increase system complexity, as the operating system needs
to manage multiple processes, memory management, and scheduling.
• It requires more memory compared to less sophisticated operating systems
because multiple programs run in memory simultaneously.
• The operating system has to switch between the running processes
continuously, and this leads to scheduling overhead and reduces performance.
• As several concurrent operations access shared resources simultaneously, the
system is likely to experience deadlocks: two or more processes waiting for
each other for further actions.
• Resource contention due to competition for scarce resources could degrade
performance.
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, several processors execute procedures in collaboration.
You can even split a procedure into parts that run in parallel.
• Since several processors work concurrently, more tasks are completed faster.
• Multiprocessing enhances the speed at which the system executes since tasks
scatter the processors, minimizing the waiting period for procedures.
• If one processor is faulty, the others will continue running, hence enhancing
system reliability.
Working

• In a Multiprocessing OS, concurrent execution of processes by multiple


processors is done.
• The processes are divided and allotted to different processors for parallel
computing.
• Thus, system performance is enhanced due to high throughput, good
resource allocation, smooth distribution of workload on the processors, and
fault tolerance.
• If one of its processors fails, then the system can continue and reallocate its
tasks to other processors, and thus, the operation can be done smoothly.
Types of Multiprocessing OS
• Symmetric Multiprocessing:
• In SMP, every processor has the same copy of the operating system; they
share memory and I/O devices. Each processor can do any task; it would
ensure that the workload is balanced among all of them.
• Each processor can continue any work; if one fails or stops functioning, others
can continue without affecting the system's performance.
• Asymmetric Multiprocessing:
• In AMP, one processor controls the system. It manages what tasks are to be
given to the other processors.
• The master processor provides service to the operating system, whereas other
processors are slaves and may perform specific work for the system.
• This configuration of the system keeps it very simple but sometimes causes
bottlenecks if the master processor gets too loaded
Advantages of Multiprocessing OS
• Increased Reliability:
• Because multiple processors are present, if one fails,
others may take over it, thus stabilizing the system.
• Increased Throughput: More jobs can be processed at
the same time by these multiple processors than by a
single processor, thereby increasing the speed of
execution.
• Efficient Resource Utilization: It acts more
productively upon the utilization of resources like CPU,
memory, and I/O devices.
• Parallelism: Many processes can run parallel, which
increases the speed of execution to a large extent.
• Scalability: As the workload increases, more
processors can be added to enhance performance.
Disadvantages of Multiprocessing os
• Complexity: There is a rise in the complexity of
the system while dealing with a number of
processors and proper distribution of tasks.
• Increased Cost: Hardware equipment added in
multiprocessing systems increases their cost
• Communication Overhead: Generally,
communication among processors results in
overhead and provides a slight reduction in
efficiency.
• Software Compatibility Problems: Generally,
most software is not designed to operate
properly with multiprocessing systems.
Multitasking Operating System
Multitasking Operating System
• Multiprogramming extended the multitasking operating
system concept, which enabled various programs to
run simultaneously.
• It provided a user with the ability to do more than one
task on the same system at a given time by sharing
various system resources like CPU time among
different processes.
• This assures efficient use of the CPU because it shifts
between tasks quickly; hence, it seems that they are
running parallel.
• There are multitasking systems in almost all personal
computers where, for example, a user might run a web
browser, a music player, and a document editor all at
once.
Types of Multitasking Operating
System
• Cooperative Operating System:
i.
• In a co-operating system, the tasks voluntarily relinquish control of the CPU
so other tasks can execute.
• A process runs until it completes or explicitly relinquishes control. An
operating system has a relatively small amount of control over when a
process will context switch.
• The operating system must rely on the processes to co-operate with each
other.
• Such a system may lead to problems if a process does not yield control and
causes others to be blocked.
• ii. Preemptive Operating System:
• In this system, the operating system has full control over how it allocates the
CPU.
• In this system, it can interrupt the process in the middle of its execution and
switch to another based on previously defined criteria for scheduling such as
priority, time slices, or deadlines.
• This means that within such a system, better multitasking and
responsiveness are ensured, and there is no event of allowing any single
process to monopolize the CPU.
Advantages of the Multitasking OS
• This system can handle multiple users or tasks at once;
therefore, it is best utilized in multi-user environments.
• The memory is allocated dynamically and efficiently to
various tasks so that there is optimal usage of system
resources.
• More applications can be run at the same time, which
increases productivity because tasks are executed
concurrently.
• It provides for rapid shifts between tasks, therefore,
shortening the response time for the user.
• Because the system keeps running by switching
between tasks, CPU time and other system resources
are consumed more effectively.
Disadvantages of Multitasking OS
• The multitasking environment makes a number of
processors busier at the same time; that is, the CPU
generates more heat.
• The managing of different tasks all together requires a
more sophisticated algorithm, which becomes complex
to administer.
• Running too many applications at the same time can
stress the system to a point where performance
degrades.
• In this scenario, multiple tasks will be competing for the
same resources, thereby delaying them.
• Multitasking systems usually require more powerful
hardware, especially in terms of memory and
processing power, to run without a hitch.
Network Operating System
Network Operating System
• A NOS, which is an abbreviation for network operating system, is
an operating system that exists to allow computers to
communicate and share resources over a network, almost like
the backbone of networking, ensuring that different devices (like
computers, printers, and even servers) can always connect and
interact seamlessly.
• NOS allows devices not only to communicate but also to share
software applications, files, and hardware so everyone in the
network can have what they need without a complicated setup.
Examples of network operating systems are Microsoft Windows
Server, Linux, and Novell NetWare.
• The enterprise saves money since resources like printers or
storage drives do not have to be duplicated for every user as
they are shared, making the system in its whole aspect easier
and cheaper to operate. It is the tool that keeps the network
running smoothly, making it possible for connected devices to
work together in collaboration and productivity.
Types of Network Operating System
Advantages of Network OS
• Since network applications are split between the clients and the
servers, this minimizes the total number of communications on
the network, thus increasing performance.
• Configuring as well as maintaining an NOS is less expensive than
other elaborate systems since shared resources reduce
duplication needed.
• A NOS grants centralized control over data, security, and
resource management. That means that administrations may
easily manage a large network.
• Scaling of the systems can be made easily in terms of
organization growth. Easly, new clients or servers can be added
without reconfiguring the system.
• It shares resources like printers, files, and applications, which
reduces hardware and software redundancy.
Disadvantage of Network OS
• If one node or server fails, it affects the whole system, and
network functions will be interrupted. Hence, reliability is
important.
• Security needs to be robust so that unauthorized access is
restricted. Complex security measures demand constant
monitoring and updating.
• The skilled network administrators involved will handle system
performance, security configurations, and troubleshooting.
• When the network size is too large, and traffic is heavy, it
degrades with time if it's not monitored and maintained, which is
constantly demanding attention.
• This is because an attacker, once able to gain access to one
server, comes close to achieving his goal for multiple resources
contained in the entire network.
Disadvantage of Network OS
• If one node or server fails, it affects the whole system, and
network functions will be interrupted. Hence, reliability is
important.
• Security needs to be robust so that unauthorized access is
restricted. Complex security measures demand constant
monitoring and updating.
• The skilled network administrators involved will handle system
performance, security configurations, and troubleshooting.
• When the network size is too large, and traffic is heavy, it
degrades with time if it's not monitored and maintained, which is
constantly demanding attention.
• This is because an attacker, once able to gain access to one
server, comes close to achieving his goal for multiple resources
contained in the entire network.
Real Time Operating System
Real Time Operating System
• A Real-Time Operating System is conceived as a design for
tasks that need to be completed under very strict time
constraints.
• In such systems, each task has a clear deadline; failing to
achieve completion by that deadline can, in turn, bring about
significant consequences.
• Completion by the deadline may result in either a critical failure
or something no longer of relevance, again depending on the
application, thus leading to inefficiencies or even dangers in its
application.
• Real-time systems are widely used in areas where timing is the
issue, for example, the manufacturing of medical equipment,
automotive controls, or even industrial automation.
• For instance, in an anti-lock braking system (ABS) in a car, the
response must come in milliseconds in order to assure safety.
Types of Real Time Operating System
Real Time Operating System
i. Hard Real-Time Systems
In hard real-time systems, it is absolutely
impossible to fail to meet a deadline. The
consequence of missing a deadline may be
disastrous, even failing the system or loss of life.
Examples: Flight navigation and control aircraft,
Medical devices, like pacemakers.
It is required that strict guarantees be established
so that the jobs will definitely be executed on time.
Failure can be very disastrous.
Real Time Operating System
• ii. Soft Real-Time Systems
• In this system type, occasional missed deadlines may
not result in catastrophic failure but can degrade the
performance or usability of the system.
• Examples: Video streaming (occasional delays or
buffering are acceptable) and online transaction
systems (like bank ATMs, where slight delays are
tolerable).
• The system may still be functionally operational and
workable even if some deadline misses do occur,
though the performance would be adversely affected.
This has focused on efficiency and the removal of
delays rather than absolute precision.
Real Time Operating System
iii. Firm Real-Time Systems
In between hard and soft real-time systems, there
are firm real-time systems. In that case, there is no
crash, but the result of the task is worthless when it
doesn't meet the deadline. There's a minimum kind
of penalty, but the value of the completion of the
task goes significantly down if it is not made in
time.
Examples: Automated stock trading systems (late
transactions lose relevance) and some
e-commerce systems (for example, offers run out).
Advantages of Real-Time OS
• Real-time applications are quite easy to design,
develop, and implement under a real-time
operating system.
• Maximum utilization of devices and systems in a
Real-Time Operating System.
• Fast response to events.
• High reliability in the performance of time-critical
operations.
• Strict scheduling ensures the predictable
execution of tasks.
Disadvantages of Real-Time Os
• Real-time operating systems are very
expensive to design.
• Real-time operating systems are very
resource-intensive and consume critical
CPU cycles.
• Less multitasking support.
• Lacks adaptability to new functions.
• At times, it demands specific hardware.
Disadvantages of Real-Time Os
• Real-time operating systems are very
expensive to design.
• Real-time operating systems are very
resource-intensive and consume critical
CPU cycles.
• Less multitasking support.
• Lacks adaptability to new functions.
• At times, it demands specific hardware.
Time-Sharing Operating System
• A Time-Sharing Operating System allows multiple users
to access the system concurrently, and this occurs by
allocating a small time slice or quantum to each task.
The CPU switches between the tasks so rapidly that
the users feel their programs have been running
concurrently.
Time-Sharing Operating System
• Here's how it works:
• Scheduling: Operating systems use scheduling
algorithms in order to allow a particular block of CPU
time, referred to as a time slice, for each user or
process. After each time slice, the CPU shifts to the
following process in the queue.
• Multiprogramming: The TSOS uses multiprogramming,
where several programs are resident in the memory at
any given time. This allows several programs to be
executed simultaneously.
• Context Switching: Whenever the CPU needs to switch
to another task, the operating system saves the state of
the current process and loads the state of the next
process. It is a process referred to as context switching.
That lets a task be resumed exactly where it left off.

Advantages of Time-Sharing OS
• The time-sharing operating system facilitates effective
utilization and sharing of resources.
• This system helps decrease CPU idle and response
time.
• It allows various users to access and interact with their
programs at the same time, and it leads to greater
productivity.
• Time-sharing assures better memory management
because it swaps programs into and out of main
memory efficiently.
• An interactive computing environment provides users
with real-time access to their programs and files.
Disadvantages of Time-Sharing OS
• The time-sharing operating system facilitates effective
utilization and sharing of resources.
• This system helps decrease CPU idle and response
time.
• It allows various users to access and interact with their
programs at the same time, and it leads to greater
productivity.
• Time-sharing assures better memory management
because it swaps programs into and out of main
memory efficiently.
• An interactive computing environment provides users
with real-time access to their programs and files.
Distributed Operating System
• The Distributed Operating system is not installed on a
single machine; it is divided into parts, and these parts
are loaded on different machines. A part of the
distributed Operating system is installed on each
machine to make their communication possible.
Distributed Operating System
• The Distributed Operating system is not installed on a
single machine; it is divided into parts, and these parts
are loaded on different machines. A part of the
distributed Operating system is installed on each
machine to make their communication possible.
Advantages of Distributed OS
• The distributed operating system offers
resource sharing.
• This is a fault-tolerant system.
• Scalability is achieved and easily new
nodes can be added to the system.
• Distributed task execution improves its
performance.
• Parallel processing helps in increasing the
speed of job execution and enhances
efficiency in getting results.
Disadvantages of Distributed OS
• Protocol overhead might control
computation costs.
• The managing of the system is
complex as it works in distributed.
• Security may prove difficult on
multiple nodes.
• The system highly depends on
network stability for it to run without
hassles.
Functions of Operating
Systems

71
Starting the computer - Booting Process

72
OS - Wake up call

• When you turn on the power


to a PC, the first program that
runs is a set of instructions
kept in the computer's
read-only memory (ROM).
OS - Wake up Call

• It checks to make sure


everything is
functioning properly.

• It checks the CPU,


memory, and basic
input-output systems
(BIOS) for errors.
OS – Wake up Call

• Once successful, the


software will begin to
activate the
computer's disk
drives.

• It then finds the first


piece of the operating
system: the bootstrap
loader.
OS - Booting the PC
• The bootstrap loader is a
small program that has a
single function: It loads the
operating system into
memory and allows it to
begin operation.
OS - Booting the PC
• The bootstrap loader sets up
the small driver programs that
interface with and control the
various hardware.

•It sets up the divisions of


• memory
• user information, and
• applications.
OS - Booting the PC
• It establishes the
data structures
needed to
communicate within
and between the
subsystems and
applications of the
computer.

• Then it turns control


of the computer over to
the operating system.
Providing User Interface

79
Virtualization
Allows operating systems to run
applications within other OSes
Vast and growing industry

Emulation used when source CPU type


different from target type (i.e. PowerPC
to Intel x86)
Generally slowest method
When computer language not compiled to native code – Interpretation

Virtualization – OS natively compiled for


CPU, running guest OSes also natively
compiled
Consider VMware running WinXP guests, each running applications, all on native
WinXP host OS
VMM (virtual machine Manager) provides virtualization services
Virtualization (cont.)
Use cases involve laptops and
desktops running multiple OSes for
exploration or compatibility
Apple laptop running Mac OS X host, Windows as a guest
Developing apps for multiple OSes without having multiple systems
Quality assurance testing applications without having multiple systems
Executing and managing compute environments within data centers

VMM can run natively, in which case


they are also the host
There is no general-purpose host then (VMware ESX and Citrix XenServer)
Computing Environments - Virtualization
Operations of Operating Systems

● Memory Management
● Processor Management
● Device Management
● File Management
● Protection and Security

83
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.84
OS - Memory Storage and Management
1. Each process must have
enough memory in which
to execute, and

It can neither run into the


memory space of another
process,

Nor be run into by another


process.
OS - Memory Storage and Management

1. The different types of


memory in the system must
be used properly so that each
process can run most
effectively.
Cache Memory
• Cache - A section of a
computer's memory
which temporarily
retains recently
accessed data in order
to speed up repeated
access to the same
data.

• It provides rapid
access without
having to wait for
systems to load.
RAM Memory
• Random access
memory (RAM) is
the best known form
of computer
memory.

• RAM is considered
"random access" because
you can access any
memory cell directly if
you know the row and
column that intersect at
RAM Memory
• The more RAM your computer has,
the faster programs can function.
The two main types are called
DRAM and SRAM. SRAM is faster
than DRAM, but, more expensive.

Remember, that if the power is turned off,


then all data left in RAM, that has not been
saved to the hard drive, is lost.
Virtual Memory
• Virtual Memory – a method of
using hard disk space to provide
extra memory. It simulates additional
RAM.

• In Windows, the
amount of virtual
memory available,
equals the amount of
free RAM plus the
amount of disk space
allocated to the swap
file.
Virtual Memory – Swap File

A swap file is an area of your hard disk that is


set aside for virtual memory. Swap files can be
either temporary or permanent.
Manages Memory

Monitoring the
Contents of Releasing Data
Memory when process
is done

Allocating and Optimizing the


Deallocating use of RAM
data
92
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.
93
Process Management

94
Device Management

● Keeps tracks of all devices. Program


responsible for this task is known as
the I/O controller.
● Decides which process gets the
device when and for how much time.
● Allocates the device in the efficient
way.
● De-allocates devices.
95
Input output Management

96
File Management

● Keeps track of information,


location, uses, status etc. The
collective facilities are often known
as file system.
● Decides who gets the resources.
● Allocates the resources.
● De-allocates the resources.

97
File Management

98
Monitor Performance

99
Protection and Security

100
User Operating System Interface - GUI

User-friendly desktop metaphor


interface
• Usually mouse, keyboard, and monitor
• Icons represent files, programs, actions, etc
• Various mouse buttons over objects in the interface cause various actions
(provide information, options, execute function, open directory (known as a
folder)
• Invented at Xerox PARC

Many systems now include both CLI


and GUI interfaces
• Microsoft Windows is GUI with CLI “command” shell
• Apple Mac OS X is “Aqua” GUI interface with UNIX kernel underneath and
shells available
• Unix and Linux have CLI with optional GUI interfaces (CDE, KDE, GNOME)
Touchscreen Interfaces

Touchscreen
devices require new
interfaces
●Mouse not possible or not desired
●Actions and selection based on gestures
●Virtual keyboard for text entry
●Voice commands.
The Mac OS X GUI
Operating System Structure
General-purpose OS is very large
program
Various ways to structure ones
• Simple structure – MS-DOS
• More complex -- UNIX
• Layered – an abstraction
• Microkernel -Mach
Non Simple Structure -- UNIX
UNIX – limited by hardware functionality, the
original UNIX operating system had limited
structuring. The UNIX OS consists of two
separable parts
• Systems programs
• The kernel
• Consists of everything below the system-call
interface and above the physical hardware
• Provides the file system, CPU scheduling,
memory management, and other
operating-system functions; a large number
of functions for one level
Traditional UNIX System Structure
Beyond simple but not fully layered
Layered Approach
• The operating system is
divided into a number of
layers (levels), each built
on top of lower layers.
The bottom layer (layer
0), is the hardware; the
highest (layer N) is the
user interface.
• With modularity, layers
are selected such that
each uses functions
(operations) and services
of only lower-level layers
Microkernel System Structure
• Moves as much from the kernel
into user space
• Mach example of microkernel
• Mac OS X kernel (Darwin) partly based on Mach

• Communication takes place


between user modules using
message passing
• Benefits:
• Easier to extend a microkernel
• Easier to port the operating system to new architectures
• More reliable (less code is running in kernel mode)
• More secure

• Detriments:
• Performance overhead of user space to kernel space communication
Microkernel System Structure
Modules

• Many modern operating


systems implement
loadable kernel modules
• Uses object-oriented approach
• Each core component is separate
• Each talks to the others over known interfaces
• Each is loadable as needed within the kernel
• Overall, similar to layers
but with more flexible
• Linux, Solaris, etc
Solaris Modular Approach
Hybrid Systems
• Most modern operating
systems are actually not one
pure model
• Hybrid combines multiple approaches to address performance,
security, usability needs
• Linux and Solaris kernels in kernel address space, so monolithic, plus
modular for dynamic loading of functionality
• Windows mostly monolithic, plus microkernel for different subsystem
personalities

• Apple Mac OS X hybrid,


layered, Aqua UI plus Cocoa
programming environment
• Below is kernel consisting of Mach microkernel and BSD Unix parts,
plus I/O kit and dynamically loadable modules (called kernel
extensions)
Mac OS X Structure
iOS

• Apple mobile OS for


iPhone, iPad
• Structured on Mac OS X, added
functionality
• Does not run OS X applications natively
• Also runs on different CPU
architecture (ARM vs. Intel)
• Cocoa Touch Objective-C API for
developing apps
• Media services layer for graphics, audio,
video
• Core services provides cloud computing,
databases
• Core operating system, based on Mac OS X
kernel
Android
• Developed by Open Handset Alliance
(mostly Google)
• Open Source

• Similar stack to IOS


• Based on Linux kernel but modified
• Provides process, memory, device-driver management
• Adds power management

• Runtime environment includes core


set of libraries and Dalvik virtual
machine
• Apps developed in Java plus Android API
• Java class files compiled to Java bytecode then translated to executable than runs
in Dalvik VM

• Libraries include frameworks for web


browser (webkit), database (SQLite),
multimedia, smaller libc
Android Architecture
Okay – So Now What?
Thank You:)

134

You might also like