欢迎来到天天文库
浏览记录
ID:43807385
大小:2.21 MB
页数:242页
时间:2019-10-14
《计算机操作系统 刘循 朱敏 文艺 第4章进程同步与进程通信》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机操作系统主讲:四川大学计算机学院刘循第4章进程同步与进程通信在多进程环境下,并发进程之间存在相互协作和相互竞争资源。进程同步措施使得进程之间能够相互协作和有序使用资源。进程通信是进程之间数据的相互交换和信息的相互传递,进程通信是一种高级通信机制。第4章进程同步与进程通信本章的主要内容如下:进程并发;信号量机制;用信号量实现经典进程同步问题;管程;进程通信。4.1进程并发4.1.1程序的顺序执行程序执行时,必须按照先后次序逐个进行。如果一段程序由输入、计算、输出3部分操作构成。程序顺序执行要求首先是输入操作
2、,然后是计算处理,最后是输出操作;一段程序完成后,才能完成下一段程序程序的顺序执行如图4.1所示。图4.1程序顺序执行前驱图4.1.1程序的顺序执行程序的顺序性包括程序的内部顺序性和程序的外部顺序性。程序的内部顺序性是指一个程序的操作代码在计算机处理器上按照顺序执行,一个代码结束后,后一个代码才能开始。程序的外部顺序性是指如果一项任务由多个程序模块组成,程序模块的运行也需要按照调用顺序执行,即程序模块之间的顺序性。程序顺序执行的特点:顺序性:一个程序在处理器上的运行是按照顺序进行的,每个操作必须在上一个操作完成
3、后才能开始;由多个程序模块构成的一个程序,一个程序模块执行完成后另一个程序模块才能开始。封闭性:在程序顺序执行下,运行的程序独占系统全部资源,程序执行的结果除初始条件外,由程序本身决定,不会受到任何其它程序和外界因素的干扰。再现性:针对相同的数据集合,程序执行的结果总是相同的。在程序执行过程中允许出现中断,但是,中断对程序执行的最终结果没有影响。即,程序执行的结果会重复出现。程序执行的结果是可再现的。4.1.1程序的顺序执行程序设计的顺序性、封闭性和再现性表明程序设计与程序执行是一一对应的,这给编制程序和调试程
4、序带来了极大的方便。程序顺序性,特别是外部顺序性,要求一个程序模块完成后另一个程序模块才能开始,这样,限制了多个程序模块的并发执行。在多道程序并发执行环境下,如果再按照程序的顺序执行,处理器的利用率低,系统性能差。传统的程序顺序执行在多道程序环境下已不适合。4.1.1程序的顺序执行4.1.2进程的并发性在多道程序环境下,程序是按照多个进程并发执行。如图4.2所示,这是一个包含有输入、计算、输出多个进程并发执行的情况。图4.2程序并发执行前驱图输入进程、计算进程、输出进程之间存在顺序关系:输入进程、计算进程、输出
5、进程之间也存在交替关系:4.1.2进程的并发性(续)一个输入进程还没有完成,另一个计算进程已经开始;程序的外部顺序性不再存在。多个进程并发执行,并发进程之间可能是分别在不同的变量集合上操作。一个进程执行与其它进程的进展没有关系,不会改变另一个并发进程的变量值。并发进程之间也可能是交互的,相关的。可能在同一时间段内,多个进程执行相同的软件代码,或多个进程共享某些变量,或多个进程请求同一硬件资源,一个进程的执行可能影响到其他进程的执行结果,并发进程之间具有制约关系。4.1.2进程的并发性(续)例如,两个计数程序A、
6、B,都为:N=N+1;print(N);其中,计数值N是共享变量。如果N的初始值为0:4.1.2进程的并发性(续)(1)如果执行的次序为程序A在前,程序B在后,完成A之后再执行程序B。程序A:N=N+1;print(N);/*此时打印出的结果为1*/程序B:N=N+1;print(N);/*此时打印出的结果为2*/最终程序结果为:程序A打印出的结果为1,程序B打印出的结果为2。4.1.2进程的并发性(续)(2)如果执行的次序为程序B在前,程序A在后,完成B之后再执行程序A。程序B:N=N+1;print(N);
7、/*此时打印出的结果为1*/程序A:N=N+1;print(N);/*此时打印出的结果为2*/最终程序结果为:程序A打印出的结果为2,程序B打印出的结果为1。4.1.2进程的并发性(续)(3)如果程序A、B以另一种方式交替执行,那么程序A:N=N+1;程序B:N=N+1;程序A:print(N);/*此时打印出的结果为2*/程序B:print(N);/*此时打印出的结果为2*/最终程序结果为:程序A打印出的结果为2,程序B打印出的结果为2。从上面可以看到,相同的程序由于并发执行的情况不同,最终得到的结果也不同,
8、程序运行出现了不可再现性。4.1.2进程的并发性(续)进程并发执行的特点:间断性制约性不可再现性失去封闭性进程并发执行充分利用了计算机资源,提高了计算机系统的效率。并发程序设计是多道程序设计的基础,是现代程序设计的主流。4.1.2进程的并发性(续)4.1.3进程间的竞争和协作在进程并发环境下,并发执行的进程以各自的速度向前推进,相互之间构成了相互竞争资源和相互协作的关系。1.进
此文档下载收益归作者所有