Transcript Chapter 1

Computer System
Overview
Chapter 1
Operating System

Exploits the hardware resources of one or more
processors

Provides a set of services to system users

Manages secondary memory and I/O devices

Provides support for networking/communications
Basic Elements

Processor

Main Memory (real memory/primary memory)
I/O modules
 secondary memory devices
 communications equipment
 terminals
System bus
 communication among processors, memory, and
I/O modules


Top-Level Components
User-Visible Registers



May be referenced by machine language
Available to all programs - application
programs and system programs
Types of registers


Data
Address
 Index
 Segment pointer
 Stack pointer
Control and Status Registers

Program Counter (PC)


Instruction Register (IR)


has the address of the instruction to be fetched
Contains the instruction most recently fetched
Program Status Word (PSW)

condition codes / flags


e.g. Interrupt enable/disable, supervisor/user mode
Can be accessed by a program but not altered
Instruction Cycle
The processor fetches the instruction from memory where the
Program Counter (PC) is pointing
 PC is incremented after each fetch
 Fetched instruction is placed in the instruction register
and then decoded for execution
 Types of instructions





Processor-memory - transfer data between processor and memory
Processor-I/O - data transferred to or from a peripheral device
Data processing - arithmetic or logic operation on data
Control - alter sequence of execution (e.g. jump, branch etc.)
Interrupts




An interruption of the normal sequence of execution
A suspension of a process caused by an event
external to that process and performed in such a way
that the process can be resumed
Improves processing efficiency
Allows the processor to execute other instructions
while an I/O operation is in progress
Interrupt Cycle



At the end of each cycle, processor checks for interrupts
If no interrupts  fetch the next instruction
If an interrupt is pending, suspend execution of the current
program, and execute the interrupt handler
Classes of Interrupts

Program interrupts







arithmetic overflow
division by zero
execute illegal instruction
reference outside user’s memory space
Timer
I/O interrupt
Hardware failure
Interrupt Handler (ISR – interrupt Service Routine)
• Whenever there is an interrupt, control is transferred to this program.
It determines the nature of the interrupt and performs the necessary
actions to handle it.
Transfer of Control via Interrupts
Simple Interrupt Processing
Changes in Memory and Registers for an Interrupt
Multiple Interrupts

Disable interrupts while an
interrupt is being processed

Interrupts remain pending
until the processor enables
interrupts

After interrupt handler
routine completes, the
processor checks for
additional interrupts
OR

Lower-priority interrupt
handler can be interrupted
(nested)
I/O Techniques

When the processor encounters an instruction
relating to I/O,


it executes that instruction by issuing a command to the
appropriate I/O module.
Three techniques are possible for I/O operations:



Programmed I/O
Interrupt-driven I/O
Direct memory access (DMA)
Direct Memory Access

I/O exchanges occur directly with
memory without processor involvement
(1) Initiate Block Read
Processor
Reg

Processor grants I/O module authority
to read from or write to memory
Cache


Relieves the processor responsibility for
the exchange. Processor is free to do
other things
The processor is only involved at the
beginning and end of the transfer. An
interrupt is sent when the task is
complete
(3) Read Done,
interrupt!
Memory-I/O bus
(2) DMA
Transfer
Memory
I/O
controller
disk
Disk
disk
Disk
Multiprogramming

Processor has more than one program to execute

The sequence that the programs are executed
depends on their relative priority and whether they
are waiting for I/O

After an interrupt handler completes, control may not
return to the program that was executing at the time
of the interrupt
Memory Hierarchy
Going Down
the Hierarchy

Cost per bit decreases

Capacity increases

Access time increases

Frequency of access by
the processor decreases
Cache Memory

Processor speed is much faster than memory speed. Therefore,
Increase the speed of memory by adding a small fast memory

Cache contains a portion of main memory

Processor first checks cache. If not found in cache, the block of
memory containing the needed information is moved to the cache
Because of locality of reference, likely future memory references
are in that block


Transfers are not visible to the OS (i.e. no OS involvement)
START
RA - read address
Receive address
RA from CPU
Is block
containing RA
in cache?
Access main
memory for block
containing RA
No
Yes
Allocate cache
slot for main
memory block
Fetch RA word
and deliver
to CPU
Load main
memory block
into cache slot
Deliver RA word
to CPU
DONE
Figure 1.18 Cache Read Operation
cache
size
number of
cache
levels
block size
Main
categories
are:
write
policy
mapping
function
replacement
algorithm
Mapping Function
Determines which cache
location the block will occupy
when one block is read in,
another may have to be
replaced
Two constraints affect design:
the more flexible the mapping
function, the more complex is
the circuitry required to search
the cache
Cache Design
Cache size
 Block size




Mapping function


the unit of data exchanged
between cache and main memory
hit means the information was
found in the cache
determines which cache location
the block will occupy
Replacement algorithm


determines which word in the
block to replace
Least-Recently-Used (LRU)
Initializing the Machine





Power up  fetch-execute cycle begins
Initial (or hardware) process begins to run
Executes ROM diagnostic program
Then bootstrap loads the OS
OS initialization




Setup & initialize all system data structures
Initialize all devices
Start daemons – including idle process
Branches to the scheduler
Bootstrapping
Bootstrap loader (“boot sector”)
1
BIOS loader
0x0000100
0x0001000
Fetch Unit
PC
0000100
IR
…
Decode Unit
Execute Unit
Primary Memory
Bootstrapping
Bootstrap loader (“boot sector”)
1
2
Fetch Unit
PC
0001000
IR
…
BIOS loader
0x0000100
0x0001000
Loader
0x0008000
Decode Unit
Execute Unit
Primary Memory
Bootstrapping
Bootstrap loader (“boot sector”)
1
2
Fetch Unit
0x0001000
3
PC
Loader
0008000
Decode Unit
OS
IR
Execute Unit
BIOS loader 0x0000100
…
0x0008000
0x000A000
Primary Memory
4. Initialize hardware
5. Create user environment
6. …
Hardware Process Starts
BIOS
Idle Process Kernel
ISRs
Process i Process j
Program
I/O
Process
running
Switch to
Another
program