Week 31: Persistence

Persistence is the third major topic in this course. As we now main memory or RAM is volatile thus data is lost when power to the system is lost. Hence the need for persistent I/O hardware such as hard drives and Solid state drives. On Intel CPUs, the Direct Media Interface handles most of the I/O which includes interfaces with storage devices(SSD, HDD, NVME), Peripherals, and the network as seen below.

Whenever the CPU is involved in data movement it is called programmed I/O(PIO). Although this means that the CPU will be busy till the data transfer is completed which is extremely inefficient. The interrupt handler allowed for overlap of computation and I/O by sending an interrupt signal to the CPU when I/O is completed, this solved the issue of polling. Direct Memory Access engine essentially allowed for the CPU to be completely free to focus on computation as it handled data transfer between external devices and main memory.