device management
DESCRIPTION
Device Management. 5. Input/Output Devices. Output Device. Processor. Input Device. The Device Driver Interface. … write(…); …. Device Interface. Terminal Driver. Printer Driver. Disk Driver. Terminal Controller. Printer Controller. Disk Controller. - PowerPoint PPT PresentationTRANSCRIPT
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-1
Copyright © 2004 Pearson Education, Inc.
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-2
Copyright © 2004 Pearson Education, Inc.
5DeviceManagement
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-3
Copyright © 2004 Pearson Education, Inc.
Input/Output Devices
Input Device Processor
Output Device
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-4
Copyright © 2004 Pearson Education, Inc.
The Device Driver Interface
Device InterfaceDevice Interface
…write(…);…
TerminalDriver
TerminalDriver
PrinterDriver
PrinterDriver
DiskDriver
DiskDriver
TerminalController
TerminalController
PrinterController
PrinterController
DiskController
DiskController
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-5
Copyright © 2004 Pearson Education, Inc.
Device Management Organization
ApplicationProcess
ApplicationProcess
FileManager
FileManager
Device Controller
CommandCommand StatusStatus DataData
Hardware Interface
System Interface
Device-IndependentDevice-Independent
Device-DependentDevice-Dependent
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-6
Copyright © 2004 Pearson Education, Inc.
System Call Interface
• Functions available to application programs• Abstract all devices (and files) to a few
interfaces• Make interfaces as similar as possible
– Block vs character– Sequential vs direct access
• Device driver implements functions (one entry point per API function)
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-7
Copyright © 2004 Pearson Education, Inc.
Example: BSD UNIX Driver
open Prepare dev for operationclose No longer using the deviceioctl Character dev specific inforead Character dev input opwrite Character dev output opstrategy Block dev input/output opsselect Character dev check for datastop Discontinue a stream output op
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-8
Copyright © 2004 Pearson Education, Inc.
Overlapping the Operation of a Device and the CPU
Variable x Register
Data on device
. . .read(dev_I, “%d”, x);y = f(x). . .
Device dev_IMemory CPU
. . .startRead(dev_I, “%d”, x);. . .While(stillReading()) ;y = f(x). . .
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-9
Copyright © 2004 Pearson Education, Inc.
Overlapping CPU-Controller Operations in a Process
App
I/O Ctlr
t1 t2 t3 t4 t5 t6 t7 t8 t9
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-10
Copyright © 2004 Pearson Education, Inc.
Overlapping Processing and I/O
App 1
App 2
I/O Ctlr
t1 t2 t3 t4
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-11
Copyright © 2004 Pearson Education, Inc.
Polling I/O Read Operation
read(device, …);
Data
Device Controller
CommandCommand StatusStatus DataData
read function
write function
1
2 3 4
5
Hardware Interface
System Interface
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-12
Copyright © 2004 Pearson Education, Inc.
Interrupt-driven I/O Operation
read(device, …);
Data
Device Controller
CommandCommand StatusStatus DataData
read driver
write driver
1
2
3
4
5Hardware Interface
System Interface
Device Status Table
DeviceHandler
DeviceHandler
InterruptHandler
InterruptHandler
6
7
8a
8b
9
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-13
Copyright © 2004 Pearson Education, Inc.
Device Independent Function Call
funci(…)
Trap Table
dev_func_i(devID, …) {// Processing common to all devices … switch(devID) { case dev0: dev0_func_i(…);
break; case dev1: dev1_func_i(…);
break; … case devM: devM_func_i(…);
break; };// Processing common to all devices …}
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-14
Copyright © 2004 Pearson Education, Inc.
Driver-Kernel Interface
• Drivers are distinct from main part of kernel
• Kernel makes calls on specific functions, drivers implement them
• Drivers use kernel functions for:– Device allocation– Resource (e.g., memory) allocation– Scheduling– etc. (varies from OS to OS)
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-15
Copyright © 2004 Pearson Education, Inc.
Reconfigurable Device Drivers
OtherKernel
services
OtherKernel
services
Entry Points for Device j
open(){…}
read(){…}
etc.
System call interface
Driver for Device j
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-16
Copyright © 2004 Pearson Education, Inc.
Handling Interrupts
int read(…) {// Prepare for I/O save_state(J); out dev#// Done (no return)}
Device driver J
Device ControllerDevice Controller
Interrupt HandlerInterrupt Handler
void dev_handler(…) { get_state(J);//Cleanup after op signal(dev[j]); return_from_sys_call();}
Device interrupt handler J
J
Device status table
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-17
Copyright © 2004 Pearson Education, Inc.
Handling Interrupts(2)
int read(…) { … out dev#// Return after interrupt wait(dev[J}); return_from_sys_call();}
Device driver J
Device ControllerDevice Controller
Interrupt HandlerInterrupt Handler
void dev_handler(…) {//Cleanup after op signal(dev[j]);}
Device interrupt handler J
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-18
Copyright © 2004 Pearson Education, Inc.
The Pure Cycle Water CompanyWater CompanyCustomer Office
Water Consumers
Water Producer
Delivering Water
Returning the Empties
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-19
Copyright © 2004 Pearson Education, Inc.
Hardware Buffering
ProcessProcess
Controller
Data
Device
ProcessProcess
Controller
B
Device
A
ProcessProcess
Controller
B
Device
A
Unbuffered Process reads bi-1
Controller reads bi
Process reads bi
Controller reads bi+1
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-20
Copyright © 2004 Pearson Education, Inc.
Double Buffering in the Driver
ProcessProcess
Controller
B
Device
A
ProcessProcess
Controller
B
Device
A
BA BA
Har
dwar
eD
rive
r
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-21
Copyright © 2004 Pearson Education, Inc.
Circular Buffering
From data producer
To data consumer
Buf
fer
i
Buf
fer
j
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-22
Copyright © 2004 Pearson Education, Inc.
A Generic Communications Device
GenericController
GenericController
LocalDevice
LocalDevice
CommunicationsController
CommunicationsController
DeviceDevice
Cabling connecting thecontroller to the device
•Printer•Modem•Network
Bus
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-23
Copyright © 2004 Pearson Education, Inc.
Rotating Media
Track (Cylinder)
Sect
or(a) Multi-surface Disk (b) Disk Surface (b) Cylinders
Cylinder (set of tracks)
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-24
Copyright © 2004 Pearson Education, Inc.
Storage Device
Magnetic Disk
(SCSI)
Controller
Driver• Get disk description• Set SCSI parms•read/write ops• Interrupt hander
SCSI API•commands•bits per byte•etc.
Device Driver API
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-25
Copyright © 2004 Pearson Education, Inc.
Compute vs I/O Bound
Compute-bound
I/O-bound
Time
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-26
Copyright © 2004 Pearson Education, Inc.
Disk Optimizations
• Transfer Time: Time to copy bits from disk surface to memory
• Disk latency time: Rotational delay waiting for proper sector to rotate under R/W head
• Disk seek time: Delay while R/W head moves to the destination track/cylinder
• Access Time = seek + latency + transfer
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-27
Copyright © 2004 Pearson Education, Inc.
Optimizing Seek Time
• Multiprogramming on I/O-bound programs => set of processes waiting for disk
• Seek time dominates access time => minimize seek time across the set
• Tracks 0:99; Head at track 75, requests for 23, 87, 36, 93, 66
• FCFS: 52+ 64 + 51 + 57 + 27 = 251 steps
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-28
Copyright © 2004 Pearson Education, Inc.
Optimizing Seek Time (cont)
• Requests = 23, 87, 36, 93, 66
• SSTF: (75), 66, 87, 93, 36, 23– 9 + 21 + 6 + 57 + 13 = 106 steps
• Scan: (75), 87, 93, 99, 66, 36, 23– 12 + 6 + 6 + 33 + 30 + 13 = 100 steps
• Look: (75), 87, 93, 66, 36, 23– 12 + 6 + 27 + 30 + 13 = 88 steps
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-29
Copyright © 2004 Pearson Education, Inc.
Optimizing Seek Time (cont)
• Requests = 23, 87, 36, 93, 66
• Circular Scan: (75), 87, 93, 99, 23, 36, 66– 12 + 6 + 6 + home + 23 + 13 + 30 = 90 + home
• Circular Look: (75), 87, 93, 23, 36, 66– 12 + 6 + home + 23 + 13 + 30 = 84 + home
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-30
Copyright © 2004 Pearson Education, Inc.
Serial Port
SerialDevice
SerialDeviceMemoryMemory
CPUCPU
• Printer• Terminal• Modem• Mouse• etc.
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-31
Copyright © 2004 Pearson Education, Inc.
Serial Port
RS-232 Interface• 9-pin connector• 4-wires• bit transmit/receive• ...
Serial Device (UART)
UART API•parity•bits per byte•etc.
Device Driver• Set UART parms•read/write ops•Interrupt hander
Software on the CPU
Device Driver API
Bus Interface
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-32
Copyright © 2004 Pearson Education, Inc.
Adding a Modem
SerialDevice
SerialDeviceMemoryMemory
CPUCPU
ModemModem
PhonePhone
Switched Telephone NetworkSwitched Telephone Network
• Dialing & connecting• Convert analog voice to/from digital• Convert bytes to/from bit streams• Transmit/receive protocol
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-33
Copyright © 2004 Pearson Education, Inc.
Serial Communication
Modem
RS-232
Serial Device
Device Driver•Set UART parms•read/write ops•Interrupt hander
Driver-Modem Protocol• Dialing & connecting• Convert analog voice to/from digital• Convert bytes to/from bit streams• Transmit/receive protocol
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-34
Copyright © 2004 Pearson Education, Inc.
CommDevice
CommDeviceMemoryMemory
CPUCPU
ModemModem
PhonePhone
CommDevice
CommDevice MemoryMemory
CPUCPU
ModemModem
PhonePhone
Switched Telephone NetworkSwitched Telephone Network
Exploiting the Phone Network
Logical CommunicationLogical Communication
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-35
Copyright © 2004 Pearson Education, Inc.
Data Networks
NetworkDevice
NetworkDeviceMemoryMemory
CPUCPU
NetworkDevice
NetworkDevice MemoryMemory
CPUCPU
Data NetworkData Network
Logical CommunicationLogical Communication
• Technology focus includes protocols and software (more on this later … Chapter 15 and beyond ...)
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-36
Copyright © 2004 Pearson Education, Inc.
MS Disk Description
0x00 0x02 <a jump instruction to 0x1e>0x03 0x0a Computer manufacturer name0x0b 0x0c Sectors per cluster (MS-DOS reads/writes a cluster of sectors)0x0d 0x0f Reserved sectors for the boot record0x10 0x10 Number of FATs0x11 0x12 Number of root directory entries0x13 0x14 Number of logical sectors0x15 0x15 Medium descriptor byte (used only on old versions of MS-DOS)0x16 0x17 Sectors per FAT0x18 0x19 Sectors per track0x1a 0x1b Number of surfaces (heads)0x1c 0x1d Number of hidden sectors0x1e … Bootstrap program
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-37
Copyright © 2004 Pearson Education, Inc.
NT Driver Organization
I/O P o rtio n o f N a tiv e A P II/
O M
anag
er
D ev ice D riv e r
NT
Exe
cuti
ve
H A L
In te rm ed ia te D riv e r
F ile S y s tem D riv e r
F ilte r D riv e r
F ilte r D riv e r
D a ta F lo w
D ev ice
Operating Systems: A Modern Perspective, Chapter 5
Slide 5-38
Copyright © 2004 Pearson Education, Inc.
NT Device Drivers
• API model is the same as for a file
• Extend device management by adding modules to the stream
• Device driver is invoked via an Interrupt Request Packet (IRP)– IRP can come from another stream module– IRP can come from the OS – Driver must respond to minimum set of IRPs
• See Part I of notes