操作系统 IO 模式
发布时间:2021-03-07 14:47:37 所属栏目:评论 来源:互联网
导读:为两阶段:用户进程空间--内核空间、内核空间--设备空间(磁盘、网络等)。IO有内存IO、网络IO和磁盘IO三种,通常我们说的IO指的是后两者。 LINUX中进程无法直接操作I/O设备,其必须通过系统调用请求kernel来协助完成I/O动作;内核会为每个I/O设备维护一个缓冲
为两阶段:用户进程空间<-->内核空间、内核空间<-->设备空间(磁盘、网络等)。IO有内存IO、网络IO和磁盘IO三种,通常我们说的IO指的是后两者。 LINUX中进程无法直接操作I/O设备,其必须通过系统调用请求kernel来协助完成I/O动作;内核会为每个I/O设备维护一个缓冲区。 对于一个输入操作来说,进程IO系统调用后,内核会先看缓冲区中有没有相应的缓存数据,没有的话再到设备中读取,因为设备IO一般速度较慢,需要等待;内核缓冲区有数据则直接复制到进程空间。 所以,对于一个网络输入操作通常包括两个不同阶段: (1)等待网络数据到达网卡→读取到内核缓冲区,数据准备好; (2)从内核缓冲区复制数据到进程空间。 关键概念理解
同步才有阻塞和非阻塞之分; 阻塞与非阻塞关乎如何对待事情产生的结果(阻塞:不等到想要的结果我就不走了) 明确进程状态 理解进程的状态转换
(编辑:南通站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |