The Device Manager

The Device Manager (DM) is responsible for managing the use of all devices that are peripheral to computer system. Not all input is derived from people (for example it may derive from instruments, storage devices and so on. Similarly, not all output is intended for people; examples again include instruments, storage devices, etc. The management of input and output is a vital part of the computer.
The DM will attempt to maintain a balanced use of all device requests according to the supply and demand. One problem is that device resources are limited and may also have to be shared between a number of jobs. The DM also provides the human interface function as it is typically the user (a person) who will input a job, command or the data. The user may receive visual, audio or hard-copy output as a result.


The Device Manager aims to:

1. achieve device independence
It aims to facilitate more simplified software development. That is it removes the complexities of individual devices and provides a 'translator' for device use.

2. handle errors
The DM will ensures 1/0 data are correctly handled, and will inform user in event of any detected error.

3. speed up transfer of data
As the 1/0 is typically the slowest part of a program's execution the DM will apply a range of algoritluns to enhance both the software and hardware speeds.

4. handle deadlocks
The DM will monitor conditions that can 'lock up' a system (e.g., resource holding), and will take steps to try to avoid these conditions.

5. enable multi-users systems to use dedicated devices
The DM will assign sensible printing instructions, whilst trying to prevent the erroneous output of data,

All devices are 1/0 peripherals. The device manager is a 'sub-manager' of the general operating system, as such it is responsible for communicating with all these devices as required by an individual job. All 110 operations are fundamental to every operating system. The control of peripherals must be handled efficiently. The DM will attempt to make efficient use of all available devices whilst retaining integrity of data.

The DM will:

  • monitor and track the status of every device, channel and control unit
  • decide how to make efficient use of available resources
  • set fair and efficient policies (FCFS, Prioritization, etc.) for use of devices
  • allocate devices and length of use according to policy and job requirement
  • re-allocate devices
  • deal with device errors including correction and user notification

Main categories of devices

Peripheral equipment can be described as those hardware devices that are attached to a computer. This will include for example devices for input, output, communications and secondary storage. Some devices may be used for more than one activity, e.g., a disk used for input and output. Input devices will receive data and transfer it to the CPU. Output devices will receive and present data from the CPU.
The management and control of all input/output operations is fundamental to all operating systems. The device manager aims to control access to ensure efficient use of devices whilst at the same time ensuring the integrity of the data that are accessed via these devices.

Examples of I/O devices include:

Video displays
This output device will display the output on a visual display unit and can be said to resemble a television screen. This device may form part of an interactive computer system where a response, message or request is initiated by the processor and sent to the user. No further processing will take place until the necessary action is taken by the user. The response time from the user is inevitably far slower than any action undertaken by the processor.

This input device may be found as part of an on-line/interactive computer system. - Many keyboards adopt the QWERTY layout - this is the actual layout of the keys on your keyboard. The standard is said to allow for the frequency that a particular letter is used measured against the physical stretching of your fingers to reach certain keys. Other keyboard layouts that have been used include DVORAK, MALTRON, VELOTYPE, all of which have been developed in an attempt to increase data entry speed.

Drives - disk, tape, CD ROM
This input/output device may require data to be keyed (typed in using a keyboard) first. The data will be saved to the secondary storage device, e.g., disk. The disk may be used to input data for processing at a later stage.

These output devices are used to support a of computer systems. They are typically categorised according to speed, the method of printing (e.g., impact or non-impact printing) and the quality of output, (e.g., letter quality, high, low, etc.). Line printers are considered impact printers, where the letters themselves make contact with the paper surface. This contact will involve a high degree of mechanical movements to produce output, as a result impact printers are typically slower than non-impact printers. Laser printers are a form on non-impact printer. No keys physically hit the paper. With the laser printer a beam of light writes an image onto the surface of the drum (which forms part of the printer). This in turn causes the toner (form of ink) to be deposited and transferred to the paper. Very fast laser printers are now available where the quality of output is to a very high standard.

Other input/output devices include, sound cards, modems, optical character/mark readers, magnetic ink character readers, bar code readers, kimball tags, forms of voice input devices, smart card readers, etc..

Device characteristics

Individual devices will typically be made up of many component parts that in turn will affect rate of the speed at which data can be transferred. Inevitably each device will consist of both electronic and mechanical elements. An input event will result in some form of electrical signal that will need to be converted into a signal that allows the mechanical movement of the device to occur. As a result this conversion of signals will incur longer access times and subsequently result in lower data transfer rates. In addition regular intervention from the input/output (I/O) controller is required to facilitate this action - the actual intervention from the I/O controller further slows down data transfer rates.

Some example data transfer rates follow:-
Keyboard - 50 words per minute (with average of 5 characters per word) are input via keyboard
- 250 bytes (characters) per minute
- 4 bytes per second.

These section contains in excess of 15,000 bytes (characters). Remember spaces, tabs and other characters that are not normally seen are also considered here. These characters will have some form of binary representation as with ordinary characters such as letters of the alphabet. In theory this section of the workbook could have been input in 3750 seconds -that just over an hour!

Printer - 12 pages per minute (where each page is set at 80 characters wide x 66 lines)
- 12 x 5280 bytes per minute = 63360 bytes per minute
- 1056 bytes per second
If we continue to consider these lecture notes (15,000 bytes), using this calculation this document will take less than a minute to print!

Disk transfer rates will depend on the type of disk, examples include:
HDD (IDE) - 5 Megabits per second (MBps)
HDD (SCSI) - 10-20 MBps
CDROM(xl) - 150 MBps
CD ROM (x8) - 900 MBps

Noticeably, by comparison data transfer rates from the computer to a printer are far quicker, here human intervention does not involve keying in any characters. Humans cannot begin to the match processing speeds as evidenced with a computer processor. You should be aware that the technology supporting these storage devices is continually improving, as such the examples given aim only to provide an indication of the speed differentials between the different types of devices.

A further characteristic of an input/output device is evidenced in the way that data are written to or read from a storage device. Two categories include character oriented devices and block oriented devices:

Character Devices - Here data are handled in a series of bytes (byte stream), that is data are sent one character at a time. There is little structure (if any) to a byte stream. Line printers are examples of character oriented devices.

Block Devices - Here data are handled in blocks that are fixed in size. The data will be transferred one block at a time. This technique was originally designed to save space on a magnetic tape and to reduce the number of input/output requests needed.


The device manager aims to balance these speed differentials in such a way that all devices are being used efficiently most of the required time. The DM is mainly concerned with providing the shared use of devices, whilst maintaining acceptable speeds for all users. The DM facilitates a range of service types:

1. dedicated devices
Here one job will reserve the sole use of device throughout its execution. Some jobs are more suited to dedicated use, e.g., plotters, tape drives etc.. A device may not be used 100% of the time that the job is active - as such it should be noted that an idle device time is a wasted resource.

2. shared devices
Here the DM will assign a device to a number of active jobs running at the at same time. Inevitably there will be areas of conflict where for example two jobs are 'fighting; for the same device. In this case these issues will be resolved using a predetermined policy. The DM will sequence process requests in order to achieve optimum device use whilst attempting to avoid job conflicts.

3. virtual devices
This can be considered as a combination of the two above - where dedicated devices are used in a shared way. To accomplish this spooling is used to re-route an individual job's output to disk. When 'spooled' output is complete this is then directed solely to a device for output. An example of this could be where two programs running concurrently have been released by two different users. Program one is producing sales invoices and program two is producing a stores picking list. All records produced for each program are temporarily saved to a spool area. Only when processing has finished, are the completed output sent to the printer. When the printer is ready to receive invoices the paper will need to be changed to invoice paper. Notably the owners of each job think they are sending their output direct to the same printer. The halfway point (spool buffer) is of no significance to the user.


Input/Output controllers

The DM will have help from a number of I/O Controllers that control one or more peripheral device. The controller aims to relieve the CPU from undertaking routine peripheral control tasks (e.g. lowering and raising a pen for a plotter).

Peripherals typically have two main component parts:

1. electro-mechanical part
2. electronic part

The electronic part provides the control and interface for the electro-mechanical part. You may find the I/O controller on a plug-in card, especially if the device is optional. Alternatively, it may form part of the Motherboard, notably when the device is compulsory, for example a keyboard. The I/O Controller's job is to handle the I/O device and establish the required bus access for it.


Device Manager software

This consists of four parts:

  • user level interface
  • device independent component
  • device drivers
  • interrupt handlers


Basic Input/Output Software (BIOS)
The BIOS is stored on a ROM chip normally found on the Motherboard. This chip is accessed when the computer system is first switched on via a boot program (here a boot program contains program instruction that is executed when a computer is booted up - started). The overall objective of the BIOS is to ensure that the range of input/output devices connected to the computer system can work together. This is achieved through a range of low level program routines that works in support of the device manager's role to manage and co-ordinate all the input/output operations that are put to devices connected to the computer.

User level interface
The User Level Interface is responsible for all the user interaction with the system. It provides an application interface for the devices. It normally consists of software library items linked into a common user program. This library may be general (as provided by a program's compiler) or specific (as provided with a device, for example the font libraries supplied with some printers). This interface level facilitates interaction between a user/system and a particular device. For example the steps required to assign a printer to a particular user and their job, or the steps taken to adopt printing fonts not supported by a particular printer by its manufacturing default.

Device independent component
A file can be read/written to a device - the operating system disguises the differences. A file may for example be re-directed to a line printer, despite the fact that the data were originally stored in blocks to disk. Some functions of device handling are general and apply to all peripherals, as such they are built into the operating system. Typical functions include device naming, protection, buffering, allocation, de-allocation and error handling.

Device drivers
A device driver can be described as a hardware or software unit that interfaces between the device and the CPU. It is the unit that performs functions such as interrupts, error detection and data buffering. It is responsible for translating instructions from an application into conunands that the device can understands. The device driver will contain device dependent code which will be specific to the type or make of device. It is normally written by the device suppliers and then loaded as an extension to the operating system at time of device installation.

Interrupt handlers
The interrupt handlers are a crucial part of the system. They are responsible for synchronisation of processes and their requirements. The interrupt handler (11-I) monitors the current I/O usage situation.

When an interrupt is received the III decides how to best respond. It identifies which device sent the interrupt request. At which stage the active process is interrupted (paused) and the device is paused. The interrupt signal is received, the status is analysed and a response is given. The device is restarted when the control is returned to the interrupted process. In some case a priority interrupt scheme is used.
There are three main types of interrupts:

1. Internal hardware interrupts

For example where a program tries to divide by zero - the computer system's digital logic level will not permit this.

2. External hardware interrupts
This may be caused by the peripheral device controllers or by co-processors - for example where the interrupts are hardware manufacturer explicit and so cannot be overridden with software.

3. Software interrupts
These are typically generated by the applications software or the user. They usually only temporarily appear to take over control of the computer whilst waiting for some form of response.

Direct Memory Access
Direct Memory Access (DMA) is a technique that allows a device to gain direct access to the main memory of the computer. When the device initiates direct memory access the processor is compelled to stop all bus activity - so allowing for higher data rates. This I/O technique allows a control unit to access the main memory directly, and therefore transfer the data without intervention from the CPU.

A buffer is a temporary storage area reserved for an 1/0 operation where a quantity of data will be read from, or written to disk. The buffers temporarily reside in useful locations throughout the system, for example in main memory, channels, and control units. They can store data that will be read from an input device, or that will be written to an output device They will allow I/O results to be queued into a direct access device prior to writing.

The CPU will move data onto the buffer very quickly. The device will move data from the buffer very slowly. They are effectively used to allow for speed differences in I/O. In other words they can be used to synchronize the movement of data between the faster CPU and the slower device channels.


In this section we have defined the role of the Device Manager, in particular in reference to the general model of an operating system. We have identified three categories of device services, including dedicated, shared and virtual device services.

We have examined each of the four components found in the Device Manger Software and identified three types of interrupt handlers.
Finally we have examined how devices use memory, in particular Direct Memory Access and the use of buffers.