- 1、本文档共133页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 进程的描述与控制 操作系统运行的硬件基础 2.1 前趋图和程序执行 2.2 进程的描述 2.3 进程控制 2.4 进程同步 2.5 经典进程的同步问题 2.6 进程通信 2.7 线程的基本概念 2.8 线程的实现 2.1 前趋图和程序执行 前趋图(Precedence Graph) 是一个有向无循环图DAG(Directed Acyclic Graph),用于描述进程之间执行的先后顺序 结点:可表示一个语句、一个程序段或一个进程 包括 初始结点:无前趋 终止结点:无后继 有向边“→”:表示两个结点之间的前趋关系 →={( Pi,Pj ) | Pi must complete before Pj may start} pi 为 pj 的直接前趋,pj 为 pi 的直接后继 注:前趋图中不允许存在循环! 2.1 前趋图和程序执行 正确例子 P={p1,p2,p3,p4,p5} ?={(p1,p2),(p1,p3),(p2,p4), (p3,p5),(p4,p5)} 错误例子 s2?s3, s3?s2 2.1 前趋图和程序执行 程序顺序执行 程序的顺序执行 一个程序由若干程序段组成,这些程序段的执行必须是顺序的;同时程序与程序之间也必须顺序执行。 例 2.1 前趋图和程序执行 程序顺序执行时的特征 顺序性 封闭性 可再现性 2.1 前趋图和程序执行 程序并发执行 程序的并发执行 多个程序同时在系统中运行,这些程序的执行在时间上是重叠的,即前一程序的执行尚未结束,后一程序的执行已经开始。 例 2.1 前趋图和程序执行 特征 间断性:程序执行有“执行--暂停--执行”的活动规律 失去封闭性:某程序执行时,必然受到参与并发执行的其它程序的影响 不可再现性(不确定性):计算结果与并发程序执行速度有关。即同一程序,使用相同输入、在相同环境下运行,却可能获得完全不同的结果 2.1 前趋图和程序执行 不可再现性的例子 两个并发执行的程序A和B,如下所示: A: N:=N+1; B: print(N); N:=0; 2.1 前趋图和程序执行 引入并发的目的 提高资源利用率 提高系统效率 在顺序环境下,A先执行,B再执行CPU利用率= 40/80 = 50%Dev1利用率= 15/80 =18.75%Dev2利用率= 25/80 =31.25% 反之亦然!! 在并发环境下 CPU利用率= 40/45=89% Dev1利用率= 15/45=33% Dev2利用率= 25/45=66% 2.2 进程的描述 2.2 进程的描述 多道程序环境下,必须引入进程——例子 编译程序C编译源程序1,执行到a时因某种原因无法继续,致使CPU空闲,此时转去编译源程序2,执行到b。 2.2 进程的描述 2.2 进程的描述 引入进程 2.2 进程的描述 进程的定义和特征 定义 进程(Process)是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。 又称任务(Task) 2.2 进程的描述 特征 动态性 是运行过程;有一个从创建到撤消的生命周期 并发性 独立性 CPU调度的基本单位;独立获得资源的基本单位 独立运行的基本单位 异步性 进程按各自独立的、不可预知的速度向前推进 结构特征 进程=程序+数据+进程控制块PCB 2.2 进程的描述 进程和程序的区别 进程是动态的,程序是静态的。 进程是暂时的,程序是永久的。 进程与程序的组成不同:进程包括程序、数据和进程控制块。 进程与程序是密切相关的。通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。 2.2 进程的描述 程序与进程的对应关系1:一个程序对应两个进程 2.2 进程的描述 程序与进程的对应关系2:一个进程包括多个程序 2.2 进程的描述 进程的状态 三种基本状态 就绪状态(ready):进程等待分配CPU。 系统中同时处于就绪状态的进程会排成一个或多个就绪队列。 执行状态(running):进程正占用CPU执行其程序中的指令。 在单处理机系统中,任何时刻至多只有一个进程处于执行状态。 阻塞状态(blocked):进程在等待某个事件的发生,故也称为等待状态(waiting)。 2.2 进程的描述 基本状态间的转换 进程的状态是在不断变换的 2.2 进程的描述 进程的五种状态模型 增加创建状态和终止状态 2.2 进程的描述 进程的七种状态模型 增加挂起状态 2.2 进程的描述 进程控制块PCB(Process Control Blo
文档评论(0)