• No results found

1B11 Operating Systems. Input/Output and Devices

N/A
N/A
Protected

Academic year: 2021

Share "1B11 Operating Systems. Input/Output and Devices"

Copied!
9
0
0

Loading.... (view fulltext now)

Full text

(1)

1B11 Operating Systems

Input/Output and Devices

Prof. Steve R Wilbur s.wilbur@cs.ucl.ac.uk

Lecture Objectives

l How do the bits of the I/O story fit together?

(2)

1B11-5 1999 Slide 3

Devices

l There are lots of different devices that can be

attached to a computer:

o Storage magnetic, optical disk, tape, etc. o Display, Keyboard, Pointer (mouse,tracker) o Network Interface Card

o Audio, Video

o Robot arms, toaster, coffee machine, 350bhp Chrysler

V8 electronic ignition engine management system

l Good to have a unified interface in OS

Device Drivers

l Software in OS to manage I/O to a device is

called a device driver

l Devices can sourceor sinkdata

l Devices may need to be controlled in specific

ways, e.g.rewind

l So an OO design for a generic device driver might

include two classes, each with a set of methods:

o open(), read(), write(), close() o control(), handle_event()

(3)

1B11-5 1999 Slide 5

Device Drivers - 2

l A device driver abstracts specific device

hardware into a generic model of I/O device

l Result is abstract modelsof disks, tapes, screens

etc.

l Makes it easy to port OS and applications to new

hardware -device independence

l Internally, device driver is programmed with

details of specific device, but presents relevant

abstractionat its interface

Device Drivers - 3

l However, we can’t be completely generic l Devices can be classed broadly into a small

number of categories:

o character (byte) devices

] modem, keyboard, maybe mouse

o block (bulk) devices

] disk, net, screen

l Categories are anengineering trade-offto keep

(4)

1B11-5 1999 Slide 7

Internal to Device Driver

l Driver needs to cope with device characteristics: ] polled, DMA and interrupts

] memory mapped

] device controller commands etc l So typical device driver includes:

] initialise device (at OS boot time) ] start output

] start input

] control device (seek or rewind)

] shutdown device (at OS shutdown time)

] interrupt service routine for input (and output and control)

System Call Handler (TRAPs)

The Big Picture

Disk Device Driver Keyb’d Device Driver Screen Device Driver Disk Device Driver Generic file and I/O Handler

Kernel Space User Space Application File Extra Library ISAM Library Threads Library OS Interface

(5)

1B11-5 1999 Slide 9

Example - Write to Disk

l Simplified version!

l User makes system callto write specified block of data to disk l Processor switches to kernel mode

l System Call Handlerinvoked (TRAP) and syscall parameters checked l Generic file and I/O Handlercalled (TRAP function indicates I/O) l User data copied to OS bufferor locked to prevent it being swapped

out while I/O pending (or overwritten by user if asynchronous I/O)

l Device driver start()method called - buffer passed as argument l Device driver adds buffer to queueof pending I/O requests

o may order queue e.g. to minimise disk head movement o will get processed in due course

l Return to generic I/O handler which suspends user processand

resumes next ready process

Example - Write to Disk - 2

l “Other side” of device driver

l When a disk transfer complete interruptoccurs (from earlier transfer)

interrupt service routine (ISR) removes indicates completion details in buffer and removes blocked indicator from that Ps PCB for the

schedulerto use

l Look on pending request Q for new work, set up DMA registers for

transfer and start transfer

l Return from interrupt l Notes:

o if no new work the ISR just returns

o if Q is empty when start() is called the device driver will start the transfer immediately

(6)

1B11-5 1999 Slide 11

Interrupt Service Routines

l These are installed by the device initialisation

code (boot time)

o by adding them to the jump table in the generic

interrupt handler for the device’s interrupt level

l They are called by the device controller (C in

diagram) sending an interrupt signal to the processor

l ISR then saves a small part of the current context

(OS or User) and jumps to the code for the handler…..

l Which saves any extra state, and deals with it….

Buffers

l Block mode DMA devices need buffers (for

queueing data between the device and the user)

l The operating system keeps and manages a pool

of these blocks of memory - typically of several different sizes, for different cases

(7)

1B11-5 1999 Slide 13

Device Driver

Device Controller Device Generic I/O handler Data transfer Interrupt Start() I/O Request Q Interrupt Service Routine Device Driver Generic (first level) Interrupt Handler 1 2 3 a d c b

Notes

l File abstractiondealt with by generic code

(handler)

l Device abstractiondealt with by device driver

-maps to real device

l Q is used to manage producer-consumer

(8)

1B11-5 1999 Slide 15

Network Devices

l Abstract network deviceis provided in similar

way

l Generic network functions call network device

drivers

l ∴ Same/similar interface whatever type of links

and devices actually used to physically connect computers - another abstraction!!!

Graphic Displays

l Bitmap displaysare usually implemented

slightly differently

o display typically refreshed from a block of dual-ported

cheap memory

o written by the processor, and read by the CRT

controller

l So windows systems simply write bitmaps to this

area - has the effect of updating the screen (1 scan time later)

(9)

1B11-5 1999 Slide 17

Pointers/trackers

l Pointing devices

o interrupt with the current x/y position of the pointer o or delta-x, delta-y since last interrupt

o i.e. they provide a stream of events

l These may be conveyed to user process via

software interruptsto give the programmer the illusion of event streams

l Fits thread model very well

Summary

l Device abstraction is common in OS to group

devices by broad class, and provide a standard API

l Devices are accessed via a table - another piece of

book-keeping that the OS must do

l For some groups of devices, further layers of

abstractionare also provided - including:

References

Related documents

Croatian non-financial companies manage financial risks primarily with simple risk management instruments such as natural hedging, while in the case of derivatives

open Opens the I/O device close Closes the I/O device read Reads from the I/O device write Writes to the I/O device. ioctl Used for reading and writing

Offshore Outsourcing of Software Development has turned into a major industry for under-developed countries and has become a normal business model for software development

Purdue University as they transitioned into the workplace, and the second study focused on 7 first-year students transitioning to engineering degree coursework.. Additionally, a

Chemical energy is converted to heat energy, kinetic energy, electrical energy and lastly to light energy.. Chemical energy is converted

The Hering case suggests that the only possible way to overcome the possibility that nuclear fire orders were almost certainly insane, corrupt, or violative of the laws of war would

• Allow vGPU device model to inject virtual interrupt • Selective I/O resource pass-through. UPSTREAM

On termination the device signals the CPU’s interrupt controller (if the interrupt controller is not busy servicing another higher priority interrupt)!. If the interrupt can be