文档详情

计算机操作系统第4章进程同步和进程通信.ppt

发布:2017-07-29约3.79万字共241页下载文档
文本预览下载声明
计算机操作系统 主讲: 四川大学计算机学院 刘 循 ;第4章 进程同步与进程通信;第4章 进程同步与进程通信;4.1 进 程 并 发;4.1.1 程序的顺序执行;程序顺序执行的特点: 顺序性:一个程序在处理器上的运行是按照顺序进行的,每个操作必须在上一个操作完成后才能开始;由多个程序模块构成的一个程序,一个程序模块执行完成后另一个程序模块才能开始。 封闭性:在程序顺序执行下,运行的程序独占系统全部资源,程序执行的结果除初始条件外,由程序本身决定,不会受到任何其它程序和外界因素的干扰。 再现性:针对相同的数据集合,程序执行的结果总是相同的。在程序执行过程中允许出现中断,但是,中断对程序执行的最终结果没有影响。即,程序执行的结果会重复出现。程序执行的结果是可再现的。 ;程序设计的顺序性、封闭性和再现性表明程序设计与程序执行是一一对应的,这给编制程序和调试程序带来了极大的方便。 程序顺序性,特别是外部顺序性,要求一个程序模块完成后另一个程序模块才能开始,这样,限制了多个程序模块的并发执行。 在多道程序并发执行环境下,如果再按照程序的顺序执行,处理器的利用率低,系统性能差。 传统的程序顺序执行在多道程序环境下已不适合。;4.1.2 进程的并发性;输入进程、计算进程、输出进程之间存在顺序关系:;一个输入进程还没有完成,另一个计算进程已经开始;程序的外部顺序性不再存在。 多个进程并发执行,并发进程之间可能是分别在不同的变量集合上操作。一个进程执行与其它进程的进展没有关系,不会改变另一个并发进程的变量值。 并发进程之间也可能是交互的,相关的。可能在同一时间段内,多个进程执行相同的软件代码,或多个进程共享某些变量,或多个进程请求同一硬件资源,一个进程的执行可能影响到其他进程的执行结果,并发进程之间具有制约关系。;例如,两个计数程序A、B,都为: N=N+1; print(N); 其中,计数值N是共享变量。 如果N的初始值为0: ;(1)如果执行的次序为程序A在前,程序B在后,完成A之后再执行程序B。 程序A:N = N + 1; print(N); /* 此时打印出的结果为1*/ 程序B:N = N + 1; print(N); /* 此时打印出的结果为2*/ 最终程序结果为: 程序A打印出的结果为1,程序B打印出的结果为2。;(2)如果执行的次序为程序B在前,程序A在后,完成B之后再执行程序A。 程序B:N = N + 1; print(N); /* 此时打印出的结果为1*/ 程序A:N = N + 1; print(N); /* 此时打印出的结果为2*/ 最终程序结果为: 程序A打印出的结果为2,程序B打印出的结果为1。;(3)如果程序A、B以另一种方式交替执行,那么 程序A:N=N+1; 程序B:N=N+1; 程序A:print(N); /* 此时打印出的结果为2*/ 程序B:print(N); /* 此时打印出的结果为2*/ 最终程序结果为: 程序A打印出的结果为2,程序B打印出的结果为2。 从上面可以看到,相同的程序由于并发执行的情况不同,最终得到的结果也不同,程序运行出现了不可再现性。;进程并发执行的特点: ? 间断性 ? 制约性 ? 不可再现性 ? 失去封闭性 进程并发执行充分利用了计算机资源,提高了计算机系统的效率。并发程序设计是多道程序设计的基础,是现代程序设计的主流。 ;4.1.3 进程间的竞争和协作 ; 在计算机系统中,共享的资源分为: 互斥共享资源和同时共享资源。 互斥共享资源是指只有一个进程对资源访问,访问结束并释放后,另外的进程才能访问该资源。如:打印机、扫描仪等硬件设备 软件资源有各种数据结构、数据库对象、服务性程序等。这些资源需要进程互斥访问。 同时共享资源是指多个进程可以并发访问,不需要一个进程访问结束,其他的进程就可访问的资源。如磁盘、光盘等外存储设备。这些资源不存在进程的互斥访问问题。 进程对互斥共享资源的竞争要求操作系统对进程操作采取同步措施,从时间上和顺序上加以限制,使得进程之间相互制约地使用这些资源,保证资源的完整性。; 进程对互斥共享资源的竞争要求操作系统对进程操
显示全部
相似文档