(第4章进程及进程管理)习题四答案.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《操作系统原理与 Linux 系统实验》课后习题参考答案 沈华 湖北工业大学计算机学院 习题四参考答案(P69) 4-1 试解释下列名词:程序的顺序执行、程序的并发执行。 答:一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种 程序执行的方式就称为程序的顺序执行。若干个程序段同时在系统中运行,这 些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段 的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并发执行的。 4-2 什么是与时间有关的错误?试举例说明。 答:当程序并发执行时,系统处于一个复杂的动态组合状态,各程序执行的相 对速度不确定,这使得(即使初始条件相同)这些程序多次并发执行得到的结 果不同,其中有一个结果是正确的,而其他的是错误的。这些错误与并发程序 执行的相对速度有关,是与时间有关的错误。例如,三个并发执行程序的誊抄。 其中,get 程序负责从输入序列 f 中读取字符,并送到缓冲区 s 中;copy 程序把缓 冲区 s 中的数据复制到缓冲区 t 中去;put 程序从缓冲区 t 中取出数据打印。若程 序写出: while(誊抄未完成){ cobegin copy; put; get; coend } copy、put、get 三个程序段并发执行,就有六种组合:(假设此时的状态为:f=(r1, r2, ..., rn);s=r2,t=r1,g=(r1)) 1、copy; put; get 2、copy; get; put 3、put; copy; get 4、put; get; copy 5、get; copy; put Email: nancy78733@126.com 1 《操作系统原理与 Linux 系统实验》课后习题参考答案 沈华 湖北工业大学计算机学院 6、get; put; copy 易知,如果按照 1 和 2 的执行顺序可以得到正确的誊抄结果,而 3、4、5、6 的 执行顺序都会到错误的誊抄结果(即产生了与时间相关的错误)。 4-3 什么是进程?进程与程序的主要区别是什么? 答:进程,即是一个具有一定独立功能的程序关于某个数据集合的一次活动。 进程与程序的主要区别是: (1)程序是指令的有序集合,是一个静态概念,其本身没有任何运行的含义, 进程是程序在处理机上的一次执行过程,是一个动态概念。 (2)程序作为软件资料可长期保存,而进程是有生命期的,因创建而产生、因 调度而执行、因得不到资源而暂停、因撤消而消亡。 (3)程序是记录在介质上指令的有序集合,而进程则由程序、数据和进程控制 块 3 部分组成。 (4)进程与程序之间无一一对应关系。不同的进程可以包含同一程序,同一程 序在执行中也可以产生多个进程。 (5)进程是一个独立的运行单位,也是系统进行资源分配和调度的独立单位。 而程序无此概念。 4-4 图 4-2 标明程序段执行的先后次序。其中 I 表示输入操作、C 表示计算操作、 P 表示打印操作,下角标说明是对哪个作业进行上述操作。请指明: (1)哪些操作必须有先后次序,其原因是什么? (2)哪些操作可以并发执行,其原因又是什么? 答:(1)Ii 必须先于 Ci 执行,Ci 必须先于 Pi 执行,这是因为同一个作业的这三 个操作之间具有逻辑上的严格的先后执行次序;Ii 必须先于 Ii+1 执行,Ci 必须先 于 Ci+1 执行,Pi 必须先于 Pi+1 执行,这是因为 Ii 和 Ii+1 共享输入设备、Ci 和 Ci+1 共享 CPU、Pi 和 Pi+1 共享输出设备。 (2)Ii+1 和 Ci、Pi-1 可以并发执行,因为这三个进程分属于不同的作业,且它们 占据的是不同的资源。 Email: nancy78733@126.com 2 《操作系统原理与 Linux 系统实验》课后习题参考答案 沈华 湖北工业大学计算机学院 4-5 如下图所示,设一誊抄程序,将 f 中记录的序列正确誊抄到 g 中,这一程序 由 get、copy、put 三个程序段组成,它们分别负责获得记录、复制记录、输出 记录。请指出这三个程序段对 f 中的 m 个记录进行处理时各种操作的先后次序, 并画出誊抄此记录序列的先后次序图。(假设 f 中有 1,2,…,m 个记录,s,t 为设置在主存中的软件缓冲区,每次只能装一个记录。) 答:(不是很明白题目的要求,所以给出三个程序段正确完成誊抄的算法)。 输入:f 输出:g 1. if (f 不为空) then 2. { 3. get(s, f); //从 f 中读入一个字符放入缓冲区 s 4. while(1) 5. { 6. if (s 中的字符不是结束符) then 7. { 8. copy(t, s); 9. cobegin 10. get(s,

您可能关注的文档

文档评论(0)

152****7770 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档