Introduction
Operating System Concepts – 8th Edition
Chapter 1: Introduction
What Operating Systems Do
Computer-System Organization
Computer-System Architecture
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
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
Four Components of a Computer System
What Operating Systems Do
Depends on the point of view
Users want convenience, ease of use
Don’t care about resource utilization
But shared computer such as mainframe or minicomputer must keep all
users happy
Users of dedicate systems such as workstations have dedicated resources
but frequently use shared resources from servers
Handheld computers are resource poor, optimized for usability and battery
life
Some computers have little or no user interface, such as embedded
computers in devices and automobiles
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
Operating System Definition (Cont.)
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 (ships with the
operating system) or an application program.
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
Loads operating system kernel and starts execution
Computer System Organization
Computer-system operation
One or more CPUs, device controllers connect through common
bus providing access to shared memory
Concurrent execution of CPUs and devices competing for
memory cycles
Computer-System Operation
I/O devices and the CPU can execute concurrently
Each device controller is in charge of a particular device type
Each device controller has a local buffer
CPU moves data from/to main memory to/from local buffers
I/O is from the device to local buffer of controller
Device controller informs CPU that it has finished its operation by
causing an interrupt
Common Functions of Interrupts
Interrupt transfers control to the interrupt service routine generally,
through the interrupt vector, which contains the addresses of all the
service routines
Interrupt architecture must save the address of the interrupted
instruction
Incoming interrupts are disabled while another interrupt is being
processed to prevent a lost interrupt
A trap is a software-generated interrupt caused either by an error or a
user request
An operating system is interrupt driven
Interrupt Handling
The operating system preserves the state of the CPU by storing
registers and the program counter
Determines which type of interrupt has occurred:
polling
vectored interrupt system
Separate segments of code determine what action should be taken for
each type of interrupt
Interrupt Timeline
I/O Structure
After I/O starts, control returns to user program only upon I/O
completion
Wait instruction idles the CPU until the next interrupt
Wait loop (contention for memory access)
At most one I/O request is outstanding at a time, no
simultaneous I/O processing
After I/O starts, control returns to user program without waiting for
I/O completion
System call – request to the operating system to allow user to
wait for I/O completion
Device-status table contains entry for each I/O device
indicating its type, address, and state
Operating system indexes into I/O device table to determine
device status and to modify table entry to include interrupt
Direct Memory Access Structure
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
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
Speed
Cost
Volatility
Caching – copying information into faster storage system; main
memory can be viewed as a cache for secondary storage
Storage-Device Hierarchy
Factors affecting storage Hierachy
[Link]:-
size increases from top to bottom in the hierachy table.
[Link]:-.
speed decreases from top to bottom in the hierachy table.
[Link] :-
cost decreases from top to bottom in hierachy table
Caching
Important principle, performed at many levels in a computer (in
hardware, operating system, software)
Information in use copied from slower to faster storage temporarily
Faster storage (cache) checked first to determine if 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
Computer system architecture
The computer architecture is divided into three types
1. Single processor
2. Multi processor
3. clustered systems
Most systems use a single general-purpose processor (PDAs
through mainframes)
On a Single Processor system, there is one main CPU capable of
executing a general purpose instruction set.
Almost all systems have other special-purpose processors like disk,
keyboard and graphics controllers.
All of these Special Purpose processors run a limited instruction set
and do not run user processes.
The use of special purpose microprocessors is common and does
not turn a single processor system into a multiprocessor.
If there is only one general purpose CPU,then the system is a single
processor System.
Multiprocessors systems growing in use and importance
Also known as parallel systems, tightly-coupled systems.
• These Systems have two or more processors in close
communication, sharing the computer and sometimes the
clock, memory and peripheral devices.
Advantages include:
1. Increased throughput Increasing [Link] processor, we
expect to get more work done in less time.
2. Economy of scale Multiprocessor Systems can cost
less than equivalent multiple single processor systems,
as they can share peripherals, mass storage, and power
supplies.
[Link] reliability – graceful degradation or fault
tolerance
If functions can be distributed properly among several
processors, then the failure of one processor will not
halt the system, only slow it down.
Two types:
1. Asymmetric Multiprocessing
Each processor is assigned a specific task.
A master processor controls the system, the other
processors either look to their master for instruction or
have predefined tasks. It defines Master-Slave
relationship.
The master processor schedules and allocate the work to
the slave processors.
2. Symmetric Multiprocessing
SMP means that all processors are peers;
Most common system use this.
Each processor performs all tasks within the OS.
Here there is no master-slave relationship exists between
processors.
Symmetric Multiprocessing Architecture
Recent trend in CPU design is to include multiple computing
cores on a single chip.
On-chip communication is faster than between chip
communication.
One chip with multiple cores uses significantly less power than
multiple single core chips.
A Dual-Core Design
Clustered Systems
Gather together multiple CPUs to accomplish computational work.
Like multiprocessor systems, but multiple systems working together.
Clustered computers share storage and are closely linked via a LAN.
Clustering is usually used to provide high-availabilty service; that is service
will continue even if one or more systems in the cluster fail.
Usually sharing storage via a storage-area network (SAN)
Asymmetric clustering has one machine in hot-standby mode
while other is running the applications.
Hot standby machine does nothing but monitor the active server. If
that server fails ,the hot standby host becomes active server.
Symmetric clustering has multiple nodes running applications,
monitoring each other. It is more efficient.
Some clusters are for high-performance computing (HPC)
Applications must be written to use parallelization Consists of
dividing a program into separate components tha run in parallel
on individual computers in the cluster.
Clustered Systems