Вы находитесь на странице: 1из 97

Unit -1

Introduction
Text Books :

– Operating System Concepts –


Silberschatz /Galvin/ Gagne
– References:-
• Modern Operating Systems –
Tanenbaum
• William Stallings, “Operating System” –
PHI, 4th Edition, 2003.

Operating Systems 2
What is Operating System ?
• A program that acts as an intermediary
between a user of a computer and the
computer hardware.
• Operating system goals:
– A program that controls the execution of
application programs
– Make the computer system convenient to use.
– Use the computer hardware in an efficient
manner. Operating Systems 3
Where does the OS fit in?
• Basic Taxonomy HW SW

Applications System

OS Non-OS

– Software is differentiated according to its purpose


– System software provides a general environment where
programmers/developers can create applications and
users can run applications

Operating Systems 4
Introduction

• A computer
system consists
of
– hardware
– system
programs
– application
programs
Operating Systems 5
Computer System Components
1. Hardware – provides basic computing resources (CPU,
memory, I/O devices).
2. Operating system – controls and coordinates the use of
the hardware among the various application programs
for the various users.
3. Applications programs – define the ways in which the
system resources are used to solve the computing
problems of the users (compilers, database systems,
video games, business programs).
4. Users (people, machines, other computers).

Operating Systems 6
Abstract View of System
Components

Operating Systems 7
Operating System Definitions

• Resource allocator – manages and allocates


resources.
• Control program – controls the execution of
user programs and operations of I/O
devices .
• Kernel – the one program running at all
times (all else being application programs).

Operating Systems 8
User-Services Provided by the
Operating System
• Program creation
– Editor and debugger utility programs
• Program execution
– Loading instructions, initializing I/O devices
• Access to I/O devices
– Making it a simple R/W command
• Controlled access to files
– Media technology, file format, controlling access

Operating Systems 9
User-Services Provided by the
Operating System
• Error detection and response
– internal and external hardware errors
• memory error
• device failure
– software errors
• arithmetic overflow
• access forbidden memory locations

Operating Systems 10
Two View points
• User view
– User sits in front of PC
– User sit at a terminal connected to a
mainframe
• System view
– Resource allocator

Operating Systems 11
Operating System as a
resource manager
• It is actually a program that is executed by
the processor to control the processor!
• Directs the processor in the use of system
resources
• Directs the processor when executing other
programs
• Processor stops executing the operating
system in order to execute other programs
and, then, gives the control back to the
operating system
Operating Systems 12
Operating System as a
resource manager
• Memory management is decided by the
operating system and memory management
hardware in the processor.
• The operating system decides about the
access of programs and files to I/O devices.
• In case of multiple processors, it decides for
them all

Operating Systems 13
System Goals
• Objectives of an OS
– Convenience
• An operating system makes a computer more
convenient to use.
– Efficiency
• An operating system allows the computer system
resources to be used in an efficient manner.
– Ability to Evolve
• Should permit effective development, testing, and
introduction of new system features and functions
without interfering with service.

Operating Systems 14
Types of modern operating
systems
• Mainframe operating systems: MVS
• Server operating systems: FreeBSD, Solaris
• Multiprocessor operating systems: Cellular IRIX
• Personal computer operating systems: Windows,
Unix
• Real-time operating systems: VxWorks
• Embedded operating systems
• Smart card operating systems
⇒ Some operating systems can fit into more than
one category
Operating Systems 15
Operating system timeline
• First generation: 1945 – 1955
– Vacuum tubes
– Plug boards
• Second generation: 1955 – 1965
– Transistors
– Batch systems
• Third generation: 1965 – 1980
– Integrated circuits
– Multiprogramming
• Fourth generation: 1980 – present
– Large scale integration
– Personal computers
• Next generation: ???
– Systems connected by high-speed networks?
– Wide area resource management?
Operating Systems 16
First generation: direct input
• Run one job at a time
– Enter it into the computer (might require
rewiring!)
– Run it
– Record the results
• Problem: lots of wasted computer time!
– Computer was idle during first and last steps
– Computers were very expensive!
• Goal: make better use of an expensive commodity:
computer time

