Sei sulla pagina 1di 89

Text Book


Abraham Silberschatz, Peter Baer Galvin, Greg Gagne:


Operating System Concepts

Publisher 8 th Edition, Wiley India

Unit - 1

Introduction to Operating Systems and System structures:

Functions of operating systems; Computer System organization;

Computer System architecture; Operating System structure; OS

operations; Process management; Memory management; Storage management; Protection and security; Distributed system; Special- purpose systems; Computing environments, services

System structure: User Operating System interface; System calls and

its types ; System programs; OS design and implementation; OS structure; Virtual machines; OS generation; System boot.

Unit 1

Chapter 1: Introduction

What is an Operating System?

A program that acts as an intermediary between a user of a computer and the computer hardware

Operating system goals:

Execute user programs and make solving user problems easier

Make the computer system convenient to use

Use the computer hardware in an efficient manner

Four Components of Computer System

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


People, machines, other computers

Four Components of a Computer System

Four Components of a Computer System

What Operating Systems Do?

Depends on the point of view

User View:

Users want convenience, ease of use, they don’t care about resource utilization

But shared computer such as mainframe or minicomputer must keep all users happy. Other users are accessing the same computer through other terminals. Theses users share resources and may exchange information.

Handheld computers are resource poor, optimized for usability and battery life.

System View

From the computer’s point of view, the operating system is the program most

closely associated with the hardware.

In this view, OS is viewed as resource allocator.

A computer system as many resources that may be required to solve the problem : CPU time, memory space, file storage space, I/O device and so on.

The OS acts as a manager of these resources. It decides how much and when

to allocate these resources.

It is a control program manages the execution of user programs to prevent errors and improper use of the computer.

It is especially concerned with the operation and control of I/O devices.

Operating System Definition

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

It provides ease of use to the user (while using the system)

This is the program which is running always on the computer.

The one program running at all times on the computer” is the kernel. Everything else is either a system program (ships with the operating system) or an application program.

Computer System Organization

Discussion about:

Computer system operation Storage structure I/0 Structure

Computer-system operation

One or more CPUs, several device controllers connect through common bus providing access to shared memory

Each device controller is in charge of a specific device.

Concurrent execution of CPUs and devices controller competing for memory cycles

A memory controller is provided to synchronize the access to the memory

controller competing for memory cycles • A memory controller is provided to synchronize the access to

Computer Startup

bootstrap program is loaded at power-up or reboot

Typically stored in ROM or EPROM, generally known as

firmware Initializes all aspects of system

Locates Loads operating system kernel and starts

execution. It must know how to load the OS and to start execution.

The first program executed by the operating system is


Storage Structure

Main memory only large storage media that the CPU can access directly

Random access

Typically volatile

Secondary storage extension of main memory that

provides large nonvolatile storage capacity

Magnetic disks rigid metal or glass platters covered with

magnetic recording material

Disk surface is logically divided into tracks, which are subdivided into sectors The disk controller determines the logical interaction between the device and the computer

Storage Hierarchy

Storage systems organized in hierarchy




Storage-Device Hierarchy

Storage-Device Hierarchy Solid state devices




Cache memory

Important principle, performed at many levels in a computer (in hardware, operating system, software)

Information in use copied from slower to faster storage temporarily





information is there





If it is, information used directly from the cache (fast)

If not, data copied to cache and used there


Cache smaller than storage being cached

Cache management important design problem

Cache size and replacement policy

I/O Structure

Storage is only one of many types of I/O devices A general purpose computer system consists of CPU and multiple device controllers that are connected through a common bus.

Each device controller is in charge of a specific type of


Device controller maintains some local buffer storage and

a set of special purpose registers.

The device controller is responsible for moving the data between the peripheral devices and local buffer storage.

Device driver provides interface between OS and device


I/O Structure continued

To start an I/O operation the device loads the appropriate registers within the device controller.

The device controller in turn examines the contents of these

registers to determine what action to take.

Ex: read from the keyboard

The controller starts the transfer of data from the device to its

local buffer.

Once the transfer of data is completed, the device controller informs the device driver via an interrupt that it has finished its operations.

