电子科技大学网络编程课程第十讲——服务器并发性统一、高效管理.ppt

电子科技大学网络编程课程第十讲——服务器并发性统一、高效管理.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 第十讲 服务器并发性的统一、高效管理 计算机学院 目的: 设计更灵活、性能更优化的并发服务器。 计算机网络编程 电子科大计算机学院 定义:服务器整个生命期中,同时并发的最大线程数量。 该参数某种意义上代表了该服务器的最大资源开销。 我们可以限制服务器的最大并发数量 也可以不限制(允许创建任意多的线程),此时该服务器的并发等级受限于操作系统的限制。 计算机网络编程 电子科大计算机学院 当收到远程连接请求时触发线程创建 服务器的并发等级依赖于客户的需求 同时存在的连接越多,并发等级越高 计算机网络编程 电子科大计算机学院 需求驱动虽然能够提供动态的灵活性,同时处理多个连接 但是并不一定是最优化的。因为并发是有代价的。 计算机网络编程 电子科大计算机学院 在需求驱动模式下,任一时刻的并发等级反映了当时服务器已收到但还没有处理完毕的请求数目。 为每个请求创建一个新进程/线程,开销昂贵。 一方面会带来处理的时延 创建进程/线程需要较长的时间 另一方面会消耗系统资源 每个请求一个进程/线程,资源消耗大 计算机网络编程 电子科大计算机学院 预分配进程/线程可用于控制延迟、限制并发等级 主服务器在开始执行时就创建N个从进程/线程 将所接受的新的请求分配给这N个从进程/线程中的一个处理 每个进程/线程等待请求,请求到达后处理 进程/线程并不退出 计算机网络编程 电子科大计算机学院 计算机通信与网络编程 电子科大计算机学院 主进程 从进程1 从进程2 从进程3 用于熟知端口的套接字 操作系统 预分配的从进程 Linux允许无连接服务器采用预分配策略。 多个从线程同时绑定在一个socket上调用recvfrom获得发送方的地址和其发送的数据报,并调用sendto应答。一个数据报到达的时候系统只唤醒一个从进程。 请思考:如果在某个系统中recvfrom会同时唤醒所有的从线程,我们还能使用预分配方式吗?如果能,说出一种可能的处理方式。 计算机通信与网络编程 电子科大计算机学院 互斥: 调用recvfrom前申请互斥,pthread_mutex_lock 调用结束pthread_mutex_unlock 根据处理机数目的多少,我们可以调整预分配从进程的数目 当系统中有K个处理器时,分配K个从进程,在最好情况下,可以使得接受处理几乎没有任何延迟。 计算机通信与网络编程 电子科大计算机学院 * * * * * * * * * 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 * * * * * * * * *

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档