Top Banner
Device Management
34

Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Dec 24, 2015

Download

Documents

Neal Page
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Device Management

Page 2: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Serial Port

SerialDevice

SerialDeviceMemoryMemory

CPUCPU

• Printer• Terminal• Modem• Mouse• etc.

Page 3: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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

Page 4: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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

Page 5: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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

Page 6: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

CommDevice

CommDeviceMemoryMemory

CPUCPU

ModemModem

PhonePhone

CommDevice

CommDevice MemoryMemory

CPUCPU

ModemModem

PhonePhone

Switched Telephone NetworkSwitched Telephone Network

Exploiting the Phone Network

Logical CommunicationLogical Communication

Page 7: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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

Page 8: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Rotating Storage

Track (Cylinder)

Sect

or

Top View of a Surface

Page 9: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

MS Disk Description0x00 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

Page 10: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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

Page 11: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Device Management Organization

ApplicationProcess

ApplicationProcess

FileManager

FileManager

DeviceDriver

DeviceDriver

Device Controller

CommandCommand StatusStatus DataData

Hardware Interface

System Interface

Page 12: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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)

Page 13: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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

Page 14: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Read with Pollingread(device, …);

Data

Device Controller

CommandCommand StatusStatus DataData

read function

write function

1

2 3 4

5

Hardware Interface

System Interface

Page 15: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Read Using Interruptsread(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

Page 16: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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)

Page 17: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Reconfigurable Drivers

OtherKernel

services

OtherKernel

services

Entry Points for Device j

open(){…}

read(){…}

etc.

System call interface

Driver for Device j

Page 18: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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

Page 19: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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

Page 20: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Memory Mapped I/O

PrimaryMemory

Device 0

Device 1

Device n-1

PrimaryMemory

Device 0

Device 1

Device n-1

Dev

ice

Add

ress

esM

emor

y A

ddre

sses

Mem

ory

Add

ress

es

Page 21: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

CPU-I/O Overlap

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

Page 22: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

I/O - CPU OverlapApp 1

App 2

I/O Ctlr

t1 t2 t3 t4

App

I/O Ctlr

t1 t2 t3 t4 t5 t6 t7 t8 t9

Overlapping App 1’s I/O with App 2

Overlapping App CPU with its own I/O

Page 23: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Direct Memory Access

PrimaryMemory

CPU

Controller

Device

PrimaryMemory

CPU

Controller

Device

Page 24: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

BufferingWater CompanyCustomer Office

Water Consumers

Water Producer

Delivering Water

Returning the Empties

• Water bottles are buffers• Office workers consume water from a buffer while water company fills other buffers

Page 25: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Hardware Buffering

ProcessProcess

Controller

Data

Device

ProcessProcess

Controller

B

Device

A

Unbuffered Process reads bi-1

Controller reads bi

Page 26: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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

Page 27: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Buffering in the Driver

ProcessProcess

Controller

B

Device

A

BA

Har

dwar

eD

rive

r

Page 28: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Buffering in the Driver

ProcessProcess

Controller

B

Device

A

ProcessProcess

Controller

B

Device

A

BA BA

Har

dwar

eD

rive

r

Page 29: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

A Ring Buffer

From data producer

To data consumer

Buf

fer

i

Buf

fer

j

Page 30: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Compute vs I/O Bound

Compute-bound

I/O-bound

Time

Page 31: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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

Page 32: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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

Page 33: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

Optimizing Seek Time (cont)

• Requests = 23, 87, 36, 93, 66

• SSTF: (75), 66, 87, 93, 36, 23– 11 + 21 + 6 + 57 + 13 = 107 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 = 87 steps

Page 34: Device Management. Serial Port Serial Device Serial Device Memory CPU Printer Terminal Modem Mouse etc.

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