操作系统习题与解析探索.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程的描述与控制 【例1】判断题:并发是并行的不同表述,其原理相同。( ) 答案 ×。 分析 并发是指多道程序的执行在时间上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始。但对单CPU系统而言,每一时刻只有一个程序在CPU上运行(有可能此时其他的程序在进行输入、输出)。也就是说,占有CPU的只能有一个程序。因此,并发实际上是“在宏观上并行执行,在微观上串行执行”。而并行是真正意义上的并行执行,因此两者的含义是不同的。 【例2】在操作系统中引入“进程”概念的主要目的是( )。 改善用户编程环境 B.提高程序的运行速度 C.描述程序动态执行过程的性质 D.使程序与计算过程一一对应 答案 C 分析 操作系统中多道程序的引入,使得它们在并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各道程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。这些都是在程序的动态过程中发生的。而程序本身是机器能够翻译或执行的一组动作或指令,它或者写在纸面上,或者存放在磁盘等介质上,是静止的。很显然,直接从程序的字面上无法看出它什么时候运行、什么时候停顿,也看不出它是否影响其它程序或者一定受其它程序的影响。 因此,用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。为此,人们引入进程的概念来描述程序动态执行过程的性质,这是引入“进程”概念的主要目的。 【例3】下列进程状态的转换中,不正确的是( )。 就绪?阻塞 B.运行?就绪 C.就绪?运行 D.阻塞?就绪 答案 A 分析 回答这道题要知道进程的3种基本状态,以及它们之间的转换关系。通过下图可以看到,凡是图中有箭头指向的转换都是可行的,而没有箭头指向的则不可能。因此A是不正确的。 如果有的同学记不住这张图,那就从理解的角度进行思考。首先要理解3种状态的含义,然后再理解它们之间的转换。例如:运行的进程能变成就绪吗?可以,如果运行进程的时间片到了,就必修让出CPU,转换为就绪态。就绪的进程能变成阻塞吗?不可以,就绪态的进程已经具备了运行条件,只在等待CPU,怎么可能还退回到还不具备运行条件的阻塞态呢?因此,如果理解了,这张图就可以自己画出来,并不需要死记硬背。 【例4】进程控制块是描述进程状态和特性的数据结构,一个进程( )。 可以有多个进程控制块 B.可以和其他进程共用一个进程控制块 C.可以没有进程控制块 D.只能有唯一的进程控制块 答案 D 分析 进程控制块(PCB)是一个用于描述进程动态性质的数据结构。操作系统根据PCB对进程实施控制和管理。进程的动态、并发等特征也是通过PCB表现出来的。 进程由程序、数据、栈和PCB构成。构成进程的有关程序和数据集合是进程得以存在的物质基础,它们是进程的实体;PCB用于标识和刻画实体的存在和变化,是进程存在的唯一标志。当系统创建一个新进程时,就为它建立一个PCB;当进程终止后,系统回收为其分配的PCB,该进程在系统中就不存在了。 【例5】在执行V操作时,当信号量的值( ),应释放一个等待该信号量的进程。 小于0 B.大于0 C.小于等于0 D.大于等于0 答案 C 分析 P,V操作能够实现对临界区的管理要求。它由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S?1; ②如果S?0,则该进程继续执行;否则该进程置为阻塞状态,排入阻塞队列。 V(S):①将信号量S的值加1,即S=S+1; ②如果S0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。 信号量的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的值仅能由P,V操作来改变。 一般来说,信号量S?0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S?0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。

文档评论(0)

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

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

1亿VIP精品文档

相关文档