网站大量收购独家精品文档,联系QQ:2885784924

os_第2章进程管理试卷.ppt

  1. 1、本文档共149页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南昌大学信息管理系 NanChang University;第二部分 进程管理 ;2.1 进程的基本概念;2.1.1 程序的顺序执行及特征;又如:  输入、计算、执行;1、顺序性 2、封闭性 3、可再现性 ;2.1.2 前趋图;前趋关系表示: ? ={(Pi, Pj ) | Pi must complete before Pj may start 如果(Pi, Pj)? ?,可写成Pi? Pj 称Pi是Pj的直接前趋,而称Pj是Pi的直接后继 初始结点: 没有前趋的结点 终止结点: 没有后继的结点;;2.1.3 程序并发执行 ;I1; 1、间断性 2、失去封闭性 3、不可再现性 ;例如: 两个循环程序A和B,它们共享一个变量N。 程序A每执行一次时,都要做N:=N+1操作; 程序B则每执行一次时,都要执行Print(N)操作,然后再将N置成“0”, 程序A和B以不同的速度运行。 假定某时刻: N=n 则: ;A程序在B程序之前执行 1、N:=N+1 在Print(N)和N:=0之前;2.1.4 进程的特征与状态 ;进程的定义;进程的定义;进程的特征;进程和程序的区别:;2 进程三种的基本状态 ;2 进程三种的基本状态 (续);就绪;3. 进程的挂起状态 ;3. 进程的挂起状态(续) ;3. 进程的挂起状态(续) ;3. 进程的挂起状态(续) ;具有挂起状态的进程状态转换图 ;2.1.5 进程控制块(Process Control Block);2、进程控制块中的信息 ;用于保留一个进程在运行时存放在处理器现场中的各种信息,任何一个进程在让出处理器时必须把此时的处理器现场信息保存到进程控制块中,而当该进程重新恢复运行时也应恢复处理器现场。常用的现场信息包括通用寄存器的内容、控制寄存器(如PSW寄存器)的内容、用户堆栈指针、系统堆栈指针等。;(3) 进程调度信息;程序和数据的地址,是指进程的程序和数据所在的内存或外存地(首)址资,以便再调度到该进程执行时,能从PCB中找到其程序和数据; 实现进程同步和通信相关信息,如消息队列指针、信号量; 资源清单:包括进程所需全部资源、已经分得的资源。 链接指针:给出了本进程PCB所在队列中的下一个进程的PCB首地址;3、PCB的组织方式 ;Page 33 图2-7 PCB链接队列示意图;(2 ). 索引方式;2.2 进程控制 ;A;2、引起创建进程的事件 ;3、进程的创建 ;2.2.2进程的终止 ;2.2.2进程的终止(续) ;2.2.3 进程的阻塞和唤醒 ;3、进程唤醒过程:;2.2.4 进程的挂起与激活 ;2.2.4 进程的挂起与激活(续);2.3 进程同步 ;2.3.1 进程同步的基本概念 1.两种形式的制约关系 ;(2).直接相互制约关系 (合作关系 ) 例如:有一进程A通过单向缓冲向进程B提供数据。 当该缓冲空时,进程B因不能获得所需数据 而阻塞,而当进程A把数据输入缓冲区后, 便将进程B唤醒;反之,当缓冲区已满时, 进程A因不能再向缓冲区投放数据而阻塞, 当进程B将缓冲区数据取走后便可唤醒进程A 如: cat ch1 ch2 ch3 |grep tree;2. 临界资源 ;著名的生产者--消费者(Producer-Consumer Problem) 问题是计算机操作系统中并发进程内在关系的一种抽象,是典型的进程同步问题。在操作系统中,生产者进程可以是计算进程、发送进程;而消费者进程可以是打印进程、接收进程等等。解决好了生产者--消费者问题就解决好了一类并发进程的同步问题。;问题描述: 一群生产者进程在生产产品,并将这些产品提供给消费者进程去消费。为生产者进程和消费者进程能并发执行,在两者之间设置了一个具有n个缓冲区的缓冲池。生产者进程将它所生产的产品放入缓冲池,消费者进程可以从缓冲池中取走产品去消费。只要缓冲区未满,生产者生产的产品就可投入缓冲池;类似地,只要缓冲池不空,消费者进程就可从缓冲池取走并消耗产品。; 用数组buffer表示n个(0,1,…,n-1)缓冲区的缓冲池,用输入指针in来指示下一个可投放消息的缓冲区,用输出指针out来指示下一个可获取消息的缓冲区。 in= (in+1)mod n; out=(out+1)mod n; 当(in+1)mod n= out时,表示缓冲池满; 当in= out表示缓冲池空。 整型变量counter,初值为0;生产者投放一个消息counter+1;消费者进程从中取走一个消息时,counter-1。 ;Var n:integer; Type item=…; Var buff

您可能关注的文档

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档