Operating Systems 17
Second generation: batch systems

• Bring cards to 1401


• Read cards onto input tape
• Put input tape on 7094
• Perform the computation, writing results to output tape
• Put output tape on 1401, which prints output
Operating Systems 18
• Advantages of batch systems
– move much of the work of the operator to the
computer
– increased performance since it was possible for
job to start as soon as the previous job finished
• Disadvantages
– turn-around time can be large from user
standpoint
– more difficult to debug program
– due to lack of protection scheme, one batch job
can affect pending jobs (read too many cards,
etc)
– a job could corrupt the monitor, thus affecting
pending jobs
– a job could enter an infinite loop

Operating Systems 19
Structure of a typical 2nd
generation job
Data for
program
$END

FORTRAN $RUN
$LOAD
program

$FORTRAN
$JOB, 10,6610802, ETHAN MILLER

Operating Systems 20
Spooling
• Original batch systems used tape drives
• Later batch systems used disks for buffering
– Operator read cards onto disk attached to the
computer
– Computer read jobs from disk
– Computer wrote job results to disk
– Operator directed that job results be printed from
disk
• Disks enabled simultaneous peripheral operation on-line
(spooling)
– Computer overlapped I/O of one job with execution
of another
– Better utilization of the expensive CPU
– Still only one job active at any given time
Operating Systems 21
Third generation: multiprogramming

• Multiple jobs in memory


Job 3 – Protected from one
another
Job 2 • Operating system protected
from each job as well
Memory • Resources (time, hardware)
partitions Job 1
split between jobs
• Still not interactive
Operating – User submits job
system – Computer runs it
– User gets results
minutes (hours, days)
later
Operating Systems 22
Timesharing
• It’s a logical extension of multiprogramming.
• The CPU executes multiple jobs by switching
among them
• It allows many users to share the computer
simultaneously
• It uses time scheduling and multiprogramming to
provide each user with a small portion of a time
shared computer.

Operating Systems 23
Timesharing
• Its more complex than multiprogramming
because jobs may have to be swapped in
and out of main memory.
• Here it comes virtual memory

Operating Systems 24
Components of a simple PC

Outside
world

Video Hard drive USB Network


controller controller controller controller

CPU Computer internals
(inside the “box”)
Memory
Operating Systems 25
Desktop Systems
• Personal computers – computer system dedicated to
a single user.
• I/O devices – keyboards, mice, display screens, small
printers.
• User convenience and responsiveness.
• Can adopt technology developed for larger operating
system’ often individuals have sole use of computer
and do not need advanced CPU utilization of
protection features.
• May run several different types of operating systems
(Windows, MacOS, UNIX, Linux)
Operating Systems 26
Parallel Systems
• Multiprocessor systems with more than on CPU in close
communication.
• Tightly coupled system – processors share memory and a
clock; communication usually takes place through the
shared memory.
• Advantages of parallel system:
– Increased throughput
– Economical
– Increased reliability
• graceful degradation
• fail-soft systems
Operating Systems 27
Parallel Systems (Cont.)
• Symmetric multiprocessing (SMP)
– Each processor runs and identical copy of
the operating system.
– Many processes can run at once without
performance deterioration.
– Most modern operating systems support SMP
• Asymmetric multiprocessing
– Each processor is assigned a specific task;
master processor schedules and allocated
work to slave processors.
– More common in extremely large systems
Operating Systems 28
Symmetric Multiprocessing
Architecture

Operating Systems 29
Distributed Systems
• Distribute the computation among several physical
processors.
• Loosely coupled system – each processor has its own
local memory; processors communicate with one
another through various communications lines, such as
high-speed buses or telephone lines.
• Advantages of distributed systems.
– Resources Sharing
– Computation speed up – load sharing
– Reliability
– Communications
Operating Systems 30
Distributed Systems (cont)

• Requires networking infrastructure.


• Local area networks (LAN) or Wide area
networks (WAN)
• May be either client-server or peer-to-peer
systems.

