Xiang Yong, Chen Yu, Li Guoliang, Ren Ju
Spring 2023
Embedded development boards that include the above peripherals
Character devices: such as GPIO, keyboard/mouse, serial port, etc.
GPIO LED light
keyboard
Character devices: such as GPIO, keyboard/mouse, serial port, etc. UART serial communication
Block devices: such as: disk drives, tape drives, optical drives, etc. Disk
Network devices: such as ethernet, wifi, bluetooth, etc. Network card
Character devices
Block device
Network device
Programmed I/O (PIO)
Interrupt based I/O
Direct Memory Access (DMA)
Programmed I/O(PIO, Programmed I/O)
Interrupt Transfer Modes
DMA transfer Mode:
Polling-based Abstract Device Interface: Status Command Data
Interrupt-based Abstract Device Interface: Status Command Data Interrupt
File-based I/O device abstraction
Stream-based I/O device abstraction
virtio-based I/O device abstraction
When a user process issues a read I/O system call, it mainly goes through two stages:
The execution process of the file reading system call(read) based on the blocking I/O is:
The execution process of the file reading system call(read) based on the non-blocking I/O is:
Therefore, in the non-blocking I/O model, the user process is not blocked by the kernel but needs to actively inquire whether the required data is ready.
The execution process of the file reading system call(read) based on the IO multiplexing:
This model utilizes a callback mechanism, which increases the complexity of developing and debugging applications.