您现在的位置:学赛首页 > 自考学院 > 操作系统原理 > 正文
操作系统概论模拟试题一答案
http://www.educity.cn 作者:不详 来源: 2006年8月22日 发表评论 进入社区

TEST 1 ANSWER
 
一、单项选择题
[分析]第7题可借助银行家算法来检测系统的安全性。银行家算法的实质是只要保证任何时刻至少有一个进程能得到所需的全部资源则系统不会死锁。由于每个进程最多申请k个资源,因而最坏的情况是每个进程都已得到了(k—1)个资源,现均要申请最后一个资源。只要系统至少还有一个资源可使其中的一个或几个进程能得到所需的资源,那么,在它们执行结束后归还的资源可供其它进程使用,因而就不会发生死锁。亦即,只要不等式:
    n(k-1)+1=<m
成立,系统就不会发生死锁。
由于每个进程最多申请k个资源,因而n个进程的最大需求量之和为nk。于是,只要从上述不等式中解出nk的值就行。从不等式中可得到:
    nk=<m+n-1
显然 nk<m+n,因而,本题的正确答案应选择C。
第10题,被创建的进程在它的生命周期中每一时刻总是处于三种基本状态中的一种状态,当进程运行结束时该进程也就结束了它的生命而消亡,因而不可能再进人就绪状态。一个进程调用P操作后只可能有两种情况:(1)该进程可继续运行;(2)该进程从运行态变为等待态。因而,不可能使处于等待态的进程进人就绪状态。若现运行进程时间片用完,则它就从运行态变为就绪态,故也不会使进程从等待态进人就绪态。但是,当现运行进程调用了V操作后,则可能释放一个等待信号量的进程,这个被释放的进程就从等待态进人了就绪态。故本题应选择C。
[题解]1.C 2.D 3.B 4.A 5.D 6.D 7.C 8.B 9.A 10.C 11.D 12.D 13.D 14.B 15.B

二、多项选择题
[分析]第4题中的B,C两个选项是错误的。任何一个作业要执行的话必须经过两级调度,第一级为作业调度,作业调度把选中的作业装人主存储器后相应的进程应处于就绪状态;第二级为进程调度,处于就绪状态的作业进程只有被进程调度选中后才能占用处理器运行。一个作业在执行中要经历若干个作业步,每个作业步都是一个程序的执行,因而每个作业步都是一个进程,且这些进程执行时还会请求创建新的进程协助工作。因而,作业与进程并非是一一对应的。
[题解]1.D, E
2.B,C, E
3.B, E
4.A,D, E
5.A,B,C,D, E
6.B, D
7.A, C
8.A, E

三、填空题
[分析]第2题,在单道程序设计系统中每次只能执行一个作业,因而处理器与外设不可能并行工作,这两道作业执行的总时间至少为(19+2+15)= 36(分钟)。而在多道程序设计的系统中可以利用处理器与外设的并行工作能力,先让第二道计算2分钟,当它启动了打印机后可让第一道占用处理器去计算。由于处理器和打印机的并行工作,使得两道作业执行的总时间可以减少,它们最少需(2+19)= 21(分钟)。
[题解]1.就绪
2.36,21
3.就绪
4.移动
5.位示图
6.打开文件,建立文件
7.逻辑,绝对
8.作业控制说明书
9.发送(或send),接收(或receive)
10.顺序,随机

四、简答题
1.[题解]设置进程控制块的目的是为了区分各个不同的进程,记录各个进程执行时的情况。
一般来说,进程控制块应包含四类信息:
(1)标识信息——用于标识进程。
(2)说明信息——用于说明进程的情况。
(3)现场信息——用于保留进程存放在处理器中的各种信息。
(4)管理信息——用于进程调度等。

2.[题解]LRU算法是一种页面调度算法,它总是选择在最近一段时间里最久没有被访问过的页调出。这是基于程序局部性原理,认为最近经常被访问的页很可能马上还要被访问。若把它调出的话则可能立即又要被调人,这无疑会增加缺页中断率。因此,不能把它调出。相反,那些较久没被访问过的页,可能暂时也不会去访问它,因而将它调出是合适的。
近似LRU算法总是从最近一段时间里没有被访问过的页面中去选择一个页面调出。这种近似算法实现起来比较简单,但是,若在一段时间里所有的页均被访问过,或没有被访问过的页面很多,就可能很难确切找出最近最久没被访问过的页面。

3.[题解]操作系统为支持程序设计语言的工作而编制了一些功能子程序,这些子程序称为“系统功能调用”或简称“系统调用”,供用户程序执行中调用。所以,系统调用是操作系统为用户程序提供的一种服务界面。
访管指令是一条可以在目态下执行的指令,用户程序中凡是要调用操作系统功能时就安排一条访管指令。当处理器执行到访管指令时就产生一个中断事件(自愿中断),暂停用户程序的执行,而让操作系统来为用户服务。

4.[题解]用户申请分配设备时不是具体指定要哪台设备,而是指出要申请哪一类设备多少台,且在用户程序中用“设备类相对号”的方式来提出使用设备的要求。系统分配设备时只要从指定的那一类设备中找出“好的且尚未分配的”设备来进行分配。所以,用户编制程序时使用的设备与实际可以使用的设备无关,把这种特性称为“设备的独立性”。

