- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第13章I/O操作模式内容提要/O操作模式概述POSIX异步I/OLinux本地异步I/O异步I/O信号驱动I/O多路复用高性能I/O事件驱动13.1I/O操作模式I/O操作模式概述在Linux系统中,文件作为一个泛化的概念,广泛存在于系统。虽然为文件定义了标准的I/O操作集,但具体实现取决于文件,不同类型的文件具有不同的行为特征。,它们实现的操作集也可能有所不同,如,具有异步特性的网络套接字,慢速的磁盘设备等。当进程需要同时处理多个文件I/O时,基于阻塞的处理方式具有一定的局限性,为此,内核提供了多种非阻塞的处理方法。阻塞与非阻塞从用户的角度,对于向内核发起的I/O请求,发起者是否需要等待请求的完成,可将I/O模式分为阻塞与非阻塞。若发起者等待,直至I/O请求完成,则称为I/O阻塞模式;若无论I/O请求是否完成,发起者立即返回,则称为I/O非阻塞模式。同步与异步从内核的角度,对于发起的I/O请求,内核是否需要发起者等待请求的完成,可将I/O模式分为同步I/O模式和异步I/O模式。若内核需发起者等待,直至I/O请求完成,则称为I/O同步模式。若内核无须发起者等待,I/O请求完成时,内核以某种方式通知发起者,期间发起者可继续执行后续操作,则称为I/O异步模式。异步I/O模式对于需在一个进程中同时监听多个文件的I/O状态,内核提供了多种异步I/O处理模式,它们通常采用非阻塞模式。这些异步I/O方法包括。POSIX异步I/O本地异步I/O异步I/O信号驱动I/O多路复用高性能I/O事件驱动应用编程接口13.2POSIX异步I/OPOSIX异步I/O概述POSIX为程序员提供了一组异步I/O编程接口,允许向内核发起一个或多个异步I/O请求,发起者无须等待I/O操作完成,继续执行后续操作,当异步I/O操作完成,内核以某种方式通知发起者,例如,发送信号或启动线程等。Linux异步I/O的实现POSIX异步I/O在Linux系统中以glibc函数库方式实现,由于早期的内核不支持异步I/O,glibc利用线程处理异步I/O请求;自内核2.6起引入一组本地异步I/O系统调用接口,glibc对原异步I/O处理进行了重构,从根本上提高了异步I/O性能。值得注意的是,POSIX异步I/O仅适用于磁盘文件系统。发起异步读/写请求1.aio_read/aio_write函数头文件 #includeaio.h函数原型 intaio_read(structaiocb*aiocbp) intaio_write(structaiocb*aiocbp)功能 发起异步读/写请求。参数 aiocbp:I/O请求。返回值 成功返回0,失败返回-1。发起异步读/写请求(续)(1)异步I/O请求structaiocb{ int aio_fildes; //文件描述符 volatilevoid*aio_buf;//缓冲区地址 size_taio_nbytes; //读/写数据的字节数 off_t aio_offset; //文件偏移量 int aio_reqprio; //请求优先级 structsigeventaio_sigevent;//通知方式 int aio_lio_opcode; //仅适用于lio_listio函数};(2)通知方式structsigevent{ intsigev_notify;//通知方法 intsigev_signo;//信号编号 unionsigvalsigev_value;//传递的数据 void(*sigev_notify_function)(unionsigv
您可能关注的文档
- 2024年单独招生考试大纲及题库(职业适应性测试).doc
- 2024年单独招生考试考试大纲及题库(语文).doc
- 专业认证+思政版-教学大纲-数据结构(课程设计)-2周-2024秋.pdf
- 专业认证+思政版-教学大纲-数据结构-56学时-2024秋.pdf
- 第2章-数据结构第3版- 线性表-2024秋.pptx
- 第3章-数据结构第3版- 栈和队列-2024秋.pptx
- 第4章-数据结构第3版- 串、数组和广义表-2024秋.pptx
- 第5章-数据结构第3版- 树和二叉树-2024秋.pptx
- 第6章-数据结构第3版- 图-2024秋.pptx
- 第7章-数据结构第3版- 查找-2024秋.pptx
- 人教统编版语文一年级上册《汉语拼音9 y w》教学课件小学公开课.pptx
- 人教统编版语文一年级上册《语文园地三》教学课件小学公开课.pptx
- 人教统编版语文一年级上册《识字2 金木水火土》教学课件小学公开课.pptx
- 人教统编版语文一年级上册《汉语拼音13 ɑn en in un ün》教学课件小学公开课.pptx
- 人教统编版语文一年级上册《5 小小的船》教学课件小学公开课.pptx
- 人教统编版语文一年级上册《我爱我们的祖国》教学课件小学公开课.pptx
- 人教统编版语文一年级上册《语文园地一》教学课件小学公开课.pptx
- 人教统编版语文一年级上册《汉语拼音8 zh ch sh r》教学课件小学公开课.pptx
- 人教统编版语文一年级上册《9 乌鸦喝水》教学课件小学公开课.pptx
- 人教统编版语文一年级上册《语文园地四》教学课件小学公开课.pptx
- 大学计算机网络教授老刘 + 关注
-
实名认证服务提供商
教师资格证、中级网络工程师持证人
专注于计算机技术相关文章撰写,方案设计,方案实现等,方案的个性定制,修改,润色等,本人已有8年相关工作经验,具有扎实的文案功底
文档评论(0)