Communication between a computing system and the outside world. Input is data received by the computing system, output is the data sent from it
A peripheral device such a mouse, keyboard, monitor or network interface card
Interrupt Request (IRQ)
A hardware signal sent to the CPU by an I/O device to notify the CPU that there is data to transfer.
When the CPU receives the signal it temporarily stops what it is doing and runs an interrupt handler routine associated to the device.
The interrupt handler determines the cause of the interrupt, performs the required processing, and issues a return from interrupt instruction to return control to the CPU so it can resume what it is was doing before
A computer program that controls an Input/Output device and allows the CPU to communicate with that device.
Direct Memory Access (DMA)
A memory access method that allows an I/O device to send or receive data directly to or from the main memory bypassing the CPU.
Kernel and User Space
The core part of an operating system (OS) and memory area where applications and their associated libraries are stored.
The kernel is a program that is central to the operating system. It manages the computer hardware components, and provides system services to applications that need to access those hardware components.
The kernel is executed in a protected area of the main memory to prevent other processes from affecting it.
Non-kernel processes are executed in an area called user space.