21 i/o management (1) - itec-os start · 2009-02-18 · 21 i/o management (1) © 2009 universität...
TRANSCRIPT
![Page 1: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/1.jpg)
21 I/O Management (1)21 I/O Management (1)
1© 2009 Universität Karlsruhe, System Architecture Group
I/O Design, I/O Subsystem, I/O-HandlerDevice Driver, Buffering, Disks, RAID
January 26 2009WT 2008/09
![Page 2: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/2.jpg)
Tanenbaum, A.: Modern Operating Systems 2nd (5) Stallings, W.: Operating Systems 5th (11) Silberschatz, A.: Operating System Concepts 7th (13) Nutt, G.: Operating Systems 2nd (5)
Recommended Reading
© 2009 Universität Karlsruhe, System Architecture Group 2
Bacon, J.: Operating Systems (3) Nehmer, J.: Systemsoftware: Grundlagen
moderner Betriebssysteme, (10)
![Page 3: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/3.jpg)
Roadmap Motivation
Repetition: I/O-Devices Device Categories I/O-Functionality Data Transfer
I/O-SubsystemD i P t
© 2009 Universität Karlsruhe, System Architecture Group 3
Design Parameters I/O Layering I/O-Buffering
Disk I/O Management Disk, CD-Rom, … Disk Layouts and Formats Disk Scheduling RAID Disk Caching
Clocks and Timer
![Page 4: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/4.jpg)
Problems of I/O Management
There are many various types of I/O devices Applications don‘t want to care about device specifics Device independent I/O subsystems, e.g.
the file system or the network stack
© 2009 Universität Karlsruhe, System Architecture Group 4
the network stackdo not want to care about device specifics
Most device management software will not be developed by OS suppliers, but by device vendors
I/O speed can’t keep up with CPU speed
On most computers, there is parallelism between I/O & CPU
![Page 5: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/5.jpg)
Motivation
Linux 2.0 Kernel SLOCs, I/O Portion
© 2009 Universität Karlsruhe, System Architecture Group 5
![Page 6: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/6.jpg)
Motivation
Linux 2.4 Kernel SLOCs, I/O Portion
© 2009 Universität Karlsruhe, System Architecture Group 6
![Page 7: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/7.jpg)
Device Management Objectives
Abstraction from details of physical devices
Serialization of I/O-operations by concurrent applications
Protection of standard-devices against unauthorized
Motivation
© 2009 Universität Karlsruhe, System Architecture Group 7
gaccesses
Handling of sporadic device errors
Virtualizing physical devices via memory and time multiplexing (e.g., pty, RAM disk)
![Page 8: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/8.jpg)
I/O System Organization
Application
API
© 2009 Universität Karlsruhe, System Architecture Group 8
Command DataStatus
Device Driver
Device Independent I/O Subsystem(e.g. File System)
Hardware Interface
![Page 9: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/9.jpg)
Repetition: I/O-Devices
Categories of I/O Devices (Stallings: Operating Systems 11.1):
“Noticeable” directly by humans
Device TypesDevice Types
© 2009 Universität Karlsruhe, System Architecture Group 9
Machine readable
Communication devices
![Page 10: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/10.jpg)
“Noticeable” by Humans
Used to “communicate” with user Video display terminals Keyboard Mouse
Device TypesDevice Types
visual
© 2009 Universität Karlsruhe, System Architecture Group 10
Printer
Headphone Microphone
Force-feedback joystick Data-glove
…??
audio
tactile
??
![Page 11: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/11.jpg)
Machine Readable
Used to communicate with local devices
Disk drives Tape drives
Device Types
© 2009 Universität Karlsruhe, System Architecture Group 11
Controllers (SCSI, CardBus, FC) Actuators Sensors ...
![Page 12: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/12.jpg)
Communication Devices
Used to communicate with remote devices Network adapters
Device Types
© 2009 Universität Karlsruhe, System Architecture Group 12
Modems ...
![Page 13: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/13.jpg)
Device Parameters
Characteristics of I/O Devices
© 2009 Universität Karlsruhe, System Architecture Group 13
next slide
![Page 14: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/14.jpg)
Data Rates
Device Parameters
© 2009 Universität Karlsruhe, System Architecture Group 14
![Page 15: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/15.jpg)
Device Controller
I/O devices have two types of components: the mechanical component(s)
often the major reason for high latency, i.e. low performance
the electronic component(s)
Device Controller
© 2009 Universität Karlsruhe, System Architecture Group 15
Electronic component = device controller Controller's tasks:
process device commands convert between device specific data representation
(e.g., bit serial, byte parallel) and block of bytes perform error correction and handshake as necessary make data available to main memory
may be able to handle multiple devices
![Page 16: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/16.jpg)
Memory-Mapped I/O (1)
Device Addresses
© 2009 Universität Karlsruhe, System Architecture Group 16
Separate I/O-address space and memory address space MOV R0, 4 // <4> → R0 IN R0, 4 // <port 4> →R0
Memory-mapped I/O // 1 common physical AS (PDP 11) Hybrid (Pentium) // part of I/O space in memory
// part in an extra address spaceHint: Discuss pros and cons
![Page 17: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/17.jpg)
Memory-Mapped I/O (2)
Device Addresses
© 2009 Universität Karlsruhe, System Architecture Group 17
(a) Single-bus architecture (b) Dual-bus memory architecture
![Page 18: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/18.jpg)
Repetition: Interrupts
Device Interrupts
PIC/APIC
© 2009 Universität Karlsruhe, System Architecture Group 18
Connections between devices and the interrupt controlleruse interrupt lines on the bus rather than dedicated wires
Bus
![Page 19: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/19.jpg)
Goals of I/O-Software (1)
Device independence programs can access any I/O device without
specifying device in advance (floppy, hard drive, or CD-ROM)
Uniform naming
Basic of I/O Software
© 2009 Universität Karlsruhe, System Architecture Group 19
Uniform naming name of a file or device either a string or an
integer not depending on machine- or device-type
Error handling handle as close to the hardware as possible
if hardware can handle the error, that’s fine, e.g. just retry a “broken read from disk”
![Page 20: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/20.jpg)
Goals of I/O-Software (2)
Synchronous vs. asynchronous transfers blocked transfers vs. interrupt-driven
Buffering data coming off a device cannot be stored in the
Basic of I/O Software
© 2009 Universität Karlsruhe, System Architecture Group 20
gfinal destination
avoid superfluous copying (see I/O-Lite*)
Sharable vs. exclusive devices disks are sharable tape drives would not be
*V. Pai, P. Druschel, W. Zwaenepoel: I/O-Lite: ”A Unified I/O-Buffering and Caching System”, 3rd OSDI, New Orleans, 1999
![Page 21: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/21.jpg)
Asynchronous or synchronous I/O
Techniques for I/O-Management
Programmed I/O thread is busy-waiting for the I/O-operation to complete,
processor cannot be used else where
Interrupt-driven I/O I/O-command is issued
Basic of I/O Software
© 2009 Universität Karlsruhe, System Architecture Group 21
/ processor continues executing instructions (of same or other
thread) I/O-device sends an interrupt when I/O-command is done
Direct Memory Access (DMA) DMA module controls exchange of data between main
memory and I/O device processor interrupted after entire block has been transferred
![Page 22: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/22.jpg)
Programmed I/O (1)
Basic of I/O Software
© 2009 Universität Karlsruhe, System Architecture Group 22
Steps in printing a string
![Page 23: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/23.jpg)
Programmed I/O (2)
copy_from_user(buffer, p, count) // p = kernel buf for (i=0; i<count; i++{ // loop on each characterwhile(*printer_status_reg!=READY); // loop until ready
// busy waiting
Basic of I/O Software
© 2009 Universität Karlsruhe, System Architecture Group 23
// busy waiting*printer_data_reg =p[i]; // output 1 character
}return_to_user();
Printing string using programmed I/O
![Page 24: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/24.jpg)
Interrupt Driven I/0
copy_from_user(buffer, p, count);enable_interrupts();while(*printer_status_reg!=READY);*printer_data_reg=p[0];schedule();
if(count==0) {unblock_user();
}else{*printer_data_reg=p[i];count = count – 1;i i+1
Basic of I/O Software
© 2009 Universität Karlsruhe, System Architecture Group 24
Printing string using interrupt-driven I/O Code executed when print system call is made Interrupt service procedure
i=i+1;}acknowledge_interrupt();return_from_iterrupt();
![Page 25: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/25.jpg)
I/O Using DMA
copy_from_user(buffer, p, count);set_up_DMA_controller();schedule();
acknowledge_interrupt();unblock_user();return_from_interrupt();
Basic of I/O Software
© 2009 Universität Karlsruhe, System Architecture Group 25
Printing string using DMA code executed when the print system call is made interrupt service procedure
![Page 26: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/26.jpg)
DataCount
DataRegister
AddressR i t
Data Lines
Address Lines
# words to be transfered
device address
Basic of I/O Software
Typical DMA Block Diagram
© 2009 Universität Karlsruhe, System Architecture Group 26
Register
ControlLogic
Address Lines
DMA RequestDMA Acknowledge
InterruptReadWrite
main memory address
![Page 27: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/27.jpg)
Direct Memory Access
Takes control of system from the CPU to transfer a block of data to and from memory over system bus
Cycle stealing: used to transfer data on the system bus, data is transferred “word” by “word*”
Basic of I/O Software
© 2009 Universität Karlsruhe, System Architecture Group 27
* also multiple of words depending of system bus protocol
Instruction cycle of CPU is suspended for a while so that a word can be transferred
CPU pauses 1 bus cycle
![Page 28: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/28.jpg)
Time
Instruction Cycle
ProcessorCycle
ProcessorCycle
ProcessorCycle
ProcessorCycle
ProcessorCycle
ProcessorCycle
DMA and Interrupt Breakpoints
Basic of I/O Software
© 2009 Universität Karlsruhe, System Architecture Group 28
CycleCycle Cycle Cycle Cycle Cycle
FetchInstruction
DecodeInstruction
FetchOperand
ExecuteInstruction
StoreResult
ProcessInterrupt
DMABreakpoints
InterruptBreakpoint
![Page 29: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/29.jpg)
Direct Memory Access
Cycle stealing causes CPU to slow down
Number of required busy cycles can be reduced by integrating DMA and I/O
Basic of I/O Software
© 2009 Universität Karlsruhe, System Architecture Group 29
functions
Path between DMA module and I/O module that does not include the system bus
![Page 30: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/30.jpg)
P DMA I/O I/O M
. . .
Single-bus, Detached DMA
Basic of I/O Software
© 2009 Universität Karlsruhe, System Architecture Group 30
Processor DMA I/O I/O Memory
Analysis:All modules share same system-bus danger of system bus contention
(another example of low scalability)
DMA uses programmed I/O to transfer data between memory and device each word being transferred requires 2 bus-cycles!
![Page 31: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/31.jpg)
DMA Transfer with Fly-By Mode
Device Addresses
© 2009 Universität Karlsruhe, System Architecture Group 31
Word Mode ( → cycle stealing) Burst Mode
![Page 32: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/32.jpg)
Processor DMA MemoryDMA
Integrated DMA Extra DMA
Single-bus, Integrated DMA-I/O
Basic of I/O Software
© 2009 Universität Karlsruhe, System Architecture Group 32
I/O I/O
I/O
Analysis: Additional “data-lines” between DMA and I/O-devices fewer contention problems
DMA competes for system bus only when it transfers a word from/to memory.Due to extra data lines, one bus cycle is saved per word to be transferred
![Page 33: 21 I/O Management (1) - ITEC-OS Start · 2009-02-18 · 21 I/O Management (1) © 2009 Universität Karlsruhe, System Architecture Group 1 I/O Design, I/O Subsystem, I/O-Handler Device](https://reader033.vdocument.in/reader033/viewer/2022042102/5e7ec0d3657ec728af40e8b0/html5/thumbnails/33.jpg)
Processor DMA Memory
System Bus
I/O Bus
DMA and Separate I/O Bus
Basic of I/O Software
© 2009 Universität Karlsruhe, System Architecture Group 33
I/OI/OI/O
Analysis:Additional peripheral-bus between DMA and I/O-devices fewer contention problems on system bus and reducing
the number of connections to 1 between DMA and I/O-Bus
Configuration is easily to expand (i.e. use hierarchical I/O-buses), scalability