- 1、本文档共91页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四讲I-O复用与套接口选项
Lecture 4I/O multiplexing and Socket options Ren Liyong 电子科技大学计算机学院 Contens I/O Models I/O multiplexing concept Select and pselect functions Socket options Nonblocking IO Signal-driven IO I/O Models Five I/O models under UNIX Blocking I/O Nonblocking I/O I/O multiplexing(select and poll) Signal driven I/O(SIGIO)and Asynchronous I/O(posix.1 aio_ funcitons) There are two distinct phases for an input operation: Waiting for the data to be ready, and Copying the data from the kernel to the process Blocking I/O Model The most prevalent I/O model 。By default, all sockets are blocking Nonblocking I/O Model When a socket is nonblocking, telling kernel: “ when an I/O operation that I request cannot be completed without putting the process th sleep, do not put the process to sleep”. It is called polling, waste of CPU time. I/O multiplexing Model When I/O multiplexing, we call select or poll and block in one of these two system call, instead of blocking in the actual I/O system call. Signal Driven I/O Model Telling the kernel to notify us with the SIGIO signal when the descriptor is ready. Advantage: process is not blocked while waiting for the datagram to arrive. Asynchronous I/O Model Asynchronous I/O tell the kernel to start the operation and to notify us when the entire operation is complete. Comparison of the I/O Model 同步i/o与异步i/o Posix定义这两个术语如下: 同步i/o操作引起请求进程阻塞,知道i/o操作完成; 异步i/o操作不引起请求进程阻塞; 上述i/o模型中,前四个模型:阻塞i/o模型、非阻塞i/o模型、i/o复用模型和信号驱动模型都是同步i/o模型,因为真正的i/o操作(recvfrom)阻塞进程,只有异步i/o模型与此异步i/o定义相匹配。 I/O Multiplexing What we need is the capability to tell the kernel that we want to be notified if one or more I/O conditions are ready (i.e., input is ready to be read, or the descriptor is capable of taking more output). This capability is called I/O multiplexing and is provided by the select and poll functions. Scenarios of I/O multiplexing When a client is handling multiple descriptors (normally interactive input and a network socket). If a TCP server ha
文档评论(0)