Input/Output. Tanenbaum Figure Some typical device, network, and bus data rates. Functions of the device-independent I/O software. Tanenbaum. Chapter 5 Input/Output - I/O Hardware I/O Software Software Layers . Device-Independent I/O Software Tanenbaum, Modern Operating Systems 3 e. Have both hardware and software. Want to hide the details from the programmer (user). Ideally have the same interface to all devices (device independence).
For example, a program that reads a file as input should be able to read a file on a floppy disk, on a hard disk, or on a CD-ROM, without having to modify the program for each different device. Device drivers are software modules that can be plugged into an OS to handle a particular device. Device driver, is generally written by the device's manufacturer and delivered along with the device on a CD-ROM.
How a device driver handles a request is as follows: Suppose a request comes to read a block N. If the driver is idle at the time a request arrives, device independent input output software starts carrying out the request immediately.
Otherwise, if the driver is already busy with some other request, it places the new request in the queue of pending requests. An interrupt handler, also known as an interrupt service routine or ISR, is a piece of software or more specifically a callback function in an operating system or more specifically in a device driver, whose execution is triggered by the reception of an interrupt. When the interrupt happens, the interrupt procedure does whatever it device independent input output software to in order to handle the interrupt, updates data structures and wakes up process that was waiting for an interrupt to happen.
In most architectures, this address is an offset stored in a table called the interrupt vector table. This vector contains the memory addresses of specialized interrupt handlers. Though it is difficult to write completely device independent software but we can write some modules which are common among all the devices. These are the libraries which provide richer and simplified interface to access the functionality of the device independent input output software or ultimately interactive with the device drivers.
Following are some of the services provided. Buffering is done to cope with a speed mismatch between the producer and consumer of a data stream or to adapt between devices that have different data transfer sizes. Access to the cached copy is more efficient than access to the original. The spooling system copies the queued spool files to the printer one at a time.
In some operating systems, spooling is managed by josef elizalde scandal system daemon process.