unix的读取或写入操作有两个阶段:
1、等待数据准备好(等待数据到达网络,然后被拷贝到内核中的某个缓冲区);
2、从内核拷贝数据到进程(将数据从内核缓冲区拷贝到应用缓冲区)。
同步和异步是针对应用程序和内核的交互而言:
1、同步是指用户进程触发I/O操作并等待或者轮询的去查看I/O操作是否就绪;
2、异步是指用户进程触发I/O操作后便开始做自己的事情,而当I/O操作已经完成会收到I/O完成的通知。
阻塞和非阻塞是针对进程访问数据的时候,根据I/O操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作函数的实现方式:
1、阻塞方式读取或者写入函数将一直等待;
2、非阻塞方式读取或者写入函数会立即返回一个状态值。
资料: