码迷,mamicode.com
首页 > 系统相关 > 详细

进程通过内核缓存区请求设备I/O的一些事情

时间:2019-06-16 09:33:24      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:文件描述符   设备   locking   描述符   inf   磁盘   数据   文件   进程   

  • 请求进程,内核缓存区,设备I/O
请求进程无法直接访问设备I/O,而是通过内核缓冲区提交请求数据,等数据就绪后,数据从设备缓冲区提交至进程空间

请求进程把数据提交给内核缓存空间需要等待,内核把数据复制给设备I/O,直到数据就绪,还需要等待,这些等待过程大致可以分为五种模式

  1. blocking I/O----阻塞式I/O
  2. NON blocking I/O----非阻塞式I/O
  3. I/O multiplexing----I/O多路复用
  4. 信号驱动I/O
  5. 异步I/O
一个进程要处理两个I/O就必须复用,负责完成不了处理,一个进程处理两个链接,处理多个文件描述符,处理多个请求;一个进程处理一个请求时也得需要I/O多路复用,因为可能涉及本地交互式输入(本地磁盘I/O),
网络交互式输入(网络I/O)

所谓阻塞:任务完成前只能等待

非阻塞:任务完成前,可以接着干别的事情

技术图片

异步非阻塞(上图)数据从设备I/O复制到内核缓存的过程中,请求处于非阻塞状态,不断轮询内核缓存空间数据是否就绪,实际上降低了性能,尚不如同步阻塞I/O

 技术图片

所谓异步同步指的是对结果是否就绪的了解程度-----等待请求直到就绪谓之同步(一直监控并等待请求结果就绪;也称之闲等),不知道何时就绪,不断轮询是否就绪谓之异步(忙等)

进程通过内核缓存区请求设备I/O的一些事情

标签:文件描述符   设备   locking   描述符   inf   磁盘   数据   文件   进程   

原文地址:https://www.cnblogs.com/saintdingspage/p/11029526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!