Operating Systems 31
General Structure of Client-
Server

Operating Systems 32
Clustered Systems
• Clustering allows two or more systems to share
storage.
• Provides high reliability.
• Asymmetric clustering: one server runs the
application while other servers standby.
• Symmetric clustering: all N hosts are running
the application.

Operating Systems 33
Real-Time Systems
• Often used as a control device in a dedicated
application such as controlling scientific
experiments, medical imaging systems,
industrial control systems, and some display
systems.
• Well-defined fixed-time constraints.
• Real-Time systems may be either hard or soft
real-time.

Operating Systems 34
Real-Time Systems (Cont.)
• Hard real-time:
– Secondary storage limited or absent, data stored in
short term memory, or read-only memory (ROM)
– Conflicts with time-sharing systems, not supported by
general-purpose operating systems.

• Soft real-time
– Limited utility in industrial control of robotics
– Useful in applications (multimedia, virtual reality)
requiring advanced operating-system features.

Operating Systems 35
Handheld Systems
• Personal Digital Assistants (PDAs)
• Cellular telephones
• Issues:
– Limited memory
– Slow processors
– Small display screens.

Operating Systems 36
Hardware Protection
• Dual-Mode Operation
• I/O Protection
• Memory Protection
• CPU Protection

Operating Systems 37
Dual-Mode Operation
• Sharing system resources requires operating system to
ensure that an incorrect program cannot cause other
programs to execute incorrectly.
• Provide hardware support to differentiate between at least
two modes of operations.
1.User mode – execution done on behalf of a user.
2.Monitor mode (also kernel mode or system mode) –
execution done on behalf of operating system.

Operating Systems 38
Dual-Mode Operation (Cont.)
• Mode bit added to computer hardware to indicate the
current mode: monitor (0) or user (1).
• When an interrupt or fault occurs hardware switches to
monitor mode.
Interrupt/fault

monitor user
set user mode

Privileged instructions can be issued only in monitor mode. 

Operating Systems 39
I/O Protection
• All I/O instructions are privileged
instructions.
• Must ensure that a user program could
never gain control of the computer in
monitor mode (I.e., a user program
that, as part of its execution, stores a
new address in the interrupt vector).

Operating Systems 40
Use of A System Call to Perform I/O

Operating Systems 41
Memory Protection
• Must provide memory protection at least for the
interrupt vector and the interrupt service
routines.
• In order to have memory protection, add two
registers that determine the range of legal
addresses a program may access:
– Base register – holds the smallest legal
physical memory address.
– Limit register – contains the size of the range
• Memory outside the defined range is protected.
Operating Systems 42
Use of A Base and Limit Register

Operating Systems 43
Hardware Address Protection

Operating Systems 44
Hardware Protection

• When executing in monitor mode, the


operating system has unrestricted access
to both monitor and user’s memory.
• The load instructions for the base and
limit registers are privileged instructions.

Operating Systems 45
CPU Protection
• Timer – interrupts computer after specified period
to ensure operating system maintains control.
– Timer is decremented every clock tick.
– When timer reaches the value 0, an interrupt
occurs.
• Timer commonly used to implement time sharing.
• Time also used to compute the current time.
• Load-timer is a privileged instruction.

Operating Systems 46
Common System Components

• Process Management
• Main Memory Management
• File Management
• I/O System Management
• Secondary Management
• Networking
• Protection System
• Command-Interpreter System

Operating Systems 47
Process Management
• A process is a program in execution. A process needs certain
resources, including CPU time, memory, files, and I/O
devices, to accomplish its task.
• The operating system is responsible for the following
activities in connection with process management.
– Process creation and deletion.
– process suspension and resumption.
– Provision of mechanisms for:
• process synchronization
• process communication

Operating Systems 48
Main-Memory Management
• Memory is a large array of words or bytes, each with its own
address. It is a repository of quickly accessible data shared
by the CPU and I/O devices.
• Main memory is a volatile storage device. It loses its
contents in the case of system failure.
• The operating system is responsible for the following
activities in connections with memory management:
– Keep track of which parts of memory are currently
being used and by whom.
– Decide which processes to load when memory space
becomes available.
– Allocate and deallocate memory space as needed.
Operating Systems 49
File Management
• A file is a collection of related information defined by its
creator. Commonly, files represent programs (both source
and object forms) and data.
• The operating system is responsible for the following
activities in connections with file management:
– File creation and deletion.
– Directory creation and deletion.
– Support of primitives for manipulating files and
directories.
– Mapping files onto secondary storage.
– File backup on stable (nonvolatile) storage media.
Operating Systems 50
I/O System Management
• The I/O system consists of:
– A buffer-caching system
– A general device-driver interface
– Drivers for specific hardware devices

Operating Systems 51
Secondary-Storage Management
• Since main memory (primary storage) is volatile and too
small to accommodate all data and programs permanently,
the computer system must provide secondary storage to
back up main memory.
• Most modern computer systems use disks as the principle on-
line storage medium, for both programs and data.
• The operating system is responsible for the following
activities in connection with disk management:
– Free space management
– Storage allocation
– Disk scheduling
Operating Systems 52
Networking (Distributed Systems)
• A distributed system is a collection processors that do not share
memory or a clock. Each processor has its own local memory.
• The processors in the system are connected through a
communication network.
• Communication takes place using a protocol.
• A distributed system provides user access to various system
resources.
• Access to a shared resource allows:
– Computation speed-up
– Increased data availability
– Enhanced reliability

Operating Systems 53
Protection System
• Protection refers to a mechanism for
controlling access by programs, processes,
or users to both system and user resources.
• The protection mechanism must:
– distinguish between authorized and
unauthorized usage.
– specify the controls to be imposed.
– provide a means of enforcement.

Operating Systems 54
Command-Interpreter System
• Many commands are given to the operating
system by control statements which deal with:
– process creation and management
– I/O handling
– secondary-storage management
– main-memory management
– file-system access
– protection
– networking
Operating Systems 55
Command-Interpreter System (Cont.)

• The program that reads and interprets control


statements is called variously:

– command-line interpreter
– shell (in UNIX)

Its function is to get and execute the next


command statement.
Operating Systems 56
Operating System Services
• Program execution – system capability to load a program into
memory and to run it.
• I/O operations – since user programs cannot execute I/O
operations directly, the operating system must provide some
means to perform I/O.
• File-system manipulation – program capability to read, write,
create, and delete files.
• Communications – exchange of information between
processes executing either on the same computer or on
different systems tied together by a network.
• Error detection – ensure correct computing by detecting
errors in the CPU and memory hardware, in I/O devices, or in
user programs.

Operating Systems 57
Additional Operating System
Functions
Additional functions exist not for helping the user, but
rather for ensuring efficient system operations.
• Resource allocation – allocating resources to
multiple users or multiple jobs running at the
same time.
• Accounting – keep track of and record which users
use how much and what kinds of computer
resources for account billing or for accumulating
usage statistics.
• Protection – ensuring that all access to system
resources is controlled.
Operating Systems 58
System Calls
• System calls provide the interface between a running
program and the operating system.
– Generally available as assembly-language instructions.
– Languages defined to replace assembly language for
systems programming allow system calls to be made
directly (e.g., C, C++)
• Three general methods are used to pass parameters
between a running program and the operating system.
– Pass parameters in registers.
– Store the parameters in a table in memory, and the table
address is passed as a parameter in a register.
– Push (store) the parameters onto the stack by the
program, and pop off the stack by operating system.

Operating Systems 59
Passing of Parameters As A
Table

Operating Systems 60
Types of System Calls
• Process control
• File management
• Device management
• Information maintenance
• Communications

Operating Systems 61
MS-DOS Execution

At System Start­up Running a Program

Operating Systems 62
UNIX Running Multiple Programs

Operating Systems 63
Communication Models
• Communication may take place using either message passing
or shared memory.

