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