- 1、本文档共154页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统第2章
第 2 章 处理机管理 2.1 处理机管理概述 2.2 进程 2.3 进程控制 2.4 进程同步与互斥 2.5 进程通信 2.6 进程调度 2.7 进程死锁 2.8 线程的基本概念 2.1 处理机管理概述 在计算机的各种硬件资源中,处理机是最重要的资源,也是最紧俏的资源。 2.1.1 处理机管理的功能 处理机管理的主要任务是对处理机进行分配,对进程的控制和管理。 处理机管理的主要功能有进程控制、进程同步、进程通信和进程调度和进程死锁。 2.1.2 前趋图 前趋图是一个有向无循环图。图中的每个结点可用于表示一条语句、一个程序段等;结点间的有向边表示在两个结点之间存在的前趋关系。 前趋 ,后继 ,初始结点 ,终止结点 2.1.3 程序的顺序执行及其特征 若一个计算由若干操作组成,而这些操作必须按照某种先后次序执行,这类计算过程就是程序的顺序执行,由这些操作构成的程序称为顺序程序。比如,有如下程序: 它的执行顺序是: 如果有2个程序需要执行,则执行顺序为: 程序顺序执行时的特征: (1)执行的顺序性 严格按照程序所规定的顺序执行。只有前一段执行结束,后一段程序才能开始。 (2)环境的封闭性 在单道程序环境下,程序一旦开始执行,其计算结果不受外界因素影响。程序在运行时独占所有资源,资源的状态只有本程序能够改变它。 (3)计算过程的可再现性 只要程序执行的环境和初始条件相同,程序无论重复执行多少次,按何种方式执行,都将获得相同的结果。(与时间无关性) 2.1.4 程序的并发执行 在引入了操作系统后,程序可以并发执行。对于上例程序的执行情况如下: (1)程序并发执行时的特征 ① 间断性 表现为“执行——暂停执行——执行”的间断性活动规律。 ② 失去封闭性 封闭性是指程序独占资源,程序在执行时,不会受到其它程序的影响。现在程序不再独占资源,而是多个程序共享资源,因此封闭性也不复存在。 ③ 不可再现性 由于程序执行时失去了封闭性,也将导致失去可再现性,既使并发程序执行的环境和初始条件相同,程序的多次或以不同方式的执行,也可能获得不相同的结果。 程序的执行将与时间有关。 (2)进程并发执行的判断方法 判断程序能否并发执行的方法有2种:Bernstein(巴斯滕)条件和前趋图。 ① Bernstein条件(时间无关性条件) 即不同运算(或程序)的读集与写集的交集和写集与写集的交集的并集为空集时,这几个运算(或程序)可以并发执行。运算的读集是指在运算执行期间引用的所有变量的集合,运算的写集是指在运算执行期间要改变的所有变量的集合。 如:运算w=x+y,其读集是{x,y},其写集是{w}。 例2-2 有四条语句,哪些语句可以并发地执行? s1:a=x+y; s2:b=z+1; s3:c=a-b; s4:d=c+1; 分析: 4个语句的读集与写集分别是: 读集:R(s1)={x,y}, R(s2)={z}, R(s3)={a,b}, R(s4)={c} 写集:W(s1)={a}, W(s2)={b}, W(s3)={c}, W(s4)={d} 由Bernstein条件可知s1与s2可以并发执行。 ② 利用前趋图 画出程序执行的前趋图,根据该程序或运算在前趋图中的位置关系,可以判断其能否并发执行。即在程序或运算的先后顺序上,只有前后相邻的程序或运算不能并发执行,其余程序和运算都可以并发执行。 例2-3 已知一个求值公式(A2+3B)/(B+5A),若A、B已赋值,试画出该公式求值过程的前趋图,并判断哪些求值过程可以并发执行。 分析: 把公式(A2+3B)/(B+5A)按运算顺序分解,可以产生如下运算步骤:s1~s6,如图2-4(a)所示;根据分解的运算顺序画出它的前趋图,如图2-4(b)所示。 能够并发执行的运算是: s1与s2、 s1与s3、 s2与s3、s1与s5、s2与s5、s3与s4、s4与s5
文档评论(0)