第3章进程processmanage管理.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 进程管理 3.1 进程概念 3.2 进程控制 3.3 进程调度 3.4 进程间的通信 3.5 死锁 3.6 线程 3.7 Linux 中的进程 3.8 综合应用 3.1 进程概念 3.1.1 程序的顺序执行与特点 众所周知,当用户要求计算机完成某项工作时,必须使用一定的指令,按照一定的工作顺序步骤编写能在计算机上运行的“程序”。“程序”是指令的集合,是一个静态的概念。它体现了用户要求计算机完成特定功能的执行步骤。 在早期的计算机系统中,只有单道程序执行功能,每一次只允许一道程序执行,在这个程序运行时,它将独占整个计算机系统中的各种软件、硬件资源,其他程序只能等待。我们把一个具有独立功能的程序独占处理机直至得到最终结果的过程称为程序的顺序执行。 假设有n个用户作业,每个作业都有相应的三个程序段。若我们用节点代表各程序段的操作:用节点I代表输入,节点C代表计算,节点P代表打印,用箭头指示操作的先后次序,则顺序程序的执行过程可以用图3.1表示。 I1→C1→P1→I2→C2→P2→…→In→Cn→Pn 显然,程序的顺序执行具有下述特征。 1. 顺序性 处理机的操作严格按照程序所规定的顺序执行。一条程序指令的执行必须在它的上一条指令执行完成之后才能开始。 2. 封闭性 程序执行的最终结果由给定的初始条件决定。程序一旦开始执行,其执行结果不受外界因素的影响。系统的状态完全取决于程序本身。 3. 可再现性 程序执行的最终结果与执行速度无关,只要程序执行时的环境和初始条件相同,无论执行多少次,程序的运算结果都是相同的。 4. 资源的独占性 程序执行时独占系统中的全部软、硬件资源,资源的使用状态(除了初始状态)只能由程序本身确定。换言之,只有该程序的操作才能改变它,它不受外界因素的影响。 由以上特点可见,程序的顺序执行使系统的资源利用率非常低。由于处理机的速度远远高于外部设备的速度,易产生处理机等待设备的现象,从而使处理机功能的发挥受到外部低速设备的限制。此外,顺序执行的程序仅用到部分资源,大部分资源处于空闲状态。MS-DOS 4.0以下版本的MS-DOS操作系统就是这样的系统,批处理系统也是一个比较典型的代表。 3.1.2 程序的并发执行及其特点 为了提高计算机系统的处理能力和资源的利用率,就应该让多道程序同时在计算机中交替执行。当一道程序不用CPU时,另一道程序应马上占用CPU,使CPU和各种外设并行工作,这样就可大大提高CPU的利用率。20世纪60年代初期,由于通道和中断技术的出现,在计算机系统中引入了多道程序系统,使得多个程序在时间上可以重叠执行,称之为并发执行。 采用多道程序后系统资源得到了充分的利用。在内存中可同时驻留多道程序,从宏观上看,多道程序在同时执行,而微观上这几道程序是交替地按顺序执行,如图3.2所示。对于单CPU系统而言,它们只能轮流地占用CPU。也就是说,程序的并发执行是指一组在逻辑上互相独立的程序在一段时间间隔之内的交替执行。由此可见,程序的并发执行在其执行时间上存在着宏观上的相互重叠。 1. 程序的封闭性和可再现性不复存在 由于多道程序共享系统内的各种资源,使得资源的状态不再受制于一道程序,而是由多道程序的活动共同决定。例如,程序PA和程序PB共同使用一个公共变量N。程序PA每执行一次对N做加1操作;程序PB每执行一次输出N 值并将其重新置为0。程序如下,其中PA(N)和PB(N)是两个并发执行的程序(即交替执行): int N=0; main() {PA(N); PB(N); } PA(int N) {while(1) N=N+1;} PB(int N) { while(1) {printf(%d,N); N=0;} } 由于程序PA和PB两者的执行都以各自独立的速度向前推进,于是执行的结果与它们之间的相对速度有关。程序PA对N做加1操作可在PB中的printf(%d,N)之前、之中或之后发生,所以PB中打印出来的值也就不同。设两个程序开始某个循环之前,N值为K。 若PA中的N= N+1操作在PB中的printf(%d,N)操作之前,则打印出的N值为K+1,执行完一个循环后

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档