首页 GNU_Linux编程 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 作者 郑谦益 第10章

GNU_Linux编程 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 作者 郑谦益 第10章

举报
开通vip

GNU_Linux编程 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 作者 郑谦益 第10章第10章I/O操作模式郑谦益、韩京宇概述 I/O操作模式 文件I/O操作模式 内存的I/O映射 文件锁 终端I/O操作I/O操作模式I/O操作模式 阻塞方式 非阻塞方式 同步方式 异步方式阻塞方式概念通常,在应用程序发出I/O请求后,如果I/O操作不能立刻完成,Linux内核将发出读写请求的进程暂时挂起,将CPU交给其他进程,等I/O完成后,重新切换回原来的进程继续运行,这种I/O处理方式称为阻塞方式。非阻塞方式概念进程在发出读写请求后,不管I/O是否真正完成,可立即返回,继续执行。问题在于如何获知I/O操作已经完...

GNU_Linux编程 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 作者 郑谦益 第10章
第10章I/O操作模式郑谦益、韩京宇概述 I/O操作模式 文件I/O操作模式 内存的I/O映射 文件锁 终端I/O操作I/O操作模式I/O操作模式 阻塞方式 非阻塞方式 同步方式 异步方式阻塞方式概念通常,在应用程序发出I/O请求后,如果I/O操作不能立刻完成,Linux内核将发出读写请求的进程暂时挂起,将CPU交给其他进程,等I/O完成后,重新切换回原来的进程继续运行,这种I/O处理方式称为阻塞方式。非阻塞方式概念进程在发出读写请求后,不管I/O是否真正完成,可立即返回,继续执行。问题在于如何获知I/O操作已经完成,一种 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 是不断地查询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模式3应用内核调用read后阻塞1.read系统调用 2.数据未准备好 3.数据已准备好4.拷贝数据等待数据 6.进程获得数据成功返回5.拷贝完成数据从内核空间拷贝至用户空间图10-1阻塞I/O操作方式实例分析//exam10-1.cintfd_line,fd_kb,fd_display;charchr_from_kb[10];charchr_from_line[10];voidtest(){while(1){ read(fd_kb,&chr_from_kb,1);//非阻塞 write(fd_line,&chr_from_kb,1); read(fd_line,&chr_from_line,1);//非阻塞 write(fd_display,&chr_from_line,1); }}同步非阻塞I/O模式概念在进程发出文件读写请求后,无论I/O操作是否完成,立刻返回。这样进程可继续执行后续代码。为了获知文件的I/O操作是否完成,需不断地对文件I/O状态进行测试。同步非阻塞I/O模式…应用内核1.调用read 系统调用BWOULDBLOCK2.无数据就绪3.调用read5.调用read 系统调用BWOULDBLOCK 系统调用BWOULDBLOCK4.无数据就绪6.无数据就绪等待数据7.调用read系统调用 8.数据已就绪9.拷贝数据将数据从内核空间拷贝至用户空间11.获得数据 成功返回10.拷贝完成进程不断调用read等待数据到达图10-2非阻塞I/O操作方式同步非阻塞I/O模式方法一:在打开文件时,设定打开的方式为非阻塞方式,例如:open("fifo1",O_RDONLY|O_NONBLOCK);方法二:如果文件已经打开,可通过fcntl函数改变文件的I/O模式.方法三:如果文件已经打开,也可通过ioctl函数来改变I/O操作的方式。同步非阻塞I/O模式多路复用I/O模式概念基于多路复用I/O模式的进程可同时对多个文件描述符的读写状态进行检测,直到发现这些描述符中某个的状态发生了变化时返回。这表明检测到某文件的I/O操作已经完成。此时,进程可根据返回的状态进行真正的读写操作。多路复用I/O模式…内核等待某文件描述符数据到达1.select系统调用2.数据未就绪 返回可读3.数据已就绪等待数据数据到达5.read描述符fdi系统调用6.拷贝数据8.获得数据成功返回7.拷贝完成将数据从内核空间拷贝至用户空间10.拷贝数据 11.拷贝完成对于数据就绪的文件描述符9.read描述符fdi+k12.获得数据进程拷贝数据至应用缓存而阻塞图10-3多路复用I/O操作方式进程多路复用I/O模式信号驱动的I/O模式概念信号驱动I/O模式是利用文件描述符的I/O状态的变化,产生SIGIO信号,通过对SIGIO信号的处理,读写相应的数据。信号驱动的I/O模式9应用 sigaction内核 3.信号处理4.调用read 返回deliverSIGIO 系统调用 2.数据已就绪5.拷贝数据等待数据进程阻塞直至数据拷贝至应用缓存returnOK6.拷贝完成将数据从内核空间拷贝至用户空间7.获取数据1.定义SIGIO信号处理函数进程继续执行图10-4信号驱动I/O操作方式信号驱动的I/O模式实现步骤1.利用signal或sigaction函数定义信号SIGIO的处理函数。2.使用fcntl函数对文件描述符在状态发生变化产生SIGIO信号时,设置信号发送的对象。3.在运用open函数打开文件时,或运用fcntl函数对已打开的文件,设置为O_ASYNC方式。异步I/O模式概念在进程发出I/O读写请求后,,无论I/O操作是否完成,立刻返回,继续执行后续的代码,当要求的I/O操作完成时,内核向发出请求的进程发送信号,通知I/O操作已完成,此时,操作的数据已就需,无需在内核与用户空间之间进行拷贝,这种I/O操作方式称为异步I/O模式。异步I/O模式应用内核1.aio_read系统调用2.数据未就需进程继续执行3.数据已就需5.拷贝完成user 11返回等待数据6.信号处理发送aio_read定义的信号4.拷贝数据拷贝数据至用户空间图10-5异步I/O操作方式在POSIX1003.1 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 中,定义了异步I/O模式的函数接口。Linux内核从版本2.5开始支持异步I/O模式,在文件操作集中增加了异步I/O的操作接口。API函数aio_read()aio_write()aio_error()aio_return()内存的I/O映射内存的I/O映射概念内存的I/O映射是将文件某区间的 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 映射至进程的虚拟地址空间的某个区域的技术。通过对文件的内存I/O映射,可使用户对文件的操作转换为对内存的操作。内存的I/O映射文件锁文件锁当多个进程同时存取同一个文件时,有可能出现数据不一致的现象。为了避免这种现象的发生,在多个进程同时存取同一个文件时,必须遵守一定的规则。锁就是这样一种机制。1.共享锁2.互斥锁文件锁终端I/O终端的行为模式终端的行为的变化可通过改变其属性来实现,但由于终端所涉及的属性比较多,因此,不同属性值的组合,会使得终端表现出不同的行为方式。常用终端行为模式有以下三种:1. 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 模式2.非规范模式3.原始模式规范模式概念这是我们常用的模式,是终端设备驱动通常使用的模式。终端驱动将从键盘接收的字符暂时存放于编辑缓冲区。因此,用户可对键盘输入进行行编辑,直至接收到回车键。终端驱动在接收到回车键后,将编辑缓冲区中的内容传递给应用程序。在这种模式下,终端驱动还负责对一些特殊字符进行处理,如CTRL-C等。非规范模式概念在这种模式下,终端驱动关闭了编辑缓冲区,驱动将从键盘上接收的字符直接传送给应用程序,其中包括退格键和光标移动键等,这些键不再具有编辑功能,但仍然保留了对一些特殊字符的处理。原始模式概念在这种模式下,终端驱动不仅关闭了编辑缓冲区,而且也关闭了对一些特殊字符的处理,如退格键、光标移动键和CTRL-C键等。终端驱动将接收的任意一个字符都上传给应用程序。终端模式的设置API函数tcgetattr()tcsetattr()structtermios{ tcflag_tc_iflag; //输入模式 tcflag_tc_oflag; //输出模式 tcflag_tc_cflag; //控制模式 tcflag_tc_lflag; //本地模式 cc_t c_cc[NCCS]; //特殊控制字元}终端模式的设置终端模式的设置
本文档为【GNU_Linux编程 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 作者 郑谦益 第10章】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
希望
暂无简介~
格式:ppt
大小:312KB
软件:PowerPoint
页数:0
分类:工学
上传时间:2020-01-15
浏览量:3