- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章并发处理 主要内容: 1.? 进程的引入 2.? 进程的概念 3.? 进程控制 4.? 进程的相互制约关系 5.? 进程互斥 4.1 并发活动——进程的引入 4.1.1 程序的顺序执行 (一)数据、操作 对某一有限数据的集合所施行的、目的在于解决某一问题的一组有限的操作的集合,称为一个计算。 (二)顺序程序 一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这个程序被称为顺序程序。 (三)顺序程序的特点 1.顺序性:处理机的操作严格按照程序所规定的顺序执行 2.封闭性:程序执行的结果不受外界因素的影响,即一个程序执行时所用的变量、指针值、各资源的状态不能被外界改变。 3.可再现性:程序执行的结果与它的执行速度无关(即与时间无关),只与初始条件有关。 4.1.2 程序的并发执行 所谓程序的并发执行是指:若干个程序同时在系统中运行,这些程序段的执行在时间上是重迭的,一个程序的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭是很小的一部分,一个程序段的程序段是并发执行的。 程序的并发执行的表示方法: 1.图示方法 2.语句方法(荷兰科学家E.W.Dijkstra方法) S0; cobegin S1;S2;...;Sn; coend Sn+1; ? 4.1.3 并发执行实例—誉抄 (一)一个循环程序的誉抄方案 假设f表示输入序列,g表示输出序列。 main() { while(f不空) { input; /*读入f中的数据;*/ output; /*输出读入的数据;*/ } } (二)??? 两个并发程序的誉抄方案 假设f表示输入序列,g表示输出序列, 誉抄过程利用一个缓冲区A。 main() {? cobegin while(f不空){ input; /*读入f中的数据;*/ send; /*将读入的数据送到A;*/ } while( 誊抄未完成){ receive; /*从A中取的数据;*/ output; /*输出取出的数据;*/ } coend } 三个并发程序的誉抄方案 main() { if(f不空){ get(s,f); while(誊抄未完成){ t=s; /*COPY */ cobegin put(t,g); get(s,f); coend } } } 4.1.4 与时间有关的错误 结论: 并发程序如共享某些公共变量时,并发程序执行时会出现与时间有关的错误。如 main() { if(f不空){ get(s,f); while(誊抄未完成){ /*t=s; */ /*COPY */ cobegin t=s; /*COPY */ put(t,g); get(s,f); coend } } } 4.1.5 并发程序的特点 (一)失去程序的封闭性和再现性 (二)程序与计算不再一一对应 (三)程序并发执行的相互制约 4.2进程概念 4.2.1 进程的定义 到目前为止,进程有多种定义,如: (1) 进程是程序的执行; (2) 并行程序称为进程; (3) 进程是可以和别的计算并发的计算; (4) 进程是一个数据结构及在其上进行操作的程序。 这些定义都从不同的侧面描述了进程的特征,都一定的道理,但我们认为下面的定义更全面和更准确: 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。 此定义包含有如下的含义: (1) 进程是一个动态的概念,而程序是一个静态的概念; (2) 进程包含了一个数据集合和运行其上的程序; (3) 同一程序运行于若干不同的数据集合上时,它将属于若干个不同的进程,或者说,两个不同的进程可包含相同的程序; (4) 系统分配资源是以进程为单位的,所以只有进程才可能在不同的时刻处于几种不同的状态,即等待、就绪、运行。 (5) 从微观上看,进程是轮换地占有处理机而运行的,从宏观上看,进程是并发地运行的。 进程和程序是即有联系又有区别的两个概念,它们的区别和关系如下: (1) 进程是指令的有序集合,其本身没有任何运行的含义,它是一个静态概念。而进程是程序在处理机上的一次执行过程,它是一动态概念。程序可以作为一种软件资料长期保存,而进程是有一定生命周期的,它能够动态地产生和消亡。即进程可由“创新”而产生,由调度而执行,因得不到资源而暂停,以致最后由“撤消”而消亡。 (2)进程是一个能独立运行的单位,能与其它进程并行地活动。 (3)进程是竞争计算机系统有限资源的基本单位,也是进行处理机调度的基本单位。 (4) 同
原创力文档


文档评论(0)