The interrupt handler is a pool or queue of interrupts being sent to the CPU.
The role of IO software is to receive signals from physical devices, interpret them, and then perform tasks accordingly through the operating system.
The user-space is the place in memory in which user processes run. The kernel-space is the place in memory in which the kernel functions and manages system calls.
The kernel-space is the place in memory where the kernel performs its functionality. The kernel manages the scheduling of tasks, buffering (storing data in memory when transferring between a computer and IO devices), spooling (holding output data for an IO device), and more.
IO software consists of the following layers:
Device drivers are device-specific code that is added to a computer so that a device may interact with a computer.
Device independent software refers to the software components that handle functions that are not specific to any single IO device.
The operating system is responsible for managing IO systems, the hardware and software necessary to handle input and output devices on a computer.
IO, or input/output, devices are physical, electronic devices that can receive and produce signals between a computer and the outside world.
Blocking refers to the method in which an application stops all other execution and waits for the current IO request to be completely executed.
Non-blocking refers to the method in which requests get placed into a queue when they are waiting for IO requests to be completed so that the CPU may allocate its resources to continue processing other requests.
Interrupts are a hardware mechanism that sends a signal to the CPU whenever an IO device needs the CPU’s attention
IO devices can be categorized into three categories:
Driver devices provide support to both CPUs and IO devices so that they may communicate effectively with one another.
There are two types of device drivers:
DMA controllers are hardware devices that allow IO devices to transfer data to/from memory while bypassing the CPU.
Memory-mapped IO allows for an IO device and the main memory of a computer to share address space in their transfer of data
The three methods used by IO devices to read/write data are the character method, block method, and network method.
- The character method of reading/writing data looks like a sequential series of bytes and each byte is accessed one at a time.- The block method of reading/writing data allows for random access as memory is designed to store data in blocks of a fixed size.- The network method of reading/writing data is designed to use different types of interfaces (such as a socket interface) to access multiple devices over a network.