0% found this document useful (0 votes)
5 views6 pages

Operating System - I_O Hardware - Tutorialspoint

The document discusses the role of operating systems in managing I/O hardware, including various devices and their communication methods. It explains the differences between block and character devices, as well as the concepts of synchronous vs asynchronous I/O, polling vs interrupts, and direct memory access (DMA). Additionally, it details the functions of device controllers and drivers in facilitating communication between the CPU and I/O devices.

Uploaded by

beebird234
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views6 pages

Operating System - I_O Hardware - Tutorialspoint

The document discusses the role of operating systems in managing I/O hardware, including various devices and their communication methods. It explains the differences between block and character devices, as well as the concepts of synchronous vs asynchronous I/O, polling vs interrupts, and direct memory access (DMA). Additionally, it details the functions of device controllers and drivers in facilitating communication between the CPU and I/O devices.

Uploaded by

beebird234
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

3/25/2020 Operating System - I/O Hardware - Tutorialspoint

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.

https://www.tutorialspoint.com/operating_system/os_io_hardware.htm 1/6
3/25/2020 Operating System - I/O Hardware - Tutorialspoint

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

https://www.tutorialspoint.com/operating_system/os_io_hardware.htm 2/6
3/25/2020 Operating System - I/O Hardware - Tutorialspoint

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.
https://www.tutorialspoint.com/operating_system/os_io_hardware.htm 3/6
3/25/2020 Operating System - I/O Hardware - Tutorialspoint

The operating system uses the DMA hardware as follows −

https://www.tutorialspoint.com/operating_system/os_io_hardware.htm 4/6
3/25/2020 Operating System - I/O Hardware - Tutorialspoint

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.

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

6 When C becomes zero, DMA interrupts CPU to signal transfer completion.

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.

https://www.tutorialspoint.com/operating_system/os_io_hardware.htm 5/6
3/25/2020 Operating System - I/O Hardware - Tutorialspoint

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.

https://www.tutorialspoint.com/operating_system/os_io_hardware.htm 6/6

You might also like