Presentation is loading. Please wait.

Presentation is loading. Please wait.

I/O and Networking Fred Kuhns

Similar presentations


Presentation on theme: "I/O and Networking Fred Kuhns"— Presentation transcript:

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


Download ppt "I/O and Networking Fred Kuhns"

Similar presentations


Ads by Google