计算机网络编程 第十讲 服务器并发性的统一、高效管理_第1页
计算机网络编程 第十讲 服务器并发性的统一、高效管理_第2页
计算机网络编程 第十讲 服务器并发性的统一、高效管理_第3页
计算机网络编程 第十讲 服务器并发性的统一、高效管理_第4页
计算机网络编程 第十讲 服务器并发性的统一、高效管理_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机网络编程,第十讲 服务器并发性的统一、高效管理,目的: 设计更灵活、性能更优化的并发服务器。,计算机网络编程,电子科大计算机学院,服务器并发性的统一、高效管理,定义:服务器整个生命期中,同时并发的最大线程数量。 该参数某种意义上代表了该服务器的最大资源开销。 我们可以限制服务器的最大并发数量 也可以不限制(允许创建任意多的线程),此时该服务器的并发等级受限于操作系统的限制。,计算机网络编程,电子科大计算机学院,并发等级,当收到远程连接请求时触发线程创建 服务器的并发等级依赖于客户的需求 同时存在的连接越多,并发等级越高,计算机网络编程,电子科大计算机学院,需求驱动的并发,需求驱动虽然能够

2、提供动态的灵活性,同时处理多个连接 但是并不一定是最优化的。因为并发是有代价的。,计算机网络编程,电子科大计算机学院,需求驱动并发的代价,在需求驱动模式下,任一时刻的并发等级反映了当时服务器已收到但还没有处理完毕的请求数目。 为每个请求创建一个新进程/线程,开销昂贵。 一方面会带来处理的时延 创建进程/线程需要较长的时间 另一方面会消耗系统资源 每个请求一个进程/线程,资源消耗大,计算机网络编程,电子科大计算机学院,额外开销和时延,预分配进程/线程可用于控制延迟、限制并发等级 主服务器在开始执行时就创建N个从进程/线程 将所接受的新的请求分配给这N个从进程/线程中的一个处理 每个进程/线程等待

3、请求,请求到达后处理 进程/线程并不退出,从线程/进程的预分配,计算机网络编程,电子科大计算机学院,计算机通信与网络编程,电子科大计算机学院,无连接服务器中的预分配,主进程,从进程1,从进程2,从进程3,用于熟知端口的套接字,操作系统,预分配的从进程,Linux允许无连接服务器采用预分配策略。 多个从线程同时绑定在一个socket上调用recvfrom获得发送方的地址和其发送的数据报,并调用sendto应答。一个数据报到达的时候系统只唤醒一个从进程。 请思考:如果在某个系统中recvfrom会同时唤醒所有的从线程,我们还能使用预分配方式吗?如果能,说出一种可能的处理方式。,计算机通信与网络编程,电子科大计算机学院,无连接服务器中的预分配,互斥: 调用recvfrom前申请互斥,pthread_mutex_lock 调用结束pthread_mutex_unlock,根据处理机数目的多少,我们可以调整预分配从进程的数目 当系统中有K个处理器时,分配K个从进程,在最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论