Linux 阻塞与唤醒实现原理

在前面的文件 I/O 文章中,我们有提到 Linux 文件 I/O 支持阻塞和非阻塞的数据读取方式,当采用阻塞方式进行 I/O 时,进程将会阻塞在read()或者write()系统调用上,直到文件可读或者是内核缓冲区可写。这些阻塞与唤醒的实现与内核调度紧密相关,Linux 内核使用等待队列和完成量来实现该功能。 注: 本篇文章所用Linux内核源码版本为v5.8 »

Linux操作系统-文件I/O

在操作系统中, 最为复杂同时也最为重要的功能就是文件I/O。 一台PC可以不连接互联网, 但是一定需要程序的载入、文件的打开, 而这些操作与I/O均密不可分。 包括软件开发中, 数据库与I/O的关系密切相关, 有时衡量一个DB的效率, 其实就是在衡量其I/O效率。 理解文件I/O, 就是在理解我们常用应用软件, 如MySQL、Redis、Nginx、ES、Prometheus等的核心。 »