The device driver in turn returns the control to the OS, possibly returning the data or a pointer to the data (in case of read).

This method is a overhead and hence DMA is used for large data transfer.

Direct Memory Access Structure (DMA)

Used for high-speed I/O devices able to transmit information at close to memory speeds

Device controller transfers blocks of data from buffer storage directly to main memory without

CPU intervention

Only one interrupt is generated per block, rather

than the one interrupt per byte

Computer System Architecture

Single processor systems

Multiprocessor system Clustered systems

Computer-System Architecture

Single processor system:

Most systems use a single general-purpose processor

Some systems have special-purpose processors as well

Multiprocessor system:

Multiprocessors systems growing in use and importance

Also known as parallel systems, tightly-coupled systems

Advantages include:

1. Increased throughput : expected to get more work done

2. Economy of scale : cheaper than multiple single processor system

3. Increased reliability graceful degradation or fault tolerance

Two types:

1. Asymmetric Multiprocessing ( one master and other processors slaves)

2. Symmetric Multiprocessing ( all are of same capacity)

Symmetric Multiprocessing Architecture

Symmetric Multiprocessing Architecture

A Dual-Core Design

A Dual-Core Design • Intel’s dual core processors were simply 2 Pentium 3 processors that were

Intel’s dual core processors were simply 2 Pentium 3

processors that were fabricated

in a single chip.

Dual core is the generic name

given to processors that have 2

cores on the same chip

Core 2 Duo is the second line of dual core processors from Intel

Clustered Systems

Like multiprocessor systems, but multiple systems

working together

Provides a high-availability service which survives failures

Asymmetric clustering has one machine in hot-standby mode

Symmetric clustering has multiple nodes running applications, monitoring

each other

Applications must be written to use parallelization

Clustered Systems

Clustered Systems

Operating System Structure

Multiprogramming needed for efficiency

Single user cannot keep CPU and I/O devices busy at all times

Multiprogramming organizes jobs (code and data) so CPU always has one to execute

A subset of total jobs in system is kept in memory

One job selected and run via job scheduling

When it has to wait (for I/O for example), OS switches to another job

Memory Layout for Multiprogrammed System

Memory Layout for Multiprogrammed System

Operating-System Operations

Dual-mode operation allows OS to protect itself and other

system components

User mode and kernel mode Mode bit provided by hardware

Provides ability to distinguish when system is running user code or kernel code

Some instructions designated as privileged, only executable in kernel mode

System call changes mode to kernel, return from call resets it to user

privileged , only executable in kernel mode • System call changes mode to kernel, return from

Process Management

A process is a program in execution. It is a unit of work within the

system. Program is a passive entity, process is an active entity.

Process needs resources to accomplish its task

CPU, memory, I/O, files

Initialization data

Process termination requires reclaim of any reusable resources

Single-threaded process has one program counter specifying location of next instruction to execute

Process executes instructions sequentially, one at a time, until completion

Multi-threaded process has one program counter per thread

Typically system has many processes, some user, some operating system running concurrently on one or more CPUs

Process Management Activities

The operating system is responsible for the following activities in connection with process management:

Creating and deleting both user and system processes

Suspending and resuming processes

Providing mechanisms for process synchronization

Providing mechanisms for process communication

Providing mechanisms for deadlock handling

Memory Management

All data should be in memory before and after processing

All instructions should be in memory in order to execute

Memory management activities

Keeping track of which parts of memory are currently being used and by whom

Deciding which processes (or parts thereof) and data to move into and out of memory

Allocating and deallocating memory space as needed

Storage Management

OS provides uniform, logical view of information storage in terms of file

File-System management

Files usually organized into directories OS activities include

Creating and deleting files and directories

Primitives to manipulate files and dirs

Mapping files onto secondary storage

Backup files onto stable (non-volatile) storage media

Mass-Storage Management

Usually disks used to store data that does not fit in main memory or data that must be kept for a “long” period of


OS activities

Free-space management

Storage allocation

Disk scheduling

Some storage need not be fast

Tertiary storage includes optical storage, magnetic tape

Still must be managed by OS or applications

Varies between WORM (write-once, read-many-times) and RW


