GNU Linux编程课件 第10章.ppt
第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操作已经完成,一种方法是不断地查询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模式 实例分析 // exam10-1.c int fd_line,fd_kb,fd_display; char chr_from_kb[10]; char chr_from_line[10]; void test() { 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模式 同步非阻塞I/O模式 方法一: 在打开文件时,设定打开的方式为非阻塞方式,例如: open(fifo1,O_RDONLY|O_NONBLOCK); 方法二: 如果文件已经打开,可通过fcntl函数改变文件的I/O模式. 方法三: 如果文件已经打开,也可通过ioctl函数来改变I/O操作的方式。 同步非阻塞I/O模式 多路复用I/O模式 概念 基于多路复用I/O模式的进程可同时对多个文件描述符的读写状态进行检测,直到发现这些描述符中某个的状态发生了变化时返回。这表明检测到某文件的I/O操作已经完成。此时,进程可根据返回的状态进行真正的读写操作。 多路复用I/O模式 多路复用I/O模式 信号驱动的I/O模式 概念 信号驱动I/O模式是利用文件描述符的I/O状态的变化,产生SIGIO信号,通过对SIGIO信号的处理,读写相应的数据。 信号驱动的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模式 在POSIX 1003.1标准中,定义了异步I/O模式的函数接口。Linux内核从版本2.5开始支持异步I/O模式,在文件操作集中增加了异步I/O的操作接口。 API函数 aio_read() aio_write() aio_error() aio_return() 内存的I/O映射 内存的I/O映
您可能关注的文档
最近下载
- 2025年会计职称考试《初级会计实务》内部控制与审计基础理论与模拟试题及答案.docx VIP
- 2022年欧洲新生儿呼吸窘迫综合征管理指南更新要点解读.pptx VIP
- 四川省成都市重点中学高一上学期期末物理试卷.docx VIP
- SY∕T 7018-2014 控压钻井系统.pdf VIP
- 四渡赤水战役中的红军情报工作.doc VIP
- 湘教版(2024)八年级上册地理第二章第二节《中国的气候》教学课件.ppt
- 2024-2025学年江苏省天一中学高一上学期期末数学试题及答案.pdf VIP
- 课题申报书:少先队活动与思政教育一体化建设研究.docx VIP
- 2025年信息系统安全专家单点登录系统中的权限提升漏洞分析专题试卷及解析.pdf VIP
- 2025年信息系统安全专家CA人员管理与安全意识专题试卷及解析.pdf VIP
原创力文档

文档评论(0)