6. Hardware Architecture
(Bus-based)
CPU
Arithmetric-Logic Unit Secondary
Input Devices
Control Unit Storage
... ... ... ...
... ... ... ...
... ... ... ...
Communication
BUS
Output Devices
Devices
... ... ... ...
... ... ... ...
... ... ... ...
Primary Storage
Guo, Xunhua 6
7. Hardware components
Central Processing Unit (CPU)
Control Unit
Arithmetic-Logic Unit
Storage
Primary Storage
Secondary Storage
Input/Output Devices (Including
Communication Devices)
Guo, Xunhua 7
8. Computer hardware operation
M t or
oni
Bus
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 the 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.
Guo, Xunhua 8
9. Common Functions of Interrupts
Interrupt transfers control to the interrupt service
routine
interrupt vector 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.
Guo, Xunhua 9
10. Interrupts
(a) (b)
(a) Steps in starting an I/O device and getting
interrupt
(b) How the CPU is interrupted
Guo, Xunhua 10
12. Synchronous I/O interrupts
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.
Guo, Xunhua 12
13. Asynchronous I/O interrupts
After I/O starts, control returns to
user program without waiting
System call – request to the
operating system
Device-status table contains
entry for each I/O device
indicating its type, address,
and state (not functioning,
idle or busy)
Multiple requests for the
same device are maintained
in a wait queue.
Operating system indexes
into I/O device table to
determine device status and
to modify table entry to
include interrupt.
Guo, Xunhua 13
14. DMA 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.
Guo, Xunhua 14
15. Storage Structure
Main memory
The only large storage media that the CPU can
access directly.
Secondary storage
extension of main memory that provides large
nonvolatile storage capacity.
Magnetic disks
Optical disks
Magnetic tapes
Guo, Xunhua 15
16. Typical memory hierarchy
Storage systems organized in hierarchy:
Speed, cost, volatility
Caching
copying information into faster storage system;
main memory can be viewed as a fast cache for
secondary storage.
Guo, Xunhua 16
19. Dual-mode operation
Sharing system resources requires
operating system to ensure that an
incorrect program cannot cause other
programs to execute incorrectly.
Provide hardware support to differentiate
between at least two modes of operations.
User mode – execution done on behalf of a user.
Monitor mode (also supervisor mode, kernel
mode, or system mode) – execution done on
behalf of operating system.
Guo, Xunhua 19
21. User mode and monitor mode
Mode bit added to computer hardware to indicate the
current mode
monitor (0) or user (1).
When an interrupt or fault occurs hardware switches to
monitor mode
Privileged instructions can be issued only in monitor
mode.
Guo, Xunhua 21
22. I/O protection
All I/O instructions are privileged
instructions.
Must ensure that a user program could
never gain control of the computer in
monitor mode
i.e., a user program that, as part of its
execution, stores a new address in the interrupt
vector
Guo, Xunhua 22
23. Memory protection
Must provide memory protection at least for
the interrupt vector and the interrupt
service routines.
In order to have memory protection, add
two registers that determine the range of
legal addresses a program may access:
base register – holds the smallest legal physical
memory address.
limit register – contains the size of the range.
Memory outside the defined range is
protected.
Guo, Xunhua 23
28. System calls
The method used by a process to request
action by the operating system.
Usually takes the form of a trap to a
specific location in the interrupt vector.
Control passes through the interrupt vector
to a service routine in the OS, and the
mode bit is set to monitor mode.
The monitor verifies that the parameters
are correct and legal, executes the request,
and returns control to the instruction
following the system call.
Guo, Xunhua 28
29. System calls
System calls provide the interface between
a running program and the operating
system.
Three general methods are used to pass
parameters between a running program
and the operating system:
Pass parameters in registers.
Store the parameters in a table in memory, and
the table address is passed as a parameter in a
register.
Push (store) the parameters onto the stack by
the program, and pop off the stack by the
operating system.
Guo, Xunhua 29
37. System (utility) programs
Solve common problems or perform
common operations
File manipulation: e.g., cp, mv, chmod, ls
Status information: e.g., date, ps, df
File modification: e.g., vi
Programming-language support: e.g., gcc, asm
Program loading and execution: e.g., ld, gdb
Communications: e.g., telnet
System programs are invoked from the
shell whereas system calls are invoked
from programs.
Guo, Xunhua 37
40. Common system components
Process Management
Main-Memory Management
File Management
I/O System Management
Protection System
Networking
Command-Interpreter System
Guo, Xunhua 40
41. Process management
program (passive) vs. process (active)
A process is a program in execution. A process needs
certain resources, including CPU time, memory, files,
and I/O devices, to accomplish its task.
The operating system is responsible for:
process creation and deletion.
process suspension and resumption.
provision of mechanisms for:
process synchronization
process communication
Deadlock handling
Guo, Xunhua 41
42. Main memory management
Memory is a large array of words or bytes,
each with its own address.
It is a repository of quickly accessible data
shared by the CPU and I/O devices.
Main memory is a volatile storage device
The operating system is responsible for:
Keep track of which parts of memory are
currently being used and by whom.
Decide which processes to load when memory
space becomes available.
Allocate and deallocate memory space as
needed.
Guo, Xunhua 42
43. File Management
The OS through the file system provides a
uniform logical view of information storage.
The operating system is responsible for:
File creation and deletion.
Directory creation and deletion.
Support of primitives for manipulating files and
directories.
Mapping files onto secondary storage.
File backup on stable (nonvolatile) storage
media.
Guo, Xunhua 43
44. I/O system management
The peculiarities of the various I/O devices
are hidden from the bulk of the operating
system itself by the I/O subsystem
The I/O system consists of:
A buffer-caching system
A general device-driver interface
Drivers for specific hardware devices
Guo, Xunhua 44
45. Secondary-Storage Management
Most modern computer systems use disks
as the principle on-line storage medium, for
both programs and data.
The operating system is responsible for:
Free-space management
Storage allocation
Disk scheduling
Guo, Xunhua 45
46. Protection system
Protection refers to a mechanism for
controlling access by programs, processes,
or users to both system and user resources.
The protection mechanism must:
distinguish between authorized and
unauthorized usage.
specify the controls to be imposed.
provide a means of enforcement.
Guo, Xunhua 46
47. Networking
A distributed system is a collection of
processors that do not share memory or a
clock. Each processor has its own local
memory.
The processors in the system are connected
through a communication network.
A distributed system provides user access
to various system resources.
Computation speed-up
Increased data availability
Enhanced reliability
Guo, Xunhua 47
48. Command-Interpreter System
User interface which deals with:
process creation and management
I/O handling
secondary-storage management
main-memory management
file-system access
protection
Networking
Command-line and GUI
Guo, Xunhua 48
49. Common system components
Process Management
Main-Memory Management
File Management
I/O System Management
Protection System
Networking
Command-Interpreter System
Guo, Xunhua 49
55. Basic characteristics of modern
operating systems
Concurrency ( 并发 )
Sharing ( 共享 )
Virtualization ( 虚拟 )
Asynchronism ( 异步 )
Guo, Xunhua 55
56. Concurrency
Concurrency
Several events take places in a same time
period
Several programs (processes) run in the same
time
A modern operating system is a
concurrency system
The co-existence of multi events and processes
is managed by the OS
Guo, Xunhua 56
57. Sharing
Sharing: several processes share the
limited computer system resource
An OS shall manage the system resource for
proper sharing
Resources are used alternatively by multi
processes
Exclusive sharing: e.g. printers
Non-exclusive sharing: e.g. harddisks
Guo, Xunhua 57
58. Virtualization
Virtualization:
A physical entity is map to several logical
entities with time or space
An important way to improve the utilization
effectiveness of resources
Virtual processor
Virtual storage
Virtual device
Guo, Xunhua 58
60. Asynchronism
Conditions
Several processes execute concurrently
The execution sequence and time of processes
are uncertain
The speed of process execution is not pre-
determined
Target
No matter how the processes are executed, the
results must be the sam
Guo, Xunhua 60
61. Exercises
Reading:
Chapter 2 and 3, Textbook
Questions:
Why is the distinction between monitor mode
and user mode important?
What are different between system calls and
library functions?
Guo, Xunhua 61