1
MODULE 1
Overview of operating system
Operating System
2
A program that controls the execution of application
programs
An interface between applications and hardware
Operating System Objectives
3
Convenience
Makes
the computer more convenient to use
Efficiency
Allows
computer system resources to be used in an
efficient manner
Ability to evolve
Permit
effective development, testing, and introduction
of new system functions without interfering with existing
services.
Four Components of a Computer System
4
Computer System Structure
5
Computer system can be divided into four components:
Hardware provides basic computing resources
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
CPU, memory, I/O devices
Word processors, compilers, web browsers, database systems,
video games
Users
People, machines, other computers
Layers of Computer System
6
Layers and Views of a Computer System
Operating System Definition
7
OS is a resource allocator
Manages
all resources
Decides between conflicting requests for efficient and
fair resource use
OS is a control program
Controls
execution of programs to prevent errors and
improper use of the computer
Operating System Definition (Cont.)
8
No universally accepted definition
Everything a vendor ships when you order an
operating system is good approximation
But
varies wildly
The one program running at all times on the
computer is the kernel.
Everything
else is either a system program or an
application program.
Computer Startup
9
bootstrap program is loaded at power-up or
reboot
Typically
stored in ROM or EPROM, generally known as
firmware
Initializes all aspects of system
Loads operating system kernel and starts execution
Operating System
10
Functions same way as ordinary computer software
It
is program that is executed
Operating system relinquishes control of the
processor to execute other programs
Services Provided by the Operating System
11
Program development
Editors
and debuggers
Program execution
Access to I/O devices
Controlled access to files
System access
Services Provided by the Operating System
12
Error detection and response
internal
and external hardware errors
memory
error
device failure
software
errors
arithmetic
overflow
access forbidden memory locations
Services Provided by the Operating System
13
Accounting
collect
statistics
monitor performance
used to anticipate future enhancements
used for billing users (potentially)
14
Operating System as a Resource Manager
Kernel
15
Also called the nucleus
Portion of operating system that is in main memory
Functionalities
Primary function is to mediate access to the computers
resources, including
The Central Processing Unit (CPU)
Random Access Memory
Input/output (I/O) devices
Kernels also usually provide methods for synchronization and
communication between processes called inter-process
communication (IPC).
Memory Management.
Virtual Addressing (paging and/or segmentation)
Evolution of an Operating System
16
When
Hardware
upgrades and new types of hardware
New services
Fixes
Evolution of Operating Systems
17
Serial Processing
No
operating system
Machines run from a console with display lights and
toggle switches, input device, and printer
Schedule tome (book)
Setup included loading the compiler, source program,
saving compiled program, and loading and linking
Evolution of Operating Systems
18
Simple Batch Systems
Monitors
Software
that controls the running programs
Batch jobs together
Program branches back to monitor when finished
Resident monitor is in main memory and available for
execution
Job Control Language (JCL)
19
Special type of programming language
Provides instruction to the monitor
what
compiler to use
what data to use
Hardware Features
20
Memory protection
do
not allow the memory area containing the monitor to
be altered
Timer
prevents
a job from monopolizing the system
Uniprogramming
21
Processor must wait for I/O instruction to complete
before preceding
Multiprogramming
22
When one job needs to wait for I/O, the processor
can switch to the other job
Multiprogramming
23
24
Example
25
JOB1
JOB2
JOB3
Type of job
Heavy compute Heavy I/O
Heavy I/O
Duration
5 min.
15 min.
10 min.
Memory required 50K
100 K
80 K
Need disk?
No
No
Yes
Need terminal
No
Yes
No
Need printer?
No
No
Yes
Effects of Multiprogramming
26
Uniprogramming
Multiprogramming
Processor use
22%
43%
Memory use
30%
67%
Disk use
33%
67%
Printer use
33%
67%
Elapsed time
30 min.
15 min.
Throughput rate
6 jobs/hr
12 jobs/hr
Mean response time
18 min.
10 min.
Time Sharing
27
Using multiprogramming to handle multiple
interactive jobs
Processors time is shared among multiple users
Multiple users simultaneously access the system
through terminals
Batch Multiprogramming versus
Time Sharing
28
Batch
Multiprogramming
Time Sharing
Principal
objective
Maximize processor
use
Minimize response
time
Source of
directives to
operating
system
Job control language
commands provided
with the job
Commands entered
at the terminal
Major Achievements
29
Processes
Memory Management
Information protection and security
Scheduling and resource management
System structure
Processes
30
A program in execution
An instance of a program running on a computer
The entity that can be assigned to and executed on
a processor
A unit of activity characterized by a single
sequential thread of execution, a current state, and
an associated set of system resources
Difficulties with Designing
System Software
31
Improper synchronization
ensure
a process waiting for an I/O device receives the
signal
Failed mutual exclusion
Nondeterminate program operation
program
should only depend on input to it, not relying
on common memory areas
Deadlocks
Process
32
Consists of three components
An
executable program
Associated data needed by the program
Execution context of the program
All
information the operating system needs to manage the
process
Process
33
Memory Management
34
Process isolation
Deny interference
Automatic allocation and management
Dynamic and efficient memory allocation
Transparent to programmer
Support for modular programming
Protection and access control
OS must allow access of portions of memory, to various users
in various ways.
Long-term storage
Keeping processes in memory even when the system is down.
Virtual Memory
35
Allows programmers to address memory from a
logical point of view
While one process is written out to secondary store
and the successor process read in there in no hiatus
File System
36
Implements long-term store
Information stored in named objects called files
Paging
37
Allows process to be comprised of a number of
fixed-size blocks, called pages
Virtual address is a page number and an offset
within the page
Each page may be located any where in main
memory
OS provides mapping between virtual address and
real address (or physical address) in main memory
38
Virtual Memory Addressing
39
Information Protection and Security
40
Access control
regulate
user access to the system
Information flow control
regulate
flow of data within the system and its delivery
to users
Certification
proving
that access and flow control perform according
to specifications
Scheduling and Resource Management
41
Fairness
give
equal and fair access to all processes
Differential responsiveness
discriminate
between different classes of jobs
Efficiency
maximize
throughput, minimize response time, and
accommodate as many uses as possible
Major Elements of Operating System
42
System Structure
43
View the system as a series of levels
Each level performs a related subset of functions
Each level relies on the next lower level to perform
more primitive functions
This decomposes a problem into a number of more
manageable subproblems
Operating System Design Hierarchy
44
Level Name
Objects
Example Operations
13
Shell
User programming
environment
Statements in shell language
12
User processes
User processes
Quit, kill, suspend, resume
11
Directories
Directories
Create, destroy, attach, detach,
search, list
10
Devices
External devices, such Open, close,
as printer, displays
read, write
and keyboards
File system
Files
Create, destroy, open, close
read, write
Communications
Pipes
Create, destroy, open. close,
read, write
Operating System Design Hierarchy
45
Level Name
Objects
Example Operations
Virtual Memory
Segments, pages
Read, write, fetch
Local secondary
store
Blocks of data, device Read, write, allocate, free
channels
Primitive processes
Primitive process,
semaphores, ready
list
Suspend, resume, wait, signal
Operating System Design Hierarchy
46
Level Name
Objects
Example Operations
Interrupts
programs
Interrupt-handling
Invoke, mask, unmask, retry
Procedures
Procedures, call stack,
display
Mark stack, call, return
Instruction Set
Evaluation stack, microprogram interpreter,
scalar and array data
Load, store, add, subtract
branch
Electronic circuits
Registers, gates, buses,
etc.
Clear, transfer, activate,
complement
Characteristics of Modern Operating
Systems
47
Microkernel architecture
assigns
only a few essential functions to the kernel
address
space
interprocess communication (IPC)
basic scheduling
Characteristics of Modern Operating
Systems
48
Multithreading
process
is divided into threads that can run
simultaneously
Thread
dispatchable
unit of work
executes sequentially and is interruptable
Process is a collection of one or more threads
Characteristics of Modern Operating
Systems
49
Symmetric multiprocessing
there
are multiple processors
these processors share same main memory and I/O
facilities
All processors can perform the same functions
Characteristics of Modern Operating
Systems
50
Distributed operating systems
provides
the illusion of a single main memory and
single secondary memory space
used for distributed file system
Characteristics of Modern Operating
Systems
51
Object-oriented design
used
for adding modular extensions to a small kernel
enables programmers to customize an operating system
without disrupting system integrity
Kernel
52
Kernel is the core of Operating System
All the functionalities of an OS may be included in
this core.
This
leads to different types of Kernels or Kernel
Architecture.
(In modern Operating Systems) User processes dont
have direct control over system resources.
To accomplish a task the processes make requests to
the kernel.
These
requests are called System Calls.
Kernel (Different Representations)
53
Source : Google Images
System Call
54
A system call is how a process requests a service
from an operating system's kernel.
This may include
Hardware
related services (e.g. accessing the hard
disk)
Creating and executing new processes
Communicating with integral kernel services (like
scheduling).
System calls are interface between a user process
and the system.
System Call Categories
55
System calls can be roughly grouped into five major
categories:
Process
Control
File management
Device Management
Information Maintenance
Communication
System Call Categories
56
Process Control
load
execute
create
process (for example, fork on Unix-like systems
or NtCreateProcess in the Windows NT Native API)
terminate process
get/set process attributes
wait for time, wait event, signal event
allocate, free memory
System Call Categories
57
File management
create
file, delete file
open, close
read, write, reposition
get/set file attributes
Device Management
request
device, release device
read, write, reposition
get/set device attributes
logically attach or detach devices
System Call Categories
58
Information Maintenance
get/set
time or date
get/set system data
get/set process, file, or device attributes
Communication
create,
delete communication connection
send, receive messages
transfer status information
attach or detach remote devices
Operating Systems Architectures
(Kernel Architectures)
59
Operating systems tend to be complex
Provide
many services
Support variety of hardware and software
Operating system architectures help manage this
complexity
Organize
operating system components
( e.g. Memory Management, Process Scheduler, IPC, File
System , I/O Controllers, Network Managers )
Specify privilege with which each component executes
Kernel Architectures
60
Monolithic
Layered
Micro-kernel
Distributed
Monolithic Architecture
61
Monolithic operating system
Every
component contained in kernel
Direct
communication among all elements
Highly efficient
Problems:
Complexity
New
E.g.
devices, emerging technologies
DOS
Monolithic Architecture
62
Layered Architecture
63
Groups components that perform similar functions
into layers
Each layer communicates only with adjacent layer
System calls might pass through many layers
before completion
Drawback : Low application performance.
E.g. Unix
Layered Architecture
64
Microkernel Architecture
65
Microkernel
provides
only small number of services
attempt to keep kernel small and scalable
High degree of modularity
Extensible,
portable and scalable
Increased level of inter-module communication
E.g. Mach
Microkernel Architecture
66
Distributed Operating Systems
67
Network operating system
Runs
on one computer but allows its processes to access
remote resources
Distributed operating system
Single
OS manages resources on more than one
computer
Distributed Operating Systems
68
Linux Kernel Architecture
69
Monolithic kernel:
Contains modular components
Process
management
Interprocess communication
Memory management
File system management
VFS:
I/O
provides a single file system interface
management
Networking
Linux Kernel Architecture
70
Operation Modes
71
Kernel Mode
User Mode
Kernel Mode of Operation
72
Also referred as System Mode.
In Kernel mode, the executing code has complete
and unrestricted access to the underlying hardware.
It can execute any CPU instruction and reference
any memory address.
Kernel mode is generally reserved for the lowestlevel, most trusted functions of the operating system.
Crashes in kernel mode are catastrophic.
User Mode of Operation
73
The executing code has no ability to directly access
hardware or reference memory.
Code running in user mode must delegate to system
APIs to access hardware or memory.
Due to the protection afforded by this sort of
isolation, crashes in user mode are always
recoverable.
Most of the user applications run in this mode.
74
End !