18
Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns ([email protected], http://www.arl.wustl.edu/~fredk) Department of Computer Science and Engineering Washington University in St. Louis

Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns ([email protected], fredk) Department of Computer

Embed Size (px)

Citation preview

Page 1: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

WashingtonWASHINGTON UNIVERSITY IN ST LOUIS

I/O and Networking

Fred Kuhns([email protected], http://www.arl.wustl.edu/~fredk)

Department of Computer Science and EngineeringWashington University in St. Louis

Page 2: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) CS422 – Operating Systems Concepts 2

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 to1. provide simple and consistent interface to user2. optimize I/O use for maximum concurrency

• Mechanisms used by OS– device drivers provide standard interface to I/O devices

Page 3: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) CS422 – Operating Systems Concepts 3

I/O and Devices

Processor

Device Controller(firmware and logic)

Device X

command status data 0

data 1

data N-1

...

Bus

Device DriverX

Device table

dispatcher(interrupt handler)

Page 4: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) CS422 – Operating Systems Concepts 4

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 Techniques1. 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

complete3. 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

Page 5: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) CS422 – Operating Systems Concepts 5

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 Readcommand toI/O Module

Read Statusof I/OModule

CheckStatus

Read wordfrom I/OModule

Write wordinto memory

Done?

Yes

No

Next Instruction

CPU Memory

I/O CPU

ErrorCondition

I/O CPU

CPU I/O

Ready

NotReady

Page 6: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) CS422 – Operating Systems Concepts 6

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 Readcommand toI/O Module

Read Statusof I/OModule

CheckStatus

Read wordfrom I/OModule

Write wordinto memory

Done?

Yes

No

Next Instruction

CPU Memory

I/O CPU

ErrorCondition

I/O CPU

CPU I/O

Ready

Do somethingelse

Interrupt

Interrupt mechanism also used for exceptions

Page 7: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) 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 somethingelse

Issue Readblock commandto I/O module

Read statusof DMAmodule

Page 8: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) CS422 – Operating Systems Concepts 8

Six steps to perform DMA transfer

Page 9: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) 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.

Page 10: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) 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

Page 11: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) 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

Page 12: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) 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)

Page 13: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) CS422 – Operating Systems Concepts 13

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

Page 14: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) 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

Page 15: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) CS422 – Operating Systems Concepts 15

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

Page 16: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) CS422 – Operating Systems Concepts 16

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

Page 17: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) CS422 – Operating Systems Concepts 20

Intercomputer communications

context switch modeswitch

modeswitch

context switchcontext switch

Page 18: Washington WASHINGTON UNIVERSITY IN ST LOUIS I/O and Networking Fred Kuhns (fredk@arl.wustl.edu, fredk) Department of Computer

Fred Kuhns (04/10/23) 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