ch01-computer system overview
DESCRIPTION
Operating SystemTRANSCRIPT
Chapter 1
Computer System
Overview
BIT1213 OPERATING SYSTEMS
Objectives
Basic elements of computer
Instruction Execution
Interrupts
The Memory Hierarchy
Cache Memory
Multiprocessor and multicore organization
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
Basic Elements of Computer
Processor
Main Memory
I/O Modules
System Bus
Processor
Controls the operation of the
computer
Performs the data processing functions
Referred to as the Central Processing
Unit (CPU)
Main Memory
Volatile
Contents of the memory is lost when the computer
is shut down
Also referred to as real memory or primary
memory
I/O Modules
Moves data between the computer and
external environments such as:
storage (e.g. hard drive)
communications equipment
terminals
System Bus
Provides for
communication
among
processors,
main memory,
and I/O
modules
Instruction Execution
A program consists of a set of instructions
stored in memory
START HALTFetch Next
Instruction
Fetch Stage Execute Stage
Execute
Instruction
Figure 1.2 Basic Instruction Cycle
Instruction Fetch and Execute
The processor fetches the instruction from memory
Program counter (PC) holds address of the instruction to be fetched next
• PC is incremented after each fetch
Fetched instruction is loaded into Instruction Register (IR)
Processor interprets the instruction and performs required action:
• Processor-memory
• Processor-I/O
• Data processing
• Control
2
PC300
CPU RegistersMemory
Fetch Stage Execute Stage
3 0 01 9 4 0301 5 9 4 1302 2 9 4 1
940 0 0 0 3941 0 0 0 2
ACIR1 9 4 0
Step 1
•
•
PC300
CPU RegistersMemory
3 0 11 9 4 0301 5 9 4 1302 2 9 4 1
940 0 0 0 3941 0 0 0 2
ACIR1 9 4 0
0 0 0 3
Step 2
•
•
PC300
CPU RegistersMemory
3 0 10 0 0 5
0 0 0 5
0 0 0 3
0 0 0 5
1 9 4 0301 5 9 4 1302 2 9 4 1
940 0 0 0 3941 0 0 0 2
ACIR5 9 4 1
Step 3
•
•
PC300
CPU RegistersMemory
3 0 21 9 4 0301 5 9 4 1302 2 9 4 1
1
940 0 0 0 3941 0 0 0 2
ACIR5 9 4 1
Step 4
•
•
PC300
CPU RegistersMemory
3 01 9 4 0301 5 9 4 1302 2 9 4 1
940 0 0 0 3941 0 0 0 2
ACIR2 9 4 1
Step 5
•
•
PC300
CPU RegistersMemory
3 0 31 9 4 0301 5 9 4 1302 2 9 4 1
940 0 0 0 3941 0 0 0 5
ACIR2 9 4 1
Step 6
•
•
3 + 2 = 5
Figure 1.4 Example of Program Execution
(contents of memory and registers in hexadecimal)
1. The PC contains 300, the address of the first
instruction. This instruction (the value 1940 in
hexadecimal) is loaded into the IR and the PC
is incremented. Note that this process involves
the use of a memory address register (MAR)
and a memory buffer register (MBR). For
simplicity, these intermediate registers are not
shown.
2. The first 4 bits (first hexadecimal digit) in the IR
indicate that the AC is to be loaded from
memory. The remaining 12 bits (three
hexadecimal digits) specify the address, which
is 940.
3. The next instruction (5941) is fetched from
location 301 and the PC is incremented.
4. The old contents of the AC and the contents of
location 941 are added and the result is stored
in the AC.
5. The next instruction (2941) is fetched from
location 302 and the PC is incremented.
6. The contents of the AC are stored in location
941.
Interrupts
Interrupt the normal sequencing of the processor
Provided to improve processor utilization most I/O devices are slower than the processor
processor must pause to wait for device
wasteful use of the processor
Table 1.1 Classes of Interrupts
Program Generated by some condition that occurs as a result of an
instruction execution, such as arithmetic overflow, division
by zero, attempt to execute an illegal machine instruction,
and reference outside a user's allowed memory space.
Timer Generated by a timer within the processor. This allows the
operating system to perform certain functions on a regular
basis.
I/O Generated by an I/O controller, to signal normal
completion of an operation or to signal a variety of error
conditions.
Hardware Generated by a failure, such as power failure or memory
failure parity error.
Figure 1.5a
Flow of Control
Without
Interrupts
UserProgram
WRITE
WRITE
WRITE
I/OProgram
I/OCommand
END
1
2
3
2
3
4
5
(a) No interrupts
= interrupt occurs during course of execution of user program
UserProgram
WRITE
WRITE
WRITE
I/OProgram
I/OCommand
InterruptHandler
END
1
2a
2b
3a
3b
4
5
(b) Interrupts; short I/O wait
UserProgram
WRITE
WRITE
WRITE
I/OProgram
I/OCommand
InterruptHandler
END
1 4
5
(c) Interrupts; long I/O wait
Figure 1.5 Program Flow of Control Without and With Interrupts
Figure 1.5b
Short I/O Wait
UserProgram
WRITE
WRITE
WRITE
I/OProgram
I/OCommand
END
1
2
3
2
3
4
5
(a) No interrupts
= interrupt occurs during course of execution of user program
UserProgram
WRITE
WRITE
WRITE
I/OProgram
I/OCommand
InterruptHandler
END
1
2a
2b
3a
3b
4
5
(b) Interrupts; short I/O wait
UserProgram
WRITE
WRITE
WRITE
I/OProgram
I/OCommand
InterruptHandler
END
1 4
5
(c) Interrupts; long I/O wait
Figure 1.5 Program Flow of Control Without and With Interrupts
Figure 1.5c
Long I/O Wait
UserProgram
WRITE
WRITE
WRITE
I/OProgram
I/OCommand
END
1
2
3
2
3
4
5
(a) No interrupts
= interrupt occurs during course of execution of user program
UserProgram
WRITE
WRITE
WRITE
I/OProgram
I/OCommand
InterruptHandler
END
1
2a
2b
3a
3b
4
5
(b) Interrupts; short I/O wait
UserProgram
WRITE
WRITE
WRITE
I/OProgram
I/OCommand
InterruptHandler
END
1 4
5
(c) Interrupts; long I/O wait
Figure 1.5 Program Flow of Control Without and With Interrupts
1
2
i
i + 1
M
Interrupt
occurs here
User Program Interrupt Handler
Figure 1.6 Transfer of Control via Interrupts
START
HALT
Fetch next
instruction
Fetch Stage Execute Stage Interrupt Stage
Interrupts
Disabled
Interrupts
Enabled
Execute
instruction
Check for
interrupt;
initiate interrupt
handler
Figure 1.7 Instruction Cycle with Interrupts
Device controller or
other system hardware
issues an interrupt
Processor finishes
execution of current
instruction
Processor signals
acknowledgment
of interrupt
Processor pushes PSW
and PC onto control
stack
Processor loads new
PC value based on
interrupt
Save remainder of
process state
information
Process interrupt
Restore process state
information
Restore old PSW
and PC
Hardware Software
Figure 1.10 Simple Interrupt Processing
Multiple Interrupts
An interrupt occurs while another interrupt is being
processed
• e.g. receiving data from a communications line and printing results at the same time
Two approaches:
• disable interrupts while an interrupt is being processed
• use a priority scheme
Memory Hierarchy
Major constraints in memory
amount
speed
expense
Memory must be able to keep up with the processor
Cost of memory must be reasonable in relationship
to the other components
Memory Relationships
Faster access time =
greater cost per bit
Greater capacity = smaller cost per bit
Greater capacity = slower access
speed
The Memory Hierarchy
Going down the
hierarchy:
decreasing cost per bit
increasing capacity
increasing access time
decreasing frequency of
access to the memory by the
processor
Figure 1.14 The Memory Hierarchy
InboardM
emory
OutboardStorage
Off-lineStorage
Main
Memory
Magnetic
Disk
CD-ROM
CD-RW
DVD-RW
DVD-RAM
Blu-Ray
Magnetic
Tape
Cache
Reg-
isters
Principle of Locality
Memory references by the processor tend to cluster
Data is organized so that the percentage of accesses
to each successively lower level is substantially less
than that of the level above
Can be applied across more than two levels of
memory
Secondary Memory
Also referred to as auxiliary memory
• external
• nonvolatile
• used to store program and data files
Cache Memory
Invisible to the OS
Interacts with other memory management hardware
Processor must access memory at least once per instruction
cycle
Processor execution is limited by memory cycle time
Exploit the principle of locality with a small, fast memory
CPU
Word Transfer
Fast
Fastest FastLessfast
Slow
Slow
Block Transfer
Cache Main Memory
Figure 1.16 Cache and Main Memory
(a) Single cache
(b) Three-level cache organization
CPULevel 1
(L1) cache
Level 2
(L2) cache
Level 3
(L3) cache
Main
Memory
Memory
address
0
1
2
0
1
2
C - 1
3
2n - 1
Word
Length
Block Length
(K Words)
Block 0
(K words)
Block M – 1
Line
Number Tag Block
(b) Main memory
(a) Cache
Figure 1.17 Cache/Main-Memory Structure
Receive address
RA from CPU
Is block
containing RA
in cache?
Fetch RA word
and deliver
to CPU
DONE
Access main
memory for block
containing RA
Allocate cache
slot for main
memory block
Deliver RA word
to CPU
Load main
memory block
into cache slot
Figure 1.18 Cache Read Operation
START
No
RA - read address
Yes
Symmetric Multiprocessors (SMP)
A stand-alone computer system with the
following characteristics: two or more similar processors of comparable capability
processors share the same main memory and are interconnected by a bus or other internal connection scheme
processors share access to I/O devices
all processors can perform the same functions
the system is controlled by an integrated operating system that provides interaction between processors and their programs at the job, task, file, and data element levels
SMP Advantages
Performance
• a system with multiple processors will yield greater performance if work can be done in parallel
Availability
• the failure of a single processor does not halt the machine
Incremental Growth
• an additional processor can be added to enhance performance
Scaling
• vendors can offer a range of products with different price and performance characteristics
L1 Cache
Processor
Main
Memory I/O
Subsystem
System Bus
I/O
Adapter
Processor Processor
Figure 1.19 Symmetric Multiprocessor Organization
L1 Cache L1 Cache
L2 Cache L2 Cache L2 Cache
I/O
Adapter
I/O
Adapter
Multicore Computer
Also known as a chip multiprocessor
Combines two or more processors (cores) on a single
piece of silicon (die)
each core consists of all of the components of an
independent processor
In addition, multicore chips also include L2 cache
and in some cases L3 cache
Figure 1.20 Intel Core i7-990X Block Diagram
Core 0
32 kB
L1-I
32 kB
L1-D
32 kB
L1-I
32 kB
L1-D
32 kB
L1-I
32 kB
L1-D
32 kB
L1-I
32 kB
L1-D
32 kB
L1-I
32 kB
L1-D
32 kB
L1-I
32 kB
L1-D
256 kB
L2 Cache
Core 1
256 kB
L2 Cache
Core 2
3 8B @ 1.33 GT/s
256 kB
L2 Cache
Core 3
256 kB
L2 Cache
Core 4
256 kB
L2 Cache
Core 5
256 kB
L2 Cache
12 MB
L3 Cache
DDR3 Memory
Controllers
QuickPath
Interconnect
4 20b @ 6.4 GT/s
Review Questions
1. List and briefly define the four main elements
of a computer.
2. What is cache memory?
3. What is the difference multi-core and
multiprocessing?
Review Questions
4. Suppose the hypothetical processor of Figure 1.3 also has two I/O instructions:
0011 Load AC from I/O
0111 Store AC to I/O
In these cases, the 12-bit address identifies a particular external device. Show the program execution (using format of Figure 1.4) for the following program:
1. Load AC from device 5.
2. Add contents of memory location 940.
3. Store AC to device 6.
Assume that the next value retrieved from device 5 is 3 and that location 940 contains a value of 2.