Presentation is loading. Please wait.

Presentation is loading. Please wait.

Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns Department of Computer.

Similar presentations


Presentation on theme: "Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns Department of Computer."— Presentation transcript:

1 Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns Department of Computer Science and Engineering Washington University in St. Louis

2 2 Fred Kuhns (6/6/2014)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 1.provide simple and consistent interface to user 2.optimize I/O use for maximum concurrency Mechanisms used by OS –device drivers provide standard interface to I/O devices

3 3 Fred Kuhns (6/6/2014)CS422 – Operating Systems Concepts I/O and Devices Processor Device Controller (firmware and logic) Device X command status data 0 data 1 data N-1... Bus Device Driver X Device table dispatcher (interrupt handler)

4 4 Fred Kuhns (6/6/2014)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 1.Direct I/O with polling, aka Programmed I/O: Processor does all the work. Poll for results. 2.Interrupt Driven I/O: Device notifies CPU when I/O operation complete 3.Memory Mapped I/O: rather than reading/writing to controller registers the device is mapped into the OS memory space. increased efficiency 4.Direct memory access (DMA): DMA controller read and write directly to memory, freeing the CPU to do other things.CPU notified when DMA complete

5 5 Fred Kuhns (6/6/2014)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 Module Write word into memory Done? Yes No Next Instruction CPU Memory I/O CPU Error Condition I/O CPU CPU I/O Ready Not Ready

6 6 Fred Kuhns (6/6/2014)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 Module Write word into memory Done? Yes No Next Instruction CPU Memory I/O CPU Error Condition I/O CPU CPU I/O Ready Do something else Interrupt Interrupt mechanism also used for exceptions

7 7 Fred Kuhns (6/6/2014)CS422 – Operating Systems Concepts 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

8 8 Fred Kuhns (6/6/2014)CS422 – Operating Systems Concepts Six steps to perform DMA transfer

9 9 Fred Kuhns (6/6/2014)CS422 – Operating Systems Concepts 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.

10 10 Fred Kuhns (6/6/2014)CS422 – Operating Systems Concepts 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

11 11 Fred Kuhns (6/6/2014)CS422 – Operating Systems Concepts 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

12 12 Fred Kuhns (6/6/2014)CS422 – Operating Systems Concepts 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)

13 13 Fred Kuhns (6/6/2014)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

14 14 Fred Kuhns (6/6/2014)CS422 – Operating Systems Concepts 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

15 15 Fred Kuhns (6/6/2014)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

16 16 Fred Kuhns (6/6/2014)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

17 17 Fred Kuhns (6/6/2014)CS422 – Operating Systems Concepts 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

18 18 Fred Kuhns (6/6/2014)CS422 – Operating Systems Concepts 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

19 19 Fred Kuhns (6/6/2014)CS422 – Operating Systems Concepts Life Cycle of an I/O Request

20 20 Fred Kuhns (6/6/2014)CS422 – Operating Systems Concepts Intercomputer communications context switch mode switch mode switch context switch

21 21 Fred Kuhns (6/6/2014)CS422 – Operating Systems Concepts 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


Download ppt "Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns Department of Computer."

Similar presentations


Ads by Google