Chapter 5
Input/Output
5.1 Principles of I/O hardware
5.2 Principles of I/O software
5.3 I/O software layers
5.4 Disks
5.5 Clocks
5.6 Character-oriented terminals
5.7 Graphical user interfaces
5.8 Network terminals
5.9 Power management
1
Principles of I/O Hardware
Some typical device, network, and data base rates
Device Controllers
I/O devices have components:
mechanical component
electronic component
The electronic component is the device
controller
may be able to handle multiple devices
Controller's tasks
convert serial bit stream to block of bytes
perform error correction as necessary
make available to main memory
3
Memory-Mapped I/O (1)
Separate I/O and memory space
Memory-mapped I/O
Hybrid
4
Memory-Mapped I/O (2)
(a) A single-bus architecture
(b) A dual-bus memory architecture
5
Direct Memory Access (DMA)
Operation of a DMA transfer
6
Interrupts Revisited
How interrupts happens. Connections between devices and interrupt controller
actually use interrupt lines on the bus rather than dedicated wires
Principles of I/O Software
Goals of I/O Software (1)
Device independence
programs can access any I/O device
without specifying device in advance
(floppy, hard drive, or CD-ROM)
Uniform naming
name of a file or device a string or an integer
not depending on which machine
Error handling
handle as close to the hardware as possible
8
Goals of I/O Software (2)
Synchronous vs. asynchronous transfers
blocked transfers vs. interrupt-driven
Buffering
data coming off a device cannot be stored in
final destination
Sharable vs. dedicated devices
disks are sharable
tape drives would not be
Programmed I/O (1)
Steps in printing a string
1
Programmed I/O (2)
Writing a string to the printer using programmed
I/O
1
Interrupt-Driven I/O
Writing a string to the printer using interrupt-driven I/O
Code executed when print system call is made
Interrupt service procedure
I/O Using DMA
Printing a string using DMA
code executed when the print system call is made
interrupt service procedure
1
I/O Software Layers
Layers of the I/O Software System
1
Interrupt Handlers (1)
Interrupt handlers are best hidden
Interrupt procedure does its task
have driver starting an I/O operation block until interrupt
notifies of completion
then unblocks driver that started it
Steps must be performed in software after interrupt
completed
1. Save regs not already saved by interrupt hardware
2. Set up context for interrupt service procedure
1
Interrupt Handlers (2)
3.
4.
5.
6.
7.
8.
9.
Set up stack for interrupt service procedure
Ack interrupt controller, reenable interrupts
Copy registers from where saved
Run service procedure
Set up MMU context for process to run next
Load new process' registers
Start running the new process
Device Drivers
Logical position of device drivers is shown here
Communications between drivers and device controllers goes over the bus
Device-Independent I/O Software (1)
Uniform interfacing for device drivers
Buffering
Error reporting
Allocating and releasing dedicate devices
Providing a deice-independent block size
Functions of the device-independent I/O software
1
Device-Independent I/O Software (2)
(a) Without a standard driver interface
(b) With a standard driver interface
1
Device-Independent I/O Software (3)
(a) Unbuffered input
(b) Buffering in user space
(c) Buffering in the kernel followed by copying to user space
(d) Double buffering in the kernel
Device-Independent I/O Software (4)
Networking may involve many copies
2
User-Space I/O Software
Layers of the I/O system and the main functions of each layer
Disks
Disk Hardware (1)
Disk parameters for the original IBM PC floppy disk and a
Western Digital WD 18300 hard disk
Disk Hardware (2)
Physical geometry of a disk with two zones
A possible virtual geometry for this disk
Disk Hardware (3)
Raid levels 0 through 2
Backup and parity drives are shaded
Disk Hardware (4)
Raid levels 3 through 5
Backup and parity drives are shaded
Disk Hardware (5)
Recording structure of a CD or CD-ROM
2
Disk Hardware (6)
Logical data layout on a CD-ROM
2
Disk Hardware (7)
Cross section of a CD-R disk and laser
not to scale
Silver CD-ROM has similar structure
without dye layer
with pitted aluminum layer instead of gold
Disk Hardware (8)
A double sided, dual layer DVD disk
3
Disk Formatting (1)
A disk sector
3
Disk Formatting (2)
An illustration of cylinder skew
3
Disk Formatting (3)
No interleaving
Single interleaving
Double interleaving
3
Disk Arm Scheduling Algorithms (1)
Time required to read or write a disk
block determined by 3 factors
1.
2.
3.
Seek time
Rotational delay
Actual transfer time
Seek time dominates
Error checking is done by controllers
Disk Arm Scheduling Algorithms (2)
Initial
position
Pending
requests
Shortest Seek First (SSF) disk scheduling algorithm
Disk Arm Scheduling Algorithms (3)
The elevator algorithm for scheduling disk requests
3
Error Handling
A disk track with a bad sector
Substituting a spare for the bad sector
Shifting all the sectors to bypass the bad one
3
Stable Storage
Analysis of the influence of crashes on stable writes
3
Clocks
Clock Hardware
A programmable clock
3
Clock Software (1)
Three ways to maintain the time of day
4
Clock Software (2)
Simulating multiple timers with a single clock
4
Soft Timers
A second clock available for timer interrupts
specified by applications
no problems if interrupt frequency is low
Soft timers avoid interrupts
kernel checks for soft timer expiration before it
exits to user mode
how well this works depends on rate of kernel
entries
4
Character Oriented Terminals
RS-232 Terminal Hardware
An RS-232 terminal communicates with computer 1 bit at a time
Called a serial line bits go out in series, 1 bit at a time
Windows uses COM1 and COM2 ports, first to serial lines
Computer and terminal are completely independent
Input Software (1)
Central buffer pool
Dedicated buffer for each terminal
4
Input Software (2)
Characters handled specially in canonical mode
Output Software
The ANSI escape sequences
accepted by terminal driver on output
ESC is ASCII character (0x1B)
n,m, and s are optional numeric parameters
Display Hardware (1)
Parallel port
Memory-mapped displays
driver writes directly into display's video RAM
Display Hardware (2)
A video RAM image
simple monochrome display
character mode
Corresponding screen
the xs are attribute bytes
Input Software
Keyboard driver delivers a number
driver converts to characters
uses a ASCII table
Exceptions, adaptations needed for
other languages
many OS provide for loadable keymaps
or code pages
4
Output Software for Windows (1)
Sample window located at (200,100) on XGA display
5
Output Software for Windows (2)
Skeleton of a Windows main program (part 1)
Output Software for Windows (3)
Skeleton of a Windows main program (part 2)
Output Software for Windows (4)
An example rectangle drawn using Rectangle
5
Output Software for Windows (5)
Copying bitmaps using BitBlt.
before
after
Output Software for Windows (6)
Examples of character outlines at different point sizes
5
Network Terminals
X Windows (1)
Clients and servers in the M.I.T. X Window System
X Windows (2)
Skeleton of an X Windows application program
The SLIM Network Terminal (1)
The architecture of the SLIM terminal system
The SLIM Network Terminal (2)
Messages used in the SLIM protocol from the server to the terminals
Power Management (1)
Power consumption of various parts of a laptop computer
6
Power management (2)
The use of zones for backlighting the display
6
Power Management (3)
Running at full clock speed
Cutting voltage by two
cuts clock speed by two,
cuts power by four
6
Power Management (4)
Telling the programs to use less energy
may mean poorer user experience
Examples
change from color output to black and white
speech recognition reduces vocabulary
less resolution or detail in an image