input/output systemscs315/spring12/wordpress/wp-content/uploads/… · input/output systems csci...
TRANSCRIPT
![Page 1: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/1.jpg)
Input/Output SystemsCSCI 315 Operating Systems Design
Department of Computer Science
Notice: The slides for this lecture have been largely based on those from an earlier edition of the course text Operating Systems Concepts, 8th ed., by Silberschatz, Galvin, and Gagne. Many, if not all, the illustrations contained in this presentation come from this source.
![Page 2: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/2.jpg)
CSCI 315 Operating Systems Design 2
I/O Hardware• Incredible variety of I/O devices.• Common concepts:
– Port, – Bus (daisy chain or shared direct access),– Controller (host adapter).
• I/O instructions control devices.• Devices have addresses, used by
– Direct I/O instructions,– Memory-mapped I/O.
![Page 3: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/3.jpg)
CSCI 315 Operating Systems Design 3
Concepts
system
port: a connection point between aperipheral device and the computer.
serialparallelUSBFirewire…
A B Cbus: a set of wires shared by one or more devices, which communicate with the system using a rigid protocol.
D E F G daisy chain: every device has two ports; either one port connects directly to the system and the other to another device, or the two ports connect to other devices. The chain usually operates as a bus.
![Page 4: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/4.jpg)
CSCI 315 Operating Systems Design 4
A Typical PC Bus Structure
![Page 5: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/5.jpg)
CSCI 315 Operating Systems Design 5
CPU and I/O ControllersThe processor transfers data to and from an I/O
controller to effect I/O operations on devices.
CPU
I/Ocontroller
A B C
CPU
I/Ocontroller
register registerr w
control
D
id
![Page 6: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/6.jpg)
CSCI 315 Operating Systems Design 6
Memory-Mapped I/OThe processor reads and writes data to address in
its memory space, which are associated with the registers and control lines of I/O controllers.
I/O port
status
control
data in
data outCPU
0x000
0x004
0x008
0x00C
RAMmemory
bus
![Page 7: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/7.jpg)
CSCI 315 Operating Systems Design 7
Device I/O Port Locations on PCs (partial)
![Page 8: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/8.jpg)
CSCI 315 Operating Systems Design 8
Polling
• Determines state of device:– command-ready,– busy,– error.
• Busy-wait cycle to wait for I/O from device: the CPU is involved in periodically checking the status of the operation.
![Page 9: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/9.jpg)
CSCI 315 Operating Systems Design 9
Interrupts• CPU Interrupt request line triggered by I/O device.
• Interrupt handler receives interrupts.
• Maskable to ignore or delay some interrupts.
• Interrupt vector used to dispatch interrupt to correct handler:– Based on priority.– Some unmaskable.
• Interrupt mechanism also used for exceptions.
![Page 10: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/10.jpg)
CSCI 315 Operating Systems Design 10
Interrupt-Driven I/O Cycle
![Page 11: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/11.jpg)
CSCI 315 Operating Systems Design 11
Intel Pentium Processor Event-Vector Table
![Page 12: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/12.jpg)
CSCI 315 Operating Systems Design 12
Direct Memory Access (DMA)• Used to avoid programmed I/O for large
data movement. • Requires DMA controller.
• The controller allows for data to be transferred directly between I/O device and memory without CPU intervention.
![Page 13: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/13.jpg)
CSCI 315 Operating Systems Design 13
DMA Transfer
![Page 14: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/14.jpg)
CSCI 315 Operating Systems Design 14
Application I/O Interface• I/O system calls encapsulate device behaviors in
generic classes.• Device-driver layer hides differences among I/O
controllers from kernel.• Devices vary in many dimensions:
– Character-stream or block.– Sequential or random-access.– Sharable or dedicated.– Speed of operation.– Read-write, read only, or write only.
![Page 15: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/15.jpg)
CSCI 315 Operating Systems Design 15
A Kernel I/O Structure
![Page 16: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/16.jpg)
CSCI 315 Operating Systems Design 16
Characteristics of I/O Devices
![Page 17: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/17.jpg)
CSCI 315 Operating Systems Design 17
Block and Character Devices• Block devices include disk drives.
– Commands include read, write, seek. – Raw I/O or file-system access.– Memory-mapped file access possible.
• Character devices include keyboards, mice, serial ports.– Commands include get, put.– Libraries layered on top allow line editing.
![Page 18: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/18.jpg)
CSCI 315 Operating Systems Design 18
Network Devices• Different enough from block and character to
have their own interface.
• Unix and Windows NT/9x/2000 include socket interface:– Separates network protocol from network operation.– Includes select functionality.
• Approaches vary widely (pipes, FIFOs, streams, queues, mailboxes).
![Page 19: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/19.jpg)
CSCI 315 Operating Systems Design 19
Clocks and Timers
• Provide current time, elapsed time, timer.
• If programmable interval time used for timings, periodic interrupts.
• ioctl (on UNIX) covers odd aspects of I/O such as clocks and timers.
![Page 20: Input/Output Systemscs315/Spring12/wordpress/wp-content/uploads/… · Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for](https://reader036.vdocuments.site/reader036/viewer/2022090607/605ceb8e54fec0557949bf1e/html5/thumbnails/20.jpg)
CSCI 315 Operating Systems Design 20
Blocking and Nonblocking I/O• Blocking - process suspended until I/O completed.
– Easy to use and understand.– Insufficient for some needs.
• Nonblocking - I/O call returns as much as available.– User interface, data copy (buffered I/O).– Implemented via multi-threading.– Returns quickly with count of bytes read or written.
• Asynchronous - process runs while I/O executes.– Difficult to use.– I/O subsystem signals process when I/O completed.