计算机学院第1学期期末考试《操作系统》试题(闭卷 B )
一、填空题(共8题,每空1分,共15分)
1.并发进程中需要互斥访问的资源称为 临界资源 ,访问该资源的那段代码叫做 临界区 。
2. 在一个单处理系统中,若有5个用户进程,则处于就绪状态的用户进程最多有 4  个,最少有 0 个。
3. 静态重定位在 装入时 时进行,动态重定位在 运行时  时进行。
4. 假定一个操作系统的进程调度采用剥夺式短进程优先调度算法(单处理机系统),系统中各进程到达就绪队列的时刻以及执行时间如右表所示。则各进程的调度次序为 P1->P2->P4->P1->P3 ,平均周转时间 13 。 5、分区管理中采用“首次适应”分配算法时,
应将空闲区按 地址递增 次序登记在空闲分区表中。
6、不让死锁发生的策略可以分为静态和动态的两种,死锁避免属于 动态  策略。
7. 设备无关性是指用户程序与 应用程序 无关。
8. 文件的结构就是文件的组织形式,从用户观点出发所看到的文件组织形式为文件的  逻辑结构 。按物
理结构划分,文件主要有三类: 顺序文件 、 链接文件  、  索引文件 。
二、单项选择题(共15题,每题2分,共30分)
1. 在存储管理中,采用覆盖与交换技术的目的是(    )。A
A.节省主存空间
B.物理上扩充主存容量
C. 实现外存共享
D. 提高CPU 效率
2. 采用段式存储管理的系统中,若地址用32位表示,其中12位表示段号,则允许段的最大长度是(  )。D
A.232
B. 212
C. 28
D. 220
3. 系统“抖动”现象的发生是由(      )引起的。A
A. 置换算法选择不当
B. 交换的信息量过大
C. 内存容量不足
D.请求页式管理方案
4.设从磁盘将一块数据传送到缓冲区所用时间为80μs ,将缓冲区中数据传送到用户区所用时间为40μs ,CPU 处理数据所用时间为30μs ,则处理该数据,采用单缓冲传送某磁盘数据,系统所用总时间为(  )。A
A. 120μs
B.110μs
C. 150μs
D. 70μs
5. 如果允许不同用户的文件可以具有相同的文件名,通常采用( )来保证按名存取的安全。 D
A.重名翻译机构
B.建立索引表
C.建立指针
D.多级目录结构一块操
6. 分区管理中采用"最佳适应"分配算法时,把空闲区按( )次序登记在空闲区表中。B
A. 长度递增
B. 长度递减
C. 地址递增
D. 地址递减
7. 若P 、V 操作的信号量S 初值为2,当前值为-1,则表示有( )个等待进程。 B
A.  0
B.  1
C.  2
D. 3
8. 在分时操作系统中,进程调度经常采用(  )算法。C
A.先来先服务
B.最高优先权
C. 时间片轮转
D. 随机
9. 采用资源剥夺法可解除死锁,还可以采用(  )方法解除死锁B
A. 执行并行操作
B.撤消进程
C. 拒绝分配新资源
D. 修改信号量
10. 对磁盘进行移臂调度其目的是缩短(    )时间。C
A.启动
B.数据传送
C.寻定位
D.搜索延迟
11. V 原语对信号量做加1运算后,(  )。C
A .当S<0时进程继续执行    B. 当S<0时要唤醒一个就绪进程
C. 当S ≤0时要唤醒一个等待进程  D .当S ≤0时要唤醒一个就绪进程
12.分页式存储管理中,地址转换工作是由( )完成的。A
A 、硬件
B 、地址转换程序
C 、用户程序
D 、装入程序
进程 到达就绪队列时刻 执行时间 1 0 8 2    1    4 3    2 9 4    3    5
13. 假设读写磁头正在55号柱面上操作,现有依次请求访问的柱面号为100、185、39、124、16。当55号柱面操作完成后,若采用先来先服务的调度算法,为完成这些请求,磁头需要移动的柱面距离数是()C
A.439      B.459      C.469      D.479
14. 作业在系统中存在与否的唯一标志是(  ) 。C
A.源程序
B.作业说明书
C.作业控制块 D.目的程序
15. 资源的按序策略可以破坏()条件。D
A. 互斥条件
B. 部分分配条件
C. 不剥夺条件
D. 循环等待条件
三、简答题(共5题,共25分)
1. (4分)请比较进程和程序的区别。
答:进程是程序的一次执行活动,属于动态概念,程序是指令的集合,它是进程运行的静态描述文本。
进程具有并发性,它能真实地描述并发执行的活动,而程序不具备这种特征。进程是一个独立的运行单位,也是系统进行资源分配和调度的一个独立单位。
2. (6分)有三个进程P1,P2和P3并发工作。进程P1需用资源S3和S1;进程P2需用资源S1和S2;进程P3需用资源S2和S
3.回答:
(1)若对资源分配不加限制,可能会发生什么情况?
(1)可能会发生死锁(2分)
例如:进程P1,P2和P3分别获得资源S3,S1和S2后再继续申请资源时都要等待(2分),这是循环等待。(或进程在等待新源时均不释放已占资源)
(2)为保证进程正确工作,应采用怎样的资源分配策略?为什么?
答:
(2)可有几种答案:
A.采用静态分配(2分)
由于执行前已获得所需的全部资源,故不会出现占有资源又等待别的资源的现象(或不会出现循环等待资源现象)。(1分)
或B.采用按序分配(2分)不会出现循环等待资源现象。(1分)
或C.采用银行家算法(2分)因为在分配时,保证了系统处于安全状态。(1分)
3. (7分)某虚拟存储器的用户空间共有32个页面,每页1K,主存16K。假定某时刻系统为用户
的第0、1、2、3页分配的物理块号为5、10、4、7,而该用户作业的长度为6页,试将十六进制的虚拟地址0A5C、103C、1A5C转换为物理地址,转换过程中是否会发生中断?发生何种中断?
答:(1)该系统的逻辑地址有15位,其中高5位为页号,低10位为页内地址;物理地址14位,其中高4位为块号,低10位为块内地址。逻辑地址(OA5C)16表示为二进制数地址为(000  1010  0101  1100),即其页号为(00010),即2,故页号合法;从页表中到对应的内存块号为4,即(0100);与页内地址(10 0101 1100)拼接形成物理地址(010010 0101  1100),即(OA5C)16 (3分)
(2)逻辑地址(103C)16的页号为4,页号合法,但该页未装入内存,故产生缺页中断。(2分)
(3)逻辑地址(1A5C)16的页号为6,为非法页号,故产生越界中断。(2分)
4. (4分)现有同类资源12个,供三个进程共享。假定进程所需资源和已占用资源的情况如下所
示:
答:会使系统进入不安全状态,可能会出现死锁。(2分)
如果再分配给进程A一个资源,则资源分配情况如表:此时可用资源为1个,已不能提供给
5.(4分)在某分页虚存系统中,测得CPU和磁盘的利用率如下,试指出每种情况下的问题和措施。
(1)CPU的利用率为15%,盘利用率为95%;(2)CPU的利用率为13%,盘利用率为5%。
答:(1)可能已出现了抖动现象,应减少系统的进程数;
(2)CPU和磁盘的利用率都较低,必须增加并发进程数。
四、计算题(共2题,共20分)
1. (10分)假设某程序的页面访问序列为1、2、3、4、5、2、3、1、2、3、4、5、1、2、3、4且
开始执行时主存中没有页面,分配给该程序的物理块数是3,使用下列替换算法,求出现置换的次数及缺页率。(1)FIFO替换算法(2)LRU替换算法。
解:(1)FIFO算法总是淘汰最先进入内存页面,即选择在内存中驻留时间最长的页予以淘汰。算法如图所示:
1    2    3    4    5    2    3    1    2    3    4    5    1    2    3    4
分)置换次数:13次(1分),缺页率=13/16=81.25%(1分)
(2)LRU算法是最近最久未使用的页面予以淘汰。算法如图所示:
1    2    3    4    5    2    3    1    2    3    4    5    1    2    3    4
3分)置换次数:14次(1分),缺页率=14/16=87.5%(1分)
2.(10分)假设有A,B,C,D 4个记录存放在磁盘的某个磁道上,该磁道划分成4块,每块存放1
现在要顺序处理这些记录。假定磁盘转速为20ms/圈,处理程序每次从磁盘读出一个记录后要花5ms 进行处理,若磁头现在正处于首个逻辑记录的始点位置。请问:
1)处理程序处理完这4个记录所花费的时间是多少?
2)按最优化分布重新安排这4个逻辑记录,写出记录的安排,并计算出所需要处理的时间。
答:磁盘旋转速度为20ms/周,磁道划分为4块,每块存放一个记录,所以读出一个记录要花5ms 的时间。
优化前处理的总时间=(5+5)+(5*4+5) +(5*4+5) +(5*4+5)=85ms
优化后记录的顺序为:A、C、B、D
优化后处理的总时间=(5+5)+(5+5) +(5+5+5) +(5+5)=45ms
五、算法设计题(共1题,共10分)
假定有三个进程R、W1、W2共享一个缓冲区Buffer。进程R读入数据放到缓冲区Buffer中;若缓冲区中的数为奇数,则进程W1将其取出显示;若缓冲区中的数为偶数,则进程W2将其取出显示。对它们有如下的限制条件:
(1)缓冲区中每次只能存放一个数;
(2)只有当缓冲区中没有数,或W1或W2将数取走后,进程R才可以将新读入的数放到缓冲区中。
(3)进程W1或W2对每次存入缓冲区中的数只能显示一次,且W1和W2都不能从空缓冲区中取数。
假定开始缓冲区为空,利用记录型信号量及wait、signal操作写出三个并发进程的正确工作程序。
解:var s,s1,s2:semaphore:=1,0,0;(2
begin
parbegin
PR:begin
repeat
从输入设备读到一个数B;
wait(s);
放入;
if  B=奇数
else signal(s2);
until false;
end;  (4分)