1.IO概念 IO(Input/Output,输入/输出)即数据的读取(接收)或写入(发送)操作 通常用户进程中的一个完整的IO分为两个阶段:用户进程空间–>内核空间、内核空间–>设备空间(磁盘、网络等) IO有内存IO、网络IO和磁盘IO三种,通常说IO指的是后两种 Linux中进程无法直接操作I/O设备,必须通过系统调用请求kernel来协助完成I/O动作,内核会为I/O设备维护一个缓冲区 对于一个输入来说,进程IO系统调用后,内核会先看缓冲区中有没有响应的缓存数据,没有的话再到设备中读取 因为设备IO一般速度较慢,需要等待;内核缓冲区有数据则直接复制到进程空间