Migration of Integer A from Disk to Register

Multitasking environments must be careful to use most recent value, no matter where it is stored in the storage hierarchy

value, no matter where it is stored in the storage hierarchy • Multiprocessor environment must provide

Multiprocessor environment must provide cache coherency in hardware such that all CPUs have the most recent value in their cache

Distributed environment situation even more complex

Several copies of a datum can exist

Protection and Security

Protection any mechanism for controlling access of processes or users to resources defined by the OS

Security defense of the system against internal and external attacks

Huge range, including denial-of-service, worms, viruses, identity theft, theft of service

Systems generally first distinguish among users, to determine who

can do what

User identities (user IDs, security IDs) include name and associated number, one per user

User ID then associated with all files, processes of that user to determine

access control

Group identifier (group ID) allows set of users to be defined and controls managed, then also associated with each process, file Privilege escalation allows user to change to effective ID with more rights

Distributed Computing

Collection of separate, possibly heterogeneous, systems networked together

Network is a communications path

Local Area Network (LAN)

Wide Area Network (WAN)

Metropolitan Area Network (MAN)

Network Operating System provides features between systems across network

Communication scheme allows systems to exchange messages

Illusion of a single system

Special-Purpose Systems

Real-time embedded systems most prevalent form of computers

Vary considerable, special purpose, limited purpose OS, real-time OS

Hard and soft real time (RTOS- popular notation used in industry)

Multimedia systems

Streams of data must be delivered according to time restrictions. Example video and audio

Handheld systems

PDAs, smart phones, limited CPU, memory, power

Reduced feature set OS, limited I/O

Computing Environments

Traditional computer

Office environment

PCs connected to a network, terminals attached to mainframe or

minicomputers providing batch and timesharing

Home networks

Used to be single system, then modems

Now firewalled, networked

Computing Environments (Cont.)

Client-Server Computing

Dumb terminals supplanted by smart PCs

Many systems now servers, responding to requests generated

by clients

Compute-server provides an interface to client to request services (i.e., database) File-server provides interface for clients to store and retrieve files

client to request services (i.e., database)  File-server provides interface for clients to store and retrieve

Peer-to-Peer Computing

Another model of distributed system

P2P does not distinguish clients and servers

Instead all nodes are considered peers

May each act as client, server or both

Node must join P2P network

Registers its service with central lookup service on network, or

Broadcast request for service and respond to requests for service via discovery


Examples include Napster and Gnutella

Web-Based Computing

Web has become ubiquitous (common)

More devices becoming networked to allow web access

Open-Source Operating Systems

Operating systems made available in source-code format rather than just binary closed-source

Counter to the copy protection and Digital Rights Management (DRM) movement

Started by Free Software Foundation (FSF), which has “copyleft” GNU Public License (GPL)

Examples include GNU/Linux and BSD UNIX (including core of Mac OS X), and many more

End of Chapter 1

Unit - 1

Chapter 2 Operating-System Structures

Batch Processing

This is the old technology.

Programs were grouped into batches for processing.

The programs were punched on the punched card and submitted for processing to the computer operator

Operating System Services

One set of operating-system services provides functions that are helpful to the user:

User interface for user interaction

Varies between Command-Line (CLI), Graphics User Interface (GUI), Batch

Program execution - The system must be able to load a program into

memory and to run that program, end execution, either normally or

abnormally (indicating error)

I/O operations - A running program may require I/O, which may

involve a file or an I/O device

File-system manipulation - The file system is of particular interest. Obviously, programs need to read and write files and directories, create and delete them, search them, list file Information, permission management.

Operating System Services (Cont)

Communications Processes may exchange

information, on the same computer or between

computers over a network

Communications may be via shared memory or through message passing (packets moved by the OS)

Error detection OS needs to be constantly aware of possible errors

May occur in the CPU and memory hardware, in I/O devices, in user


For each type of error, OS should take the appropriate action to ensure correct and consistent computing

Debugging facilities can greatly enhance the user’s and programmer’s abilities to efficiently use the system

Operating System Services (Cont)

Another set of OS functions exists for ensuring the efficient operation