Msg Passing Shared Memory
Operating Systems 64
System Programs
• Provide a convenient environment for program development and
execution
– Some of them are simply user interfaces to system calls; others
are considerably more complex
• File management - Create, delete, copy, rename, print, dump, list,
and generally manipulate files and directories
• Status information
– Some ask the system for info - date, time, amount of available
memory, disk space, number of users
– Others provide detailed performance, logging, and debugging
information
– Typically, these programs format and print the output to the
terminal or other output devices
– Some systems implement a registry - used to store and retrieve
configuration information
Operating Systems 65
System Programs (cont’d)
• File modification
– Text editors to create and modify files
– Special commands to search contents of files or perform
transformations of the text
• Programming-language support - Compilers, assemblers, debuggers
and interpreters sometimes provided
• Program loading and execution- Absolute loaders, relocatable
loaders, linkage editors, and overlay-loaders, debugging systems for
higher-level and machine language
• Communications - Provide the mechanism for creating virtual
connections among processes, users, and computer systems
– Allow users to send messages to one another’s screens, browse
web pages, send electronic-mail messages, log in remotely,
transfer files from one machine to another

Operating Systems 66
Processes
• Process Concept
• Process Scheduling
• Operations on Processes
• Cooperating Processes
• Interprocess Communication

Operating Systems 67
Process Concept
• Process – a program in execution; process
execution must progress in sequential fashion.
• A process includes:
– program counter
– stack
– data section

Operating Systems 68
Process State
• As a process executes, it changes state
– new: The process is being created.
– running: Instructions are being executed.
– waiting: The process is waiting for some event
to occur.
– ready: The process is waiting to be assigned to
a process.
– terminated: The process has finished
execution.
Operating Systems 69
Diagram of Process State

Operating Systems 70
Process Control Block (PCB)
Information associated with each process.
• Process state
• Program counter
• CPU registers
• CPU scheduling information
• Memory-management information
• Accounting information
• I/O status information

Operating Systems 71
Process Control Block (PCB)

Operating Systems 72
CPU Switch From Process to Process

Operating Systems 73
Process Scheduling Queues

• Job queue – set of all processes in the system.


• Ready queue – set of all processes residing in main
memory, ready and waiting to execute.
• Device queues – set of processes waiting for an
I/O device.
• Process migration between the various queues.

Operating Systems 74
Ready Queue And Various I/O
Device Queues

Operating Systems 75
Representation of Process
Scheduling

Operating Systems 76
Schedulers
• Long-term scheduler (or job scheduler) –
selects which processes should be brought
into the ready queue.
• Short-term scheduler (or CPU scheduler) –
selects which process should be executed
next and allocates CPU.

Operating Systems 77
Addition of Medium Term
Scheduling

Operating Systems 78
Schedulers (Cont.)
• Short-term scheduler is invoked very frequently
(milliseconds) ⇒ (must be fast).
• Long-term scheduler is invoked very infrequently
(seconds, minutes) ⇒ (may be slow).
• The long-term scheduler controls the degree of
multiprogramming.
• Processes can be described as either:
– I/O-bound process – spends more time doing I/O
than computations, many short CPU bursts.
– CPU-bound process – spends more time doing
computations; few very long CPU bursts.
Operating Systems 79
Context Switch
• When CPU switches to another process,
the system must save the state of the old
process and load the saved state for the
new process.
• Context-switch time is overhead; the
system does no useful work while
switching.
• Time dependent on hardware support.

Operating Systems 80
Process Creation
• Parent process create children processes, which,
in turn create other processes, forming a tree of
processes.
• Resource sharing
– Parent and children share all resources.
– Children share subset of parent’s resources.
– Parent and child share no resources.
• Execution
– Parent and children execute concurrently.
– Parent waits until children terminate.
Operating Systems 81
Process Creation (Cont.)

• Address space
– Child duplicate of parent.
– Child has a program loaded into it.
• UNIX examples
– fork system call creates new process
– exec system call used after a fork to
replace the process’ memory space with a
new program.
Operating Systems 82
Processes Tree on a UNIX System

