2010 年《操作系统》期末真题(第二套)

本卷与“A(1)”的题干完全不同,因此单独保留。我根据题目、答案扫描件转录;源答案中的伪代码和判断若有明显疑点,会标注“源答案原文如此”,不会静默改成自拟答案。

一、名词解释(每题 4 分,共 24 分)

  1. 进程控制块
  2. 原语
  3. 临界区
  4. 虚拟存储器
  5. 缓冲区
  6. 文件目录
查看源答案
  1. PCB 是与动态进程关联的数据结构,记录进程名字、状态、通信关系和占有资源,是进程存在的标志。
  2. 原语由若干指令组成,用于完成特定操作,通过不可分割或不可中断的程序段实现。
  3. 必须互斥执行的程序段称为相对于临界资源的临界区。
  4. 虚拟存储技术借助软硬件让主、辅存之间的信息交换、重定位和地址转换自动进行,使二者形成整体。
  5. 缓冲区用于暂存数据,缓和外设与内存或 CPU 的速度不匹配。
  6. 目录是文件系统层次结构中的非终结节点,含多个文件或目录的目录项。

二、判断题(每题 1 分,共 6 分)

  1. 一个进程可以涉及一个或若干程序的执行;反之,同一个程序只可以对应一个进程。( )
  2. 信号量只允许由 P、V 操作访问和修改。( )
  3. 并发是多个任务在多个处理机上同时运行,微观上在各自物理处理机上分别运行。( )
  4. 进程同步与互斥可以发生在一个进程之中。( )
  5. 中断方式由 CPU 在中断处理中控制数据传送;DMA 方式的数据传送由 DMA 控制器完成。( )
  6. 动态重定位便于程序浮动,实现硬件为重定位寄存器和加法器。( )
查看源答案
  1. 错。
  2. 对。
  3. 错。
  4. 错。
  5. 对。
  6. 对。

三、简答题(每题 4 分,共 20 分)

1. 实时系统与分时系统

二者各有什么特点?本质区别是什么?

查看源答案

实时系统通常为专用系统,响应时间由控制对象决定,安全可靠性要求高;分时系统强调多用户交互,让每个用户都有独占感。实时系统的响应要求通常更严格,交互会话能力不如分时系统。

2. 进程与线程

进程与线程有什么区别?

查看源答案

进程是并发和资源分配单位;线程是进程内部的执行路线,使用所在进程的资源,自身主要获得处理机时间片,因此又称轻量级进程。

3. 段页式管理

简述段页式存储管理的基本原理。

查看源答案

先把用户程序分段,再把每段分页。地址转换同时需要段表和页表,段表项中记录相应页表的起始地址与长度。

4. 设备管理

简述设备管理的主要功能。

查看源答案

源答案列出:提供进程管理与设备管理接口;按策略分配设备并管理等待队列;实现设备之间、设备与 CPU 之间的并行;分配、释放和管理缓冲区。

5. 文件物理结构

什么是文件物理结构?常见物理组织有几种?

查看源答案

文件物理结构是文件在文件系统内部、适应物理介质特性的组织方式。源答案列出顺序文件结构、随机文件结构和串联文件。

四、资源分配(5 分)

P1P_1 需要 S1,S2S_1,S_2,P2P_2 需要 S3,S1S_3,S_1,P3P_3 需要 S2,S3S_2,S_3。

  1. 不限制资源分配是否会死锁?举例说明。(2 分)
  2. 可采用什么策略保证正确工作?为什么?(3 分)
查看源答案

可能死锁:三个进程分别先得到 S1,S3,S2S_1,S_3,S_2,再申请下一个资源时会形成循环等待。可采用静态一次分配、按资源序分配或银行家算法,分别破坏请求并保持、循环等待,或保证系统始终安全。

五、进程同步(15 分)

Reader 从输入设备读信息并交给 Handler,Handler 加工后交给 Printer,Printer 输出。三个进程共享大小为 KK 的同一个缓冲区。

  1. 给出同步、互斥信号量的名称、含义和初值。(3 分)
  2. 写出 Reader、Handler、Printer 和主进程代码。(12 分)
查看源答案

源答案设置 empty=K、full=0、ok=0 和互斥量 mutex=1:empty 表示空块数,full 表示待加工块数,ok 表示待输出块数。核心流程为:

Reader:
  P(empty); P(mutex)
  写入原始数据
  V(mutex); V(full)

Handler:
  P(full); P(mutex)
  取出并加工数据
  把加工结果写回缓冲区
  V(mutex); V(ok)

Printer:
  P(ok); P(mutex)
  取出结果
  V(mutex); V(empty)
  打印

配套答案用一组环形缓冲区下标表示读写位置;主进程的 cobegin 列表中把 Reader 误写成了第二个 Printer,我没有把这个源答案笔误当成题面事实。

六、银行家算法(10 分)

进程AllocationNeed
P0P_0(0,0,3,2)(0,0,3,2)(0,0,1,2)(0,0,1,2)
P1P_1(1,0,0,0)(1,0,0,0)(1,7,5,0)(1,7,5,0)
P2P_2(1,3,5,4)(1,3,5,4)(2,3,5,6)(2,3,5,6)
P3P_3(0,3,3,2)(0,3,3,2)(0,6,5,2)(0,6,5,2)
P4P_4(0,0,1,4)(0,0,1,4)(0,6,5,6)(0,6,5,6)

当前 Available=(1,6,2,3)。

  1. 当前是否安全?若安全,给出一个安全序列。(5 分)
  2. P2P_2 请求 (1,2,2,2)(1,2,2,2),能否分配?说明原因。(5 分)
查看源答案

当前安全,源答案给出的序列为 P0,P3,P4,P1,P2P_0,P_3,P_4,P_1,P_2。

P2P_2 的请求不超过其 Need 和当前 Available,但试分配后 Available=(0,4,0,1),没有任何进程能满足完成条件,系统不安全,因此撤销试分配,让 P2P_2 等待。

七、存储管理(20 分)

1. 地址转换(8 分)

主存 64 KB,分 16 块。作业有 4 页,页 0、1、2、3 分别装入块 2、4、1、6。

  1. 作业总长度是多少字节?
  2. 每一页在主存中的起始地址是什么?
  3. 求逻辑地址 [0,100]、[1,50]、[2,0]、[3,60] 的内存地址。
查看源答案

每块 4 KB,作业总长 16 KB。各页起始地址依次为 8 KB、16 KB、4 KB、24 KB。四个逻辑地址对应的十进制物理地址为 8292、16434、4096、24636。

2. 页面置换(12 分)

访问串为 4、3、2、1、4、3、5、4、3、2、1、5,初始无页面。分别给 3 个和 4 个物理页框,采用 FIFO、LRU、OPT,计算缺页率并比较。

查看源答案
算法3 个页框4 个页框
FIFO9/129/1210/1210/12
LRU10/1210/128/128/12
OPT7/127/126/126/12

源答案据此指出 FIFO 出现 Belady 异常:增加页框反而使缺页率上升;LRU 和 OPT 的缺页率随页框增加而下降。

评论