of the system itself via resource sharing

Resource allocation - When multiple users or multiple jobs running concurrently, resources must be allocated to each of them

Many types of resources - Some (such as CPU cycles, main

memory, and file storage) may have special allocation code, others (such as I/O devices) may have general request and release code

Accounting - To keep track of which users use how much and what kinds of computer resources

Protection and security - The owners of information stored in a

multiuser or networked computer system may want to control use of that information, concurrent processes should not interfere with each other

A View of Operating System Services

A View of Operating System Services

User Operating System Interface - CLI

Command Line Interface (CLI) or command interpreter allows direct command entry

Primarily fetches a command from user and executes it

User Operating System Interface - GUI

User-friendly desktop interface

uses 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)

Many systems now include both CLI and GUI interfaces

Microsoft Windows is GUI with CLI “command”

Bourne Shell and DOS Command Interpreter

Bourne Shell and DOS Command Interpreter
Bourne Shell and DOS Command Interpreter

The Mac OS X GUI windows GUI

The Mac OS X GUI – windows GUI
The Mac OS X GUI – windows GUI

System Calls

Programming interface to the services provided by the OS

Typically written in a high-level language (C or C++)

All these system calls are present in a library known as API.

Three most common APIs are Win32 API for Windows

POSIX API for POSIX-based systems

(including virtually all versions of UNIX, Linux, and Mac OS X) and Java API for the Java virtual machine (JVM)

The way that programs talk to the operating system is via ``system calls.''

A system call looks like a procedure call, but it is a request to

the operating system to perform some activity.

To summarize… system call

System calls provide an interface between the

process and the operating system.

System calls allow user-level processes to

request some services from the operating system which process itself is not allowed to do.

System call will cause CPU running level switch from user level to kernel level.

Standard C Library Example

C program invoking printf() library call, which calls write() system call

Standard C Library Example • C program invoking printf() library call, which calls write() system call

System Call Parameter Passing

Often, more information is required than simply identity of desired system call

Exact type and amount of information vary according to OS and call

Three general methods used to pass parameters to the OS

Simplest: pass the parameters in registers

In some cases, may be more parameters than registers

Parameters stored in a block, or table, in memory, and address of block passed as a parameter in a register

This approach taken by Linux and Solaris

Parameters placed, or pushed, onto the stack by the program and popped off the stack by the operating system

Block and stack methods do not limit the number or length of parameters

being passed

Parameter Passing via Table

Parameter Passing via Table

Types of System Calls

Process control Create, delete new process and the related operations

File management File creation with some attributes, open the

existing file and related

Device management various resources controlled by the OS is

treated as device. Some of these devices are physical devices

Information maintenance time, date, number of user connected to the OS, version number of OS, free memory, disk space available

Communications either message passing or shared memory talk to another process, close the connection ….

Protection controlling the access to the resources provided by the

compute system, get permission, allow user…

Examples of Windows and Unix System Calls

Examples of Windows and Unix System Calls

Process Control -

MS-DOS execution

Process Control - MS-DOS execution (a) At system startup (b) running a program
Process Control - MS-DOS execution (a) At system startup (b) running a program

(a) At system startup (b) running a program

FreeBSD Running Multiple Programs

FreeBSD Running Multiple Programs

System programs

System programs provide basic functioning to users

so that they do not need to write their own

environment for program development (editors, compilers) and program execution (shells).

System Program

System Program • Modern OS is a collection of System programs and system utilities. • In

Modern OS is a collection of System programs and system utilities.

In the hierarchy of OS, at the lowest level we have hardware, above that we have OS and later system and application programs.

System programs provides a convenient environment for program development and execution.

Some of them are simply user interfaces to system calls. Others are considerably more complex

Example includes OS, Compiler, loader, linker ….

They can be classified into several categories.

System Programs

This can be divided into:

File Management Status information File modification Programming language support Program loading and execution Communications

Categories of System Programs

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

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 System Design and Implementation

This part of the syllabus speaks about the Design and implementation of OS Design Goals

Mechanisms and Policies


Design Goals

Design of the OS will be affected by :

the choice of the Hardware

Type of system like

