- 1、本文档共374页,可阅读全部内容。
- 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 Windows Server 2003 进程的相关概念 2.8 Windows Server 2003的线程调度 2.9 中断和异常处理 2.10 Windows Server 2003的同步与互斥机制 2.11 进程通信——本地过程调用(LPC) 计算机系统中,最宝贵的资源是CPU。为了提高它的利用率,需要引入多道程序设计的概念。当内存储器中同时有多个程序存在时,如果不对人们熟悉的“程序”概念加以扩充,就无法刻画多个程序共同运行时系统呈现出的特征。因此,在本章将给出操作系统中的重要概念:“进程”。它将是在多道程序运行环境下,系统资源分配和独立运行的基本单位。 2.1 进程的引入 2.1.1 前趋图 2.1.2 程序的顺序执行 2.1.3 并发执行 2.1.1前趋图 概念: 前趋图是一个有向无循环图。 要求 每个结点可用于表示一条语句、一个程序段等 结点间的有向边表示在两个结点之间存在的前趋关系 -={(Pi,Pj)|Pi必须在Pj开始之前完成} 用途: 表示程序的执行顺序 例如: 图2-1所示:(a)示前趋图,(b)不是前趋图 前趋图 2.1.2程序的顺序执行 程序的顺序执行如图 在计算机系统中只有一个程序在运行,这个程序独占系统中所有资源,其执行不受外界影响。一道程序执行完后另一道才能开始。 程序的顺序执行 在早期的单道程序系统中,编制一个程序时,通常是按顺序进行设计:先安排输入语句,然后是对输入数据进行处理的语句,最后安排数据处理结果的输出语句。这就是人们所习惯的传统的顺序程序设计方法。程序在执行时也是按顺序依次执行各条语句,而不必考虑其他的用户程序。我们看下面三条语句的程序段: S1:x=a+b; S2:y=x+c; S3:z=y+d; 在上面三条语句中,S1、S2、S3必须按顺序依次执行,S2必须在x赋值后才能执行,S3必须在y赋值后才能执行。 程序顺序执行的特点 顺序性:一个程序开始执行必须要等到前一个程序已执行完成。绝对不可能出现在一个程序运行过程中,又夹杂进另一个程序执行的现象存在。如图所示。假定有三个程序,每个程序都是前后占用CPU执行一段时间,中间要求打印输出。具体是:程序A所需时间为(4,2,3),程序B所需时间为(5,4,2),程序C所需时间为(3,3,4)。不难看出,总共需要30个时间单位,才能把它们执行完毕。从横坐标上看,在时间区间(4~6)、(14~18)以及(23~26)中,CPU为了等待打印结束,在那里空闲等待。 程序顺序执行的特点 封闭性:程序一旦开始执行,其计算结果不受外界因素影响。任何时候,位于内存中的程序可以使用系统中的一切资源,不可能有其他程序与之竞争。 程序顺序执行的特点 可再现性:程序的结果与它的执行速度无关(即与时间无关),只要执行环境和初始条件相同,当多次重复执行一个程序时,无论不停的执行还是“走走停停”,一定会得到相同的结果。 2.1.3程序的并发执行 所谓程序的并发执行是指:若干个程序同时在系统中执行,这些程序的执行在时间上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始。 多道程序系统使处理机和外部设备,外部设备与外部设备之间可以并行工作,提高了系统资源的利用率和系统的吞吐量: 从上图(b)中可以看出,时刻6程序A打印完毕,按说应该继续执行,但是CPU已经分配给了程序B,因此程序A只能等到时刻9在程序B请求打印时,才能重新获得CPU。这就是说,在程序A执行过程时,夹杂进了程序B的执行,打破了程序执行的顺序性,内存中多个程序的执行过程被交织在一起。从宏观上看,好几个程序都在运行着(比如,在时间区间4~12,程序A和程序B都在做着自己的事情;在时间区间(4~6)、(9~13)以及(15~17)中CPU和I/O设备都在并行工作 。 程序并发执行的特点 间断性 失去程序的封闭性 不可再现性 (3)不可再现性:在多道环境中,即使初始条件相同,同一个程序多次执行的结果也可能不同 。 举例:为了了解某单行道的交通流量,在路口安放一个监视器,功能是有车通过该路段时,就向计算机发送一个信号。为计算机系统设计两个程序:程序A的功能是接收到监视器的信号时,就在计数单元COUNT上加1;程序B的功能是每隔半小时,将计数单元COUNT的值打印输出,然后清零。COUNT初始时为0,两个程序的描述如图2-6所示。 因为现在是多道程序设计环境,程序A和程序B同时在内存。当然,内存中可能还会有其他的程序存在。由于执行的顺序性被打破了
文档评论(0)