Lecture Notes for Operating Systems

Introduction to Input-Output, 6 October 1999


These are provisional lecture notes, expect changes.

  1. hardware

    1. io devices - block or character, random or sequential, serial or parallel

    2. device controller or adapter

      1. front-end interface, towards the cpu - scsi, ide (integrated or intelligent drive electronics)

      2. back-end interface, towards the device - whatever the device presents

      3. bridging the interfaces - packaging and unpackaging data, error detection and correction

      4. cpu connection to device - bus or i-o channel

    3. dma - what transfers data between main store and the device driver?

      1. the cpu can do it - ties up the cpu

      2. the device can do it - ties up the bus (dual porting)

  2. software

    1. objectives - uniformity, device independence

    2. interrupts

      1. block processes on devices, waiting for an interrupt to awaken

      2. interrupt handler deals with the device, unblocks a sleeper

    3. device drivers

      1. one driver per device controller; may have several drivers per device controller, e.g. raw, formatted, rewind norewind tape access

      2. device independent front-end, device dependent back-end

      3. front-end presents a device-independent interface.

      4. back-end contains controller specific information

    4. device independence

      1. interface

      2. naming

      3. protection

      4. buffering

      5. error reporting

    5. user-space io

      1. libraries and system calls

      2. os-external support software - spoolers and daemons, mail, printing, netnews


This page last modified on 6 October 1999.