Download presentation
1
I/O and Networking Fred Kuhns
Department of Computer Science and Engineering Washington University in St. Louis
2
CS422 – Operating Systems Concepts
Overview Two fundamental operations performed by a computing system Processing of data (implement an algorithm) Perform I/O (move data into and out of the system) Large diversity in I/O devices, capabilities and performance Common Categories: storage, transmission and user-interface devices. Examples: display, keyboard, network, hard disks, tape drives, CDROM ... OS Goal is to provide simple and consistent interface to user optimize I/O use for maximum concurrency Mechanisms used by OS device drivers provide standard interface to I/O devices Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
3
CS422 – Operating Systems Concepts
I/O and Devices Processor Device table Device Driver dispatcher (interrupt handler) X Bus command status data 0 data 1 Device Controller (firmware and logic) ... Device X data N-1 Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
4
CS422 – Operating Systems Concepts
I/O Hardware Common concepts Port (device-machine communication point) Bus (daisy chain or shared communication channel) Controller (host adapter) Devices have addresses, used by Direct I/O instructions Memory-mapped I/O Common Techniques Direct I/O with polling, aka Programmed I/O: Processor does all the work. Poll for results. Interrupt Driven I/O: Device notifies CPU when I/O operation complete Memory Mapped I/O: rather than reading/writing to controller registers the device is mapped into the OS memory space. increased efficiency Direct memory access (DMA): DMA controller read and write directly to memory, freeing the CPU to do other things.CPU notified when DMA complete Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
5
CS422 – Operating Systems Concepts
Programmed I/O Busy-wait cycle to wait for I/O from device Poll at select times: periodic, entering/leaving kernel etc. Determines state of device: command-ready, busy, error Processor transfer data to/from device. Read/write directly to status and command registers Processor polls device for status Consumes a lot of processor time because every word read or written passes through the processor Insert Read command to I/O Module Read Status of I/O Module Check Status Read word from I/O Write word into memory Done? Yes No Next Instruction CPU Memory I/O CPU Error Condition CPU I/O Ready Not Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
6
CS422 – Operating Systems Concepts
Interrupt-Driven I/O Similar to direct I/O but processor not required to poll device. Interrupt asserted to notify processor of a change in status Interrupt handler receives interrupts Maskable to ignore or delay some interrupts Interrupt vector to dispatch interrupt to correct handler Based on priority Some unmaskable Insert Read command to I/O Module Read Status of I/O Module Check Status Read word from I/O Write word into memory Done? Yes No Next Instruction CPU Memory I/O CPU Error Condition CPU I/O Ready Do something else Interrupt Interrupt mechanism also used for exceptions Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
7
Direct Memory Access (DMA)
I/O exchanges to memory Processor grants I/O module authority to read from or write to memory Relieves the processor from the task Processor is free to do other things An interrupt is sent when the task is complete The processor is only involved at the beginning and end of the transfer Used to avoid programmed I/O for large data movement Requires DMA controller Next Instruction CPU DMA Interrupt DMA CPU Do something else Issue Read block command to I/O module Read status of DMA module Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
8
Six steps to perform DMA transfer
Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
9
Another way to Describe I/O Modes
Synchronous (Programmed I/O) - control returns to user program only upon I/O completion. Idle CPU until the next interrupt wait loop (contention for memory access). Asynchronous (Interrupt driven I/O) - control returns to user program before I/O completion. System call – request to the operating system to allow user to wait for I/O completion. Device-status table contains entry for each I/O device indicating its type, address, and state. Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
10
I/O Interfaces (Layers)
I/O system call layer encapsulates device behaviors in generic classes Device-driver layer hides differences among I/O controllers from kernel device dependent versus device independent layer 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 Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
11
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 Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
12
Communication Endpoints
Varying enough from block and character oriented devices to have their own interface Introduces new concepts such as connections, communications protocols Unix and Windows/NT include socket interface Separates network protocol from network operation Includes select functionality Approaches vary widely (pipes, FIFOs, streams, queues, mailboxes) Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
13
CS422 – Operating Systems Concepts
Clocks and Timers Provide current time, elapsed time, timer Programmable interval time used for timings, periodic interrupts ioctl (on UNIX) covers odd aspects of I/O such as clocks and timers Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
14
Blocking versus Nonblocking I/O
Blocking - process suspended until I/O completed Easy to use and understand Insufficient for some needs Nonblocking - I/O call returns what is 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 Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
15
CS422 – Operating Systems Concepts
Kernel I/O Subsystem Scheduling Efficiency, fairness, prioritized access Buffering - store data in memory while transferring between devices To cope with device speed mismatch, transfer size mismatch and to maintain “copy semantics” Caching - fast memory holding copy of data Always just a copy, Key to performance Spooling - hold output for a device Used when device can serve only one request at a time, i.e., Printing Device reservation - provides exclusive access to a device System calls for allocation and deallocation Watch out for deadlock Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
16
CS422 – Operating Systems Concepts
Error Handling OS can recover from disk read, device unavailable, transient write failures Most return an error number or code when I/O request fails System error logs hold problem reports Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
17
Kernel Data Structures
Kernel keeps state info for I/O components, including open file tables, network connections, character device state Many complex data structures to track buffers, memory allocation, “dirty” blocks Some use object-oriented methods and message passing to implement I/O Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
18
Example I/O Request to HW Operations
Consider reading a file from disk for a process Determine device holding file Translate name to device representation Physically read data from disk into buffer Make data available to requesting process Return control to process Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
19
Life Cycle of an I/O Request
Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
20
Intercomputer communications
context switch context switch mode switch mode switch context switch Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
21
Improving Performance
I/O a major factor in system performance Demands CPU to execute device driver, kernel I/O code Context switches due to interrupts Data copying Network traffic especially stressful Improving Performance Reduce number of context switches Reduce data copying Reduce interrupts by using large transfers, smart controllers, polling Use DMA Balance CPU, memory, bus, and I/O performance for highest throughput Fred Kuhns (4/1/2017) CS422 – Operating Systems Concepts
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.