5.[题解]系统出现死锁一定同时保持了四个必要条件:
(1)互斥条件。每一个资源每次只能由一个进程使用,即进程互斥使用资源。
(2)占有且等待条件。一个进程申请资源得不到满足时处于等待资源的状态,且不释放已占的资源。
(3)非抢占条件。任何一个进程不能抢夺其它进程所占用的资源,即已被占用的资源只能由占用资源的进程自己来归还。
(4)循环等待条件。系统中存在一组进程,其中每一个进程分别等待另一个进程所占用的资源,形成了循环等待资源的状态。

6.[分析]采用响应比高者优先算法进行调度时,必须对输入井中所有满足作业调度必要条件的作业计算出响应比,从中选出响应比最高者优先装人主存储器。本题中的三个作业都没有提出资源要求,因此在 9:40进行调度时应计算出这三个作业的响应比。由于在 9:40时作业J1等待了1小时 40分钟(即 100分钟),作业 J2等待了 1小时 10分钟(即 70分钟),作业 J3等待了 10分钟,而每个作业需计算的时间依次分别为:120分钟,60分钟和15分钟,故调度时这三个作业的响应比分别为:
    J1的响应比=100/120=5/6
    J2的响应比=70/60=7/6
    J3的响应比=10/15=2/3
由于系统只有一台处理器且是一个单道系统,因而,只能从中选出响应比最高的作业J2先装人主存储器执行。待作业J2执行结束后再次进行调度,由于等待时间发生了变化,故要重新计算响应比。作业J1和J3的等待时间又增加了1小时,因此,这时它们的响应比为:
    J1的响应比=(100+60)/120=4/3
    J3的响应比=(10+60)/15=14/3
显然,作业J3的响应比高于作业J1的响应比,因而作业J1应最后执行。当J1能被选中时它的响应比应该为:
    J1的响应比=(100+60+15)/120=35/24
[题解]三个作业的执行次序为:J2,J3,J1。
它们被选中时的响应比为:
    J1的响应比=(100+60+15)/120=35/24
    J2的响应比=70/60=7/6
    J3的响应比=(10+60)/15=14/3 

五、综合题
1.[分析]由于磁盘分块的大小为512个字节,而文件中逻辑记录的大小为250个字节,故一个磁盘块中可容纳两个逻辑记录,多余的12个字节可用来存放链接指针。
当把两个逻辑记录作为一组存放在磁盘上构成链接文件后,则第7个逻辑记录应在该文件的第四个磁盘块上。由于主存缓冲区的大小为512个字节,因此,每次可以存放一个磁盘块的信息。
为了能得到第7个逻辑记录,必须把该文件的第四个磁盘块的信息读到主存缓冲区。文件按链接结构组织后,只有读出了前一块的信息后才能从链接指针中获得存放文件信息的下一块地址。每读一块信息都要启动一次磁盘,因而要读出含有第7个逻辑记录的第四块信息必须启动四次磁盘。
[题解](1)采用成组操作时,两个逻辑记录为一组较合适。
(2)文件的链接结构示意图如下:


(3)要读出第7个逻辑记录应启动磁盘四次。

2.[题解](1)对资源分配不加限制可能会发生死锁。因为每个进程都需要两个资源,如果它们各自都向系统先申请自己所需要的第一个资源,那么,系统就会给进程P1、P2和P3分别分配资源S3、S1和S2。于是,三个资源都分配出去了,以后任何一个进程再想要第二个资源时都得不到满足,它们之间形成了循环等待。由于系统已无资源,故这种循环等待永远无法结束,即形成了死锁。
(2)为保证进程能正常工作,系统可采用按序分配策略,规定进程总是先申请编号小的资源再申请编号大的资源。因按序分配策略能破坏“循环等待资源”的条件,可达到防止死锁的目的。在本题中,只要让进程P1先申请S1,再申请S3,就不会引起死锁。
[讨论]在本题中除了可采用按序分配策略外,也可采用静态分配策略来防止死锁。当采用静态分配策略时,每次只有一个进程能得到所需的资源,但该进程在执行过程中不会再申请资源,故不会出现等待资源的状态,且总能在有限的时间内执行结束并归还所占的资源。归还的资源可供其它进程使用,同样地,这些进程不会无限期地占用资源。因而这些进程都不会卷人死锁,静态分配保证了进程能正确地工作。

3.[分析]按照本题所规定的管理原则可见该自动管理系统仅是限制各进程(车辆)互斥地进人临界区(AB路段),各进程之间没有必然的依赖关系,它们不需要互通消息。所以,进程之间的关系应该是互斥。
用PV操作管理时只要定义一个互斥的信号量巨石的初值为1。任何一辆车到达A点后欲进入AB段行驶则应先调用P(S)来测试当前是否已有车辆在AB段行驶。由于S的初值为1,故每次只有一辆车能进人AB段行驶,其余欲进人AB段的车辆将在A点等待。当在AB段行驶的车辆驶出B点后应调用V(S)来释放一个在A点等待进入AB段的车辆,使得每一辆车都可以先后进人AB段行驶。
[题解](1)各进程之间的关系是互斥。
(2)可定义一个互斥信号量 S,S的初值为 1。用 PV操作管理时 S可能的取值为 1、0及<0,
这些值的含义是:
S=1时表示无车辆在AB段行驶,若有某车辆欲进人AB段则立即可以进入。
S=0时表示已有一车辆正在 AB段行驶,这时任何其它车辆欲进入AB段都必须等待。
S<0时其绝对值|S|表示在 A点等待进入 AB段行驶的车辆数。
(3)用PV操作管理时进程的程序如下:
    begin
        到达A点;
        P(S);
        在AB段行驶;
        驶出B点;
        V(S);
    end