Operating Systems 83
Process Termination
• Process executes last statement and asks the operating system
to decide it (exit).
– Output data from child to parent (via wait).
– Process’ resources are deallocated by operating system.
• Parent may terminate execution of children processes (abort).
– Child has exceeded allocated resources.
– Task assigned to child is no longer required.
– Parent is exiting.
• Operating system does not allow child to continue if its
parent terminates.
• Cascading termination.

Operating Systems 84
Cooperating Processes
• Independent process cannot affect or be
affected by the execution of another process.
• Cooperating process can affect or be affected
by the execution of another process
• Advantages of process cooperation
– Information sharing
– Computation speed-up
– Modularity
– Convenience
Operating Systems 85
Producer-Consumer Problem
• Paradigm for cooperating processes,
producer process produces information
that is consumed by a consumer
process.
– unbounded-buffer places no practical
limit on the size of the buffer.
– bounded-buffer assumes that there is a
fixed buffer size.
Operating Systems 86
Bounded-Buffer – Shared-Memory
Solution
• Shared data
#define BUFFER_SIZE 10
Typedef struct {
...
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
• Solution is correct, but can only use BUFFER_SIZE-1
elements Operating Systems 87
Bounded-Buffer – Producer
Process
item nextProduced;

while (1) {
while (((in + 1) % BUFFER_SIZE) == out)
; /* do nothing */
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
}

Operating Systems 88
Bounded-Buffer – Consumer
Process
item nextConsumed;

while (1) {
while (in == out)
; /* do nothing */
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
}
Operating Systems 89
Interprocess Communication (IPC)
• Mechanism for processes to communicate and to synchronize their
actions.
• Message system – processes communicate with each other without
resorting to shared variables.
• IPC facility provides two operations:
– send(message) – message size fixed or variable
– receive(message)
• If P and Q wish to communicate, they need to:
– establish a communication link between them
– exchange messages via send/receive
• Implementation of communication link
– physical (e.g., shared memory, hardware bus)
– logical (e.g., logical properties)
Operating Systems 90
Direct Communication
• Processes must name each other explicitly:
– send (P, message) – send a message to process P
– receive(Q, message) – receive a message from process
Q
• Properties of communication link
– Links are established automatically.
– A link is associated with exactly one pair of
communicating processes.
– Between each pair there exists exactly one link.
– The link may be unidirectional, but is usually bi-
directional.
Operating Systems 91
Indirect Communication
• Messages are directed and received from mailboxes (also
referred to as ports).
– Each mailbox has a unique id.
– Processes can communicate only if they share a mailbox.
• Properties of communication link
– Link established only if processes share a common
mailbox
– A link may be associated with many processes.
– Each pair of processes may share several communication
links.
– Link may be unidirectional or bi-directional.

Operating Systems 92
Indirect Communication
• Operations
– create a new mailbox
– send and receive messages through mailbox
– destroy a mailbox
• Primitives are defined as:
send(A, message) – send a message to mailbox A
receive(A, message) – receive a message from
mailbox A

Operating Systems 93
Indirect Communication
• Mailbox sharing
– P1, P2, and P3 share mailbox A.
– P1, sends; P2 and P3 receive.
– Who gets the message?
• Solutions
– Allow a link to be associated with at most two processes.
– Allow only one process at a time to execute a receive
operation.
– Allow the system to select arbitrarily the receiver. Sender
is notified who the receiver was.

Operating Systems 94
Synchronization
• Message passing may be either blocking or
non-blocking.
• Blocking is considered synchronous
• Non-blocking is considered asynchronous
• send and receive primitives may be either
blocking or non-blocking.

Operating Systems 95
Buffering
• Queue of messages attached to the link;
implemented in one of three ways.
1. Zero capacity – 0 messages
Sender must wait for receiver (rendezvous).
2. Bounded capacity – finite length of n
messages
Sender must wait if link full.
3. Unbounded capacity – infinite length
Sender never waits.

Operating Systems 96
Operating Systems 97

Вам также может понравиться