operating systems input/output devices (ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)
Post on 19-Dec-2015
217 views
TRANSCRIPT
![Page 1: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/1.jpg)
Operating Systems
Input/Output Devices
(Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)
![Page 2: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/2.jpg)
Introduction
One OS function is to control devices– significant fraction of code (80-90% of Linux)
Want all devices to be simple to use– convenient– ex: stdin/stdout, pipe, re-direct
Want to optimize access to device– efficient– devices have very different needs
![Page 3: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/3.jpg)
Outline
Introduction Hardware Software Specific Devices
– Hard disk drives– Clocks– Terminals
![Page 4: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/4.jpg)
Hardware
Types of I/O devices Device controllers Direct Memory Access (DMA)
![Page 5: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/5.jpg)
I/O Device Types
block - access is independent– ex- disk
character - access is serial– ex- printer, network
other– ex- clocks (just generate interrupts)
![Page 6: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/6.jpg)
Device Controllers
Mechanical and electronic component
CPU MemoryDisk
ControllerPrinter
Controller
System bus
The quick brownfox jumped overthe lazy dogs. Thequick brown fox...
OS deals with electronic– device controller
Mechanical
Electronic
![Page 7: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/7.jpg)
Direct Memory Access (DMA) Very Old
– Controller reads from device– OS polls controller for data
Old– Controller reads from device– Controller interrupts OS– OS copies data to memory
DMA– Controller reads from device– Controller copies data to memory– Controller interrupts OS
![Page 8: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/8.jpg)
Outline
Introduction Hardware Software Specific Devices
– Hard disk drives– Clocks– Terminals
![Page 9: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/9.jpg)
I/O Software Structure
Layered User Level Software
Device IndependentSoftware
Device Drivers
Interrupt Handlers
Hardware
(Talk from bottom up)
![Page 10: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/10.jpg)
Interrupt HandlersCPU
1) Device driver initiates I/O
(CPU executing, checking for interrupts between
instructions)
3) Receives interrupt, transfer to handler
4) Handler processes
(Resume processing)
I/O Controller
1) Initiates I/O
(I/O device processing request)
2) I/O complete. Generate interrupt.
![Page 11: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/11.jpg)
Interrupt Handler
Make interrupt handler as small as possible– interrupts disabled
Do minimal amount of work– defer rest until later in the rest of the device
driver– deferred procedure call
Implementation specific– 3rd party vendors
![Page 12: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/12.jpg)
Device Drivers
Device dependent code– includes interrupt handler
Accept abstract requests– ex: “read block n”
See that they are executed by device hardware– registers– hardware commands
After error check– pass data to device-independent software
![Page 13: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/13.jpg)
Device-Independent I/O Software Much driver code independent of device Exact boundary is system-dependent
– sometimes inside for efficiency Perform I/O functions common to all devices Examples:
– naming protection block size– buffering storage allocation error reporting
![Page 14: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/14.jpg)
User-Space I/O Software
Ex: count = write(fd, buffer, bytes); Put parameters in place for system call Can do more: formatting
– printf(), gets() Spooling
– spool directory, daemon– ex: printing, USENET
![Page 15: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/15.jpg)
I/O System Summary
User Processes
Device IndependentSoftware
Device Drivers
Interrupt Handlers
Hardware
I/O Request
I/O Reply
Make I/O call; Format I/O;Spooling
Naming, protection,blocking, buffering,
allocation
Setup device registers;check status
Wakeup driver when I/O completed
Perform I/O operation
![Page 16: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/16.jpg)
Outline
Introduction Hardware Software Specific Devices
– Hard disk drives
– Clocks
– Terminals
![Page 17: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/17.jpg)
Hard Disk Drives (HDD)
Controller often on disk
Cache to speed access
![Page 18: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/18.jpg)
HDD - Zoom– Platters
3000-10,000 RPM
(floppy 360 RPM)– Tracks– Cylinders – Sectors
Ex: hdb: Conner Peripherals 540MB
CFS540A, 516MB w/64kB Cache, CHS=1050/16/63– 1050 cylinders (tracks), 16 heads (8 platters), 63 sectors per track
Disk Arms all move together If multiple drives
– overlapping seeks but one read/write at a time
![Page 19: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/19.jpg)
Disk Arm Scheduling
Read time:– seek time (arm to cylinder)– rotational delay (time for sector under head)– transfer time (takes bits off disk)
Seek time dominates How does disk arm scheduling affect seek?
![Page 20: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/20.jpg)
First-Come First-Served (FCFS)
14+13+2+6+3+12+3=53 Service requests in order that they arrive Little can be done to optimize What if many requests?
x x x x x x x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Tim
e
![Page 21: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/21.jpg)
Shortest Seek First (SSF)
1+2+6+9+3+2 = 23 Suppose many requests?
– Stay in middle
– Starvation!
x x x x x x x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Tim
e
![Page 22: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/22.jpg)
Elevator (SCAN)
1+2+6+3+2+17 = 31 Usually, a little worse than SSF C-SCAN has less variance Note, seek getting faster, rotational not
– Someday, change algorithms
x x x x x x x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Tim
e
![Page 23: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/23.jpg)
Redundant Array of Inexpensive Disks (RAID)
Pull data in parallel For speed For fault-tolerance
– Example: 38 disks– Form 32 bit word, 6 check bits
CPU
![Page 24: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/24.jpg)
Error Handling
Common errors:– programming error (non-existent sector)– transient checksum error (dust on head)– permanent checksum error (bad block)– seek error (arm went to wrong cylinder)– controller error (controller refuses command)
![Page 25: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/25.jpg)
Clock Hardware
Time of day to time quantum
Crystal Oscillator
Pulse from 5 to 300 MHz
Decrement counterwhen == 0 - generate interrupt
Holding register toload counterCan control clock ticks
![Page 26: Operating Systems Input/Output Devices (Ch12.1 - 12.3, 12.7; 13.1-13.3, 13.7)](https://reader036.vdocuments.us/reader036/viewer/2022062516/56649d385503460f94a116ec/html5/thumbnails/26.jpg)
Clock Software
Clock driver uses hardware for OS– time of day
64-bit, in seconds, or relative to boot
– interrupt after quantum– accounting of CPU usage
separate timer or pointer to PCB
– alarm() system calls separate clock or linked list of alarms with ticks