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

第4篇练习(上).doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
解释名词:程序的顺序执行;程序的并发执行。 答:一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种 程序执行的方式就称为程序的顺序执行。若干个程序段同时在系统中运行,这 些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段 的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并发执行的。 什么是进程?进程与程序的主要区别是什么? 答:进程是一个具有一定独立功能的程序关于某个数据集合的一次活动, 是系统进行 资源分配和调度的独立单元。 进程和程序的区别: ①程序是静态的,进程是动态的;②进程有程序和数据两部分组成; ③进程具有生命周期,有诞生和消亡,是短暂的;而程序是相对长久的; ④进程能更真实的描述并发,而程序不行; ⑤一个进程可以对应多个程序。一个程序可以对应多个进程; ⑥进程可以创建其他进程,程序不能. 3. 图1所示,设一誊抄程序,将f中记录序列正确誊抄到g中,这一程序由get、copy、put三个程序段组成,它们分别负责获得记录、复制记录、输出记录。请指出这三个程序段对f中的m个记录进行处理时各种操作的先后次序,并画出誊抄此记录序列的先后次序图(假设f中有1,2,…,m个记录,s,t为设置在主存中的软件缓冲区,每次只能装一个记录)。 图1 改进后的誊抄过程 解: 4.进程有哪几种基本状态?试画出进程状态变迁图,并标明发生变迁的可能原因。 答:进程有三个基本状态:运行状态、就绪状态和等待状态(又称阻塞、挂起、睡眠). 5. 什么是进程控制块?它有什么作用? 答:进程控制块PCB:为了便于系统控制和描述进程的活动过程,在操作系统核心中为进程定义的一个专门的数据结构。 作用:系统用PCB来控制和管理进程的调用,PCB也是系统感知进程存在的唯一标志。 6. n个并发进程共用一个公共变量Q,写出用信号灯的p、v操作实现n个进程互斥时的程序描述,并说明信号灯值的取值范围。 7. 我们用进程流图来描述一组合作进程执行的先后次序。试用信号灯的p、v操作实现如图2(a)、(b)中所示进程之间的同步,并写出程序描述。 图2 图3 8. 如图3所示的进程流图中,有五个进程合作完成某一任务,试说明这五个进程之间的同步关系,并用p、v操作实现之,并要求写出程序描述。 ` 9. 如图4所示,get、copy、put三进程共用两个缓冲区s、t(其大小为每次存放一个记录)。get进程负责不断地把输入记录送入缓冲区s中,copy进程负责从缓冲区s中取出记录复制到缓冲t中,而put进程负责把记录从缓冲区t中取出打印。试用p、v操作实现这三个进程之间的同步,并写出程序描述。 图4 10. 什么是进程的互斥与同步?同步和互斥这两个概念有什么联系与区别? 答:进程同步:是指进程之间一种直接的协同关系,是一些进程相互合作,共同完成一项任务,进程剪得直接相互作用构成进程的同步。 进程互斥: 在系统中,许多进程需要共享资源,而这些资源往往要求排他性的使用,即一次只能为一个进程服务。因此,个进程间互斥使用这些资源,进程间的这种关系叫做进程互斥。 联系:进程互斥与同步是指在进程推进时的相互制约关系。在多道程序系统中,由于资源共享与进程合作,这种进程间的制约成为可能。 区别:进程同步主要源于进城合作,是进程间共同完成一项任务时直接发生相互作用,为进程提供直接制约关系。在多道环境下,这种进程在执行次序上的协调是必不可少的。 而进程互斥,主要源于资源共享,是进程间的间接制约关系。在多道系统中,每次只允许一个进程访问的资源成为临界资源,进程互斥就是保证每次只有一个进程使用临界资源。 在生产者一消费者问题中,我们设置三个信号灯,一个用于互斥的信号灯mutex,full(初值为0,用以指示缓冲区内是否有物品)和empty(初值为n,表示可利用的缓冲区数目)。试写出此时的生产者一消费者问题的描述。 12. 判断正是列同步算法是否有错,请指出错误原因并改正。 (1)三个进程并发活动的进程流图5所示,其同步算法描述如下: main( ) { int s =-1; //改正:int S13=0,S23=0; cobegin p1( ); p2( ); p3( ); coend } p1( ) { ┇ v(s); //改正:V(S13); } p2( ) { //改正: { p(s); ┇ ┇ V(S23); } } p3( ) { //改正: { p(s); P(S13); ┇ P(S23); }

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档