第2讲 客户-服务器软件中的并发处理.ppt

上传人:s****8 文档编号:67214158 上传时间:2022-12-24 格式:PPT 页数:16 大小:358.50KB
返回 下载 相关 举报
第2讲 客户-服务器软件中的并发处理.ppt_第1页
第1页 / 共16页
第2讲 客户-服务器软件中的并发处理.ppt_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《第2讲 客户-服务器软件中的并发处理.ppt》由会员分享,可在线阅读,更多相关《第2讲 客户-服务器软件中的并发处理.ppt(16页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、互联网络程序设计互联网络程序设计第二讲 客户/服务器软件中的并发处理电子科技大学计算机学院目录l并发的概念l网络中的并发l服务器软件中的并发l客户软件中的并发l操作系统的并发功能l一个并发例子程序互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院并发的概念l并发有真正的并发(并行:Parallelism)和表面上的并发(并发:Concurrency)(一般采用分时机制)并发模型并发模型并发模型并发模型并行模型并行模型并行模型并行模型互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院网络中的并发l单个网络各个机器之间许多成对进程好像独立使用网络资源(通道,机器

2、等)l一个计算机系统中存在并发(分时)l一组机器上所有的客户之间存在并发互联网互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院服务器中的并发l单个服务器必须并发处理多个传入请求l并发服务器可以让多个远程用户同时使用服务,实现起来比较复杂l其余部分主要介绍术语和概念;涉及其它问题:算法,设计,运行规则等在后续各章介绍互联网互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院客户软件的并发l要使客户软件并发执行,一般并不需要程序员为此特别花功夫。(现代操作系统一般运行用户并发地执行客户程序)互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院操作

3、系统的并发功能l多进程操作系统l进程的概念:进程定义了一个计算的基本单元,它是一个执行某一个特定程序的实体,它拥有独立的地址空间、执行堆栈、文件描述符等。互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院创建进程#include#include pid_t fork(void)返回:父进程中返回子进程的进程ID,子进程返回0,-1出错lfork后,父子进程共享数据空间、代码空间、堆栈、所有的文件描述字;互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院一个顺序执行的C实例#include#include int sum;void main(void)int

4、i;sum=0;for(i=1;i=5;i+)printf(The value of i is%dn,i);fflush(stdout);sum+=i;printf(The sum is%dn,sum);互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院程序的并发版本#include#include int sum;int main(void)int i;sum=0;fork();for(i=1;i=5;i+)printf(The value of i is%dn,i);fflush(stdout);sum+=i;printf(The sum is%dn,sum);exit(

5、0);互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院#include#include int mul,sum;int main(void)int i,pid;sum=0;mul=1;if(pid=fork()0)for(i=1;i=5;i+)printf(The value of i is%dn,i);fflush(stdout);sum+=i;printf(The sum is%dn,sum);else if(pid=0)for(i=1;i=5;i+)printf(The value of i is%dn,i);fflush(stdout);mul*=i;printf(

6、The multiplex is%dn,mul);exit(0);另一并发版本互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院执行新的代码include int execl(const char*path,const char*arg,.);l系统调用execl执行另一个程序。但调用execl并不创建新进程,所以前后的进程ID并未改变,execl只是用另一个新程序替换了当前进程的正文、数据、堆和栈段;互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院执行新程序的例子int mul;int main(void)int i,pid;mul=1;if(pid=f

7、ork()0)execl(./sum,./sum,NULL);else if(pid=0)for(i=1;i=5;i+)printf(The value of i is%dn,i);fflush(stdout);mul*=i;printf(The multiplex is%dn,mul);else exit(1);exit(0);互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院上下文切换lOS的时间分片机制保证快速切换l线程切换的时候,会发生上下文切换n n上下文:线程的执行环境上下文:线程的执行环境n n切换的开销切换的开销l设计协议软件的时候,需要设法将上下文切换的次数

8、减到最少n n保证并发处理的好处比上下文切换的开销多保证并发处理的好处比上下文切换的开销多n n服务器的并发策略:非并发,单线程进程并服务器的并发策略:非并发,单线程进程并发,多线程进程并发发,多线程进程并发互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院并发和异步I/Ol某些OS允许单个线程控制并发的输入输出操作l使用select询问操作系统I/O设备的情况l例子:n n用户从用户从TCPTCP接收数据并且显示,还允许用户从接收数据并且显示,还允许用户从键盘输入命令控制显示。键盘输入命令控制显示。n n两个输入:两个输入:TCP,TCP,键盘键盘n n总是等着一个输入,会阻塞总是等着一个输入,会阻塞n n使用使用selectselect询问输入是否就绪询问输入是否就绪互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院总结l并发可以减少网络客户的服务等待l服务器中的并发需要编程实现lfork和execve的使用l操作系统中的并发实现:时间分片l并发的代价:上下文切换lSelect调用允许单个的进程管理并发I/O互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com