: batch, time shared, single user, multiuser, distributed, real time or general purpose

There is no unique solution exists for defining the design goals

Specifying and designing an OS is highly creative task.

Software Engineering Principles need to be followed.

Operating System Design and Implementation (Cont)

Mechanisms and Polices:

One Important principle in designing OS is to identify the


What will be done? : decides what do I require

Mechanism: How to do it? : how do I incorporate it


Once an OS is designed, it must be implemented.

Traditionally OS have been written in Assembly language

However today they are commonly written in higher level languages like C, C++

Operating system structure

1. Simple structure

2. Layered approach

3. Microkernels

4. Modules

Operating System Structure

1. Simple Structure

Many commercial OS do not have well defined structures.

Frequently such system started as small and simple.

Example : MS -DOS

MS-DOS written to provide the most functionality in the least space

Not divided into modules

It was basically written by looking into Intel 8088 Microprocessor

Application program are able to access the basic I/O routines

to write directly to the display and disk drives.

Such a freedom leaves MS-DOS vulnerable to errant programs.

2. 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.

This approach simplifies the OS design and debugging

Layered Operating System

Layered Operating System

3. Microkernel System Structure

This method structures the OS by removing all non

essential components from the kernel and implementing

them as system and user level programs

Benefits of microkernel:

Easier to extend a operating system

All the new services are added to user space

More reliable (less code is running in kernel mode)

More secure, since very less part is running as kernel mode


Performance overhead of user space to kernel space communication

4. Modules

Current methodology for operating system design

involves using object oriented programming technique to create a modular kernel.

Here kernel has a set of core components and links in additional services either during boot time or during run time.

Example : Solaris Modular Approach

Example : Solaris Modular Approach

Virtual Machines

The fundamental idea behind a virtual machine is to abstract the hardware of

a single computer into several different execution environments.

(hardware reference to : CPU, memory, disk drives, network interface ….)

CPU scheduling and virtual memory techniques creates the illusion that a

process has its own processor and its own memory.

Virtual machine concept extends the above concept for the entire hardware.

It is the layer of software which virtualizes the hardware

Each guest provided with a (virtual) copy of underlying computer

Virtual Machines (Cont)

Non-virtual Machine Virtual Machine
Non-virtual Machine
Virtual Machine

(a) Nonvirtual machine (b) virtual machine

Benefits of Virtual Machines

Virtual machines are protected from each other

A virus inside a guest OS is unlikely to affect the host or other guests.

Java Virtual Machine

JVM is a specification for an abstract computer

It consists of a class loader and a java interpreter that executes the

architecture neutral bytecode

JVM may be implemented in software on top of a host OS such as windows, Linux… or as a part of web browser.

The class loader, loads the compiled .class files from both java

program and the Java API for execution by the Java interpreter.

After the class is loaded the verifier checks for the validity of the java

program and later it is interpreted.

The Java Virtual Machine

The Java Virtual Machine

Operating-System Debugging Failure analysis

Debugging is finding and fixing errors, or bugs

If performance is a bug, then debugging also includes performance tuning.

If process fails, most operating system write error information to a log file.

The OS can also take a core dump,- a capture of memory of the process.

The core image is stored in the memory for later analysis.

Running programs and core dumps can be probed by debugger tool.

A kernel failure is called crash.

As with a process failure, error information is saved to log file and the memory

state is saved to a crash dump.

Performance Tuning

Beyond crashes, performance tuning can optimize system performance

Code must be added to compute and display measures of system behavior.

Add the codes to handle bottlenecks and inefficiencies.


D-Trace tool in Solaris, FreeBSD, Mac OS X allows live instrumentation on

production systems.

Probes fire when code is executed, capturing state data and sending it to consumers of those probes

System Boot

The procedure of starting a computer by loading the kernel is known as booting the system.

On most computer, a small piece of code known as

bootstrap program or bootstrap loader locates the kernel loads it into memory and starts its execution. In some systems it is two step process in which a simple bootstrap loader fetches a more complex boot program from disk which in turn loads the kernel. Firmware using EPROM or ROM is used to hold the initial boot code.

End of Chapter 2