Input/Output Management
- manage various input/output (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 
 
- 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, and so on. 
 
- 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, and so on. 
 
 
- The CPU must have a way to pass information to and from an I/O device. - 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 be 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 the I/O device can transfer block of data to/from the memory without going through the CPU. 
- While using memory mapped I/O, the OS allocates buffer in the memory and informs the I/O device to use that buffer to send data to the CPU. 
- The I/O device operates asynchronously with the CPU, and interrupts the 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 I/O is used for most high-speed I/O devices like disks and communication interfaces. 
 
- Direct memory access (DMA) - Slow devices like keyboards will generate an interruption to the main CPU after each byte is transferred. If a fast device, such as a disk, generated an interruption for each byte, the operating system would spend most of its time handling these interruptions. So a typical computer uses direct memory access (DMA) hardware to reduce this overhead. 
- Direct Memory Access (DMA) means the CPU grants the I/O module authority to read from or write to memory without involvement. 
- The DMA module itself controls the exchange of data between the main memory and the I/O device. The CPU is only involved at the beginning and end of the transfer and interrupted only after the entire block has been transferred. 
- Direct Memory Access needs special hardware called a 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 various settings. These include the I/O and memory types and the interruptions and states for the CPU cycles. 
 
 
 
Last updated
Was this helpful?