- 1、本文档共80页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章《IO复用与并行程序》
I/O复⽤与并⾏程序
并发与复⽤
• 回顾之前的程序(⽆论UDP/TCP)
• 其⼀:单个Server,单个Client
• 其⼆:单个Server,多个Client
• 但客户端都是依次被服务器端受理并执⾏
• 函数是阻塞的,怎么办
• 两种类型的服务器端
• 第⼀种:第⼀个连接等待受理时间为0s,第50个等待受理时
间为50s,第100个连接等待受理时间为100s,依次类推。
每个连接服务时间仅1s
• 第⼆种:所有连接请求的受理时间不超过1s,平均服务时间
越2-3s
• 解决⽅案——并发服务器
• 多进程同时处理客户端的连接请求
• I/O复⽤的⽅式轮询客户端的连接请求 [单进程!]
I/O复⽤-单进程的并发服务器实现
• ⽤多进程并发服务器的缺点
• 每次请求都需要创建新的进程,创建、维护进程需
要消耗运算和内存空间
• 进程独⽴存在,可能涉及数据交换
• 实现多进程的技术⼿段较复杂
• 不创建进程⽽实现并发服务器
• 同时向多个客户端提供服务,每个客户端不阻塞其
它客户端
• 复⽤(Multiplexing)技术
• 复⽤的思维被⽤在多个领域
• 不创建进程⽽实现并发服务器
• 复⽤(Multiplexing)技术
• [通信⼯程] 在同⼀个通信信道离传递多个数据
• [⽹络] 提⾼物理设备的效率,⽤最少的物理要素
传递最多的数据
• 通信中的多路复⽤(复⽤)模型
• 时分多路
• 频分多路
• 码分多路
• 空分多路
• “纸杯电话”的复⽤
Socket服务器上的复⽤
• 服务器端并发处理多个客户端的连接
• 需要建⽴多个进程/线程分别处理
• 引⼊复⽤技术,对服务器端的应⽤层程序进⾏复⽤
• 实现单个进程处理多个客户端的输⼊请求
• 我们称之为“I/O复⽤”
• 具体来说,服务器端的I/O复⽤即:
• 服务器的应⽤监测指定的客户端
• 若某客户端有请求产⽣,则处理
• 若客户端⽆请求产⽣,则略过
I/O复⽤的⼀个类⽐
• 上课回答问题
• ⽅式⼀:给每个学⽣配备⼀个⽼师,⼀对⼀,⼀旦
某学⽣有问题⽼师能⻢上处理,但是该学⽣没有问
题的时候⽼师必须等待
• ⽅式⼆:⼀个聪明的⽼师,多个学⽣,聪明的⽼师
周期性地扫视整个课堂,有举⼿的学⽣则点他起来
处理问题,没有的话就继续保持观测
select()函数
• 最具有代表性的实现复⽤服务器的⽅法
• 常被程序员忽略的⽅法
• winsock和BSD socket等等都有该⽅法(或其扩展)
select()函数主要功能
• 将多个⽂件描述符集中在⼀起统⼀监视
• 是否存在套接字有待接收数据?
• 是否存在套接字有(⽆阻塞的)待传输数据
• 是否存在套接字发⽣了异常
select()函数的⽤法
select()函数⽤法-步骤⼀
• 设置⽂件描述符
• select()可以同时监视多个⽂件描述符
• 注意⽂件描述符可以是stdio、⽂件、设备、socket等等
• ⽂件描述符被集中监视
• 维护⼀张表,表示同类的⽂件描述符
• 监视项也是分类的
• 待接收、待传输、发⽣异常
• 监视⽂件描述符的表(fd_set)
• 如何定义与初始化
• 设置⼀个⽂件描述符的表fd_set ,结构如图
• ⼀个数组,每⼀位表示系统中的⼀个⽂件描述符,
如图第⼀位表示fd0 ,第三位表示fd2……
• 每位的元素可为0/1
• 若为0,表示select不监视此fd
• 若为1,……
• 如何改变表中的数值。我们命名这个表为:
fd_set set
•
您可能关注的文档
- 第2章探索地球起源与地球环境演变1 1 相对地质年代的判定方法,如 .DOC
- 第2章探索地球起源与地球环境演变11.相对地质年代的判定方法,如.DOC
- 第24讲课时授课计划授课教案.doc
- 第29讲 第九章 重量分析法 第2讲.PPT
- 第2章计算机硬件系统THEOL网络教学综合平台潍坊学院.ppt
- 第2章电脑的资料表示法.PDF
- 第2章电脑资料表示法与数字系统.PDF
- 第2节华中地区.doc
- 第2节生命活动的主要承担者——蛋白质 - 梅县松口中学.PPT
- 第2节现代信息处理工具计算机.ppt
- 2025年化工技能鉴定每日一练试卷及参考答案详解【能力提升】.docx
- 精细化学品性能测试43课件.ppt
- 2025年化工技能鉴定每日一练试卷【有一套】附答案详解.docx
- 2025年化工技能鉴定每日一练试卷及一套完整答案详解.docx
- 2025年化工技能鉴定模考模拟试题及参考答案详解【黄金题型】.docx
- 2025年化工技能鉴定模考模拟试题精华版附答案详解.docx
- 2025年化工技能鉴定真题带答案详解(最新).docx
- 2025年化工技能鉴定真题含答案详解【综合卷】.docx
- 2025年化工技能鉴定真题含完整答案详解(各地真题).docx
- 2025年化工技能鉴定真题及答案详解(易错题).docx
文档评论(0)