第7章 阻塞式非阻塞式
第7章 阻塞式/非阻塞式I/O 7.1 I/O 模 型 7.2 阻塞函数的编程 7.3 非阻塞函数的编程 7.4 信号驱动I/O 7.1 I/O模型 多路复用I/O:综合了阻塞式和非阻塞式模型的优点。该模型使用select()函数同时检查多个套接字描述符是否就绪。当有一个或一个以上描述符读/写就绪时,函数select()成功返回。多路复用是最为理想的编程方式,兼有前两种模型的长处。其思想是在进行读写操作之前检查操作的可行性,这样进行读写操作将不会阻塞。该方式的缺点是:存在多个Socket时编程比较复杂,如果只有一个Socket则效率较低,而且select()调用可能阻塞。 信号驱动I/O:利用了内核的信号机制。当套接字描述符可以进行读写操作时,内核用信号SIGIO通知进程。该方式的主要缺点是:信号处理函数的编写增加了编程的难度;面向字符流的下CP连接不适合使用信号驱动模型,因为每个字符的到达或发送都可能引发SIGIO信号,而且程序很难以区分读、写两种信号。 7.1.1 产生阻塞的原因 产生阻塞的原因是操作系统的进程结构和进程调度方式。在Linux系统中,一个进程对应于系统进程向量表里某个指针所指的一个task_struct结构。这个结构表明了进程的运行状态、进程占用CPU的时间、计时器的数值等信息,其中运行状态包括以下几种: (1) 运行态:进程正在运行,
您可能关注的文档
最近下载
- ODCC开放数据中心委员会:2025年AI存储系统需求研究.pdf
- 非权力影响力:领导者的非职权领导力提升.pptx VIP
- 一年级数字0-10描红版.doc VIP
- 超星尔雅学习通《中华民族共同体概论(云南大学)》章节测试答案.docx VIP
- 部编版五年级下册道德与法治《期末测试卷》含完整答案(各地真题).docx VIP
- 学习党的二十届四中全会精神研讨发言材料.pdf VIP
- 2026广东惠州惠城区龙丰街道招聘党建联络员及村(社区)“两委”班子储备人选15人笔试参考题库及答案解析.docx VIP
- 专题29 连词100题(中考真题+中考模拟)【含答案+解析】-冲刺2026年中考英语语法百题分类专练.docx VIP
- 筒瓦屋面施工方案.pdf VIP
- 项目建设方案和可行性研究报告的区别.docx
原创力文档

文档评论(0)