Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
23 views

Input Output Hardware

The document discusses how operating systems manage I/O devices through device drivers and controllers. It describes two categories of devices - block devices which communicate via entire data blocks and character devices which use single characters. Device controllers act as an interface between devices and their corresponding device drivers. The CPU communicates with I/O devices using memory-mapped I/O, special I/O instructions, or direct memory access which allows data transfer without CPU involvement. Interrupts provide more efficient I/O than polling by allowing devices to signal the CPU when needing attention.

Uploaded by

mmmoneyyyy2
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

Input Output Hardware

The document discusses how operating systems manage I/O devices through device drivers and controllers. It describes two categories of devices - block devices which communicate via entire data blocks and character devices which use single characters. Device controllers act as an interface between devices and their corresponding device drivers. The CPU communicates with I/O devices using memory-mapped I/O, special I/O instructions, or direct memory access which allows data transfer without CPU involvement. Interrupts provide more efficient I/O than polling by allowing devices to signal the CPU when needing attention.

Uploaded by

mmmoneyyyy2
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

Operating System - I/O Hardware

One of the important jobs of an Operating System is to manage


various I/O devices including mouse, keyboards, touch pad, disk
drives, display adapters, USB devices, Bit-mapped screen, LED,
Analog-to-digital converter, On/off switch, network connections,
audio I/O, printers etc.

An I/O system is required to take an application I/O request and


send it to the physical device, then take whatever response
comes back from the device and send it to the application. I/O
devices can be divided into two categories −

 Block devices − A block device is one with which the driver


communicates by sending entire blocks of data. For
example, Hard disks, USB cameras, Disk-On-Key etc.
 Character devices − A character device is one with which the
driver communicates by sending and receiving single
characters (bytes, octets). For example, serial ports, parallel
ports, sounds cards etc

Device Controllers
Device drivers are software modules that can be plugged into an
OS to handle a particular device. Operating System takes help
from device drivers to handle all I/O devices.

The Device Controller works like an interface between a device


and a device driver. I/O units (Keyboard, mouse, printer, etc.)
typically consist of a mechanical component and an electronic
component where electronic component is called the device
controller.

There is always a device controller and a device driver for each


device to communicate with the Operating Systems. A device
controller may be able to handle multiple devices. As an interface
its main task is to convert serial bit stream to block of bytes,
perform error correction as necessary.

Any device connected to the computer is connected by a plug and


socket, and the socket is connected to a device controller.
Following is a model for connecting the CPU, memory, controllers,
and I/O devices where CPU and device controllers all use a
common bus for communication.

Synchronous vs asynchronous I/O


 Synchronous I/O − In this scheme CPU execution waits while
I/O proceeds
 Asynchronous I/O − I/O proceeds concurrently with CPU
execution

Communication to I/O Devices


The CPU must have a way to pass information to and from an I/O
device. There are three approaches available to communicate
with the CPU and Device.

 Special Instruction I/O


 Memory-mapped I/O
 Direct memory access (DMA)

Special Instruction I/O

This uses CPU instructions that are specifically made for


controlling I/O devices. These instructions typically allow data to
be sent to an I/O device or read from an I/O device.

Memory-mapped I/O

When using memory-mapped I/O, the same address space is


shared by memory and I/O devices. The device is connected
directly to certain main memory locations so that I/O device can
transfer block of data to/from memory without going through
CPU.

While using memory mapped IO, OS allocates buffer in memory


and informs I/O device to use that buffer to send data to the
CPU. I/O device operates asynchronously with CPU, interrupts
CPU when finished.

The advantage to this method is that every instruction which can


access memory can be used to manipulate an I/O device. Memory
mapped IO is used for most high-speed I/O devices like disks,
communication interfaces.

Direct Memory Access (DMA)


Slow devices like keyboards will generate an interrupt to the main
CPU after each byte is transferred. If a fast device such as a disk
generated an interrupt for each byte, the operating system would
spend most of its time handling these interrupts. So a typical
computer uses direct memory access (DMA) hardware to reduce
this overhead.

Direct Memory Access (DMA) means CPU grants I/O module


authority to read from or write to memory without involvement.
DMA module itself controls exchange of data between main
memory and the I/O device. CPU is only involved at the beginning
and end of the transfer and interrupted only after entire block has
been transferred.

Direct Memory Access needs a special hardware called DMA


controller (DMAC) that manages the data transfers and arbitrates
access to the system bus. The controllers are programmed with
source and destination pointers (where to read/write the data),
counters to track the number of transferred bytes, and settings,
which includes I/O and memory types, interrupts and states for
the CPU cycles.

The operating system uses the DMA hardware as follows −

Step Description

1 Device driver is instructed to transfer disk data to a buffer address X.

2 Device driver then instruct disk controller to transfer data to buffer.

3 Disk controller starts DMA transfer.

4 Disk controller sends each byte to DMA controller.


DMA controller transfers bytes to buffer, increases the memory
5
address, decreases the counter C until C becomes zero.

When C becomes zero, DMA interrupts CPU to signal transfer


6
completion.
AD

Polling vs Interrupts I/O


A computer must have a way of detecting the arrival of any type
of input. There are two ways that this can happen, known
as polling and interrupts. Both of these techniques allow the
processor to deal with events that can happen at any time and
that are not related to the process it is currently running.

Polling I/O

Polling is the simplest way for an I/O device to communicate with


the processor. The process of periodically checking status of the
device to see if it is time for the next I/O operation, is called
polling. The I/O device simply puts the information in a Status
register, and the processor must come and get the information.

Most of the time, devices will not require attention and when one
does it will have to wait until it is next interrogated by the polling
program. This is an inefficient method and much of the
processors time is wasted on unnecessary polls.

Compare this method to a teacher continually asking every


student in a class, one after another, if they need help. Obviously
the more efficient method would be for a student to inform the
teacher whenever they require assistance.

Interrupts I/O

An alternative scheme for dealing with I/O is the interrupt-driven


method. An interrupt is a signal to the microprocessor from a
device that requires attention.

A device controller puts an interrupt signal on the bus when it


needs CPU’s attention when CPU receives an interrupt, It saves
its current state and invokes the appropriate interrupt handler
using the interrupt vector (addresses of OS routines to handle
various events). When the interrupting device has been dealt
with, the CPU continues with its original task as if it had never
been interrupted.

You might also like