Computer System Organisation
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
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
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
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
I/O Structure
After I/O starts, control returns to user program only upon I/O completion
o Wait instruction idles the CPU until the next interrupt
o Wait loop (contention for memory access)
o 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
o System call – request to the operating system to allow user to wait for I/O
completion
o Device-status table contains entry for each I/O device indicating its type,
address, and state
o Operating system indexes into I/O device table to determine device status
and to modify table entry to include interrupt
Storage Structure
Main memory – only large storage media that the CPU can access directly
Secondary storage – extension of main memory that provides large
nonvolatile storage capacity