2022 年春《操作系统》期末真题

考试日期为 2022 年 6 月 18 日,满分 100 分。源材料只有试卷,没有答案,我只转录题目,不自行补写解析。这份独立《操作系统》卷与同年《计算机系统基础》A 卷题目不同,二者均保留。

一、判断题(每题 1 分,共 10 分)

  1. 一个进程被唤醒意味着该进程重新占有了 CPU。( )
  2. I/O 通道控制方式不需要任何 CPU 干预。( )
  3. 分页、请求分页存储管理技术的逻辑地址由页号 pp 和页内地址 dd 组成,因此是一个二维地址。( )
  4. 在作业调度时,采用最高响应比优先算法可以得到最短的作业平均周转时间。( )
  5. 树型目录结构能够解决文件重名问题。( )
  6. 批处理系统的主要优点是系统吞吐量大、资源利用率高、系统切换开销较小。( )
  7. 在多对一线程模型中,同一个进程内的两个线程不能同时陷入内核请求系统调用服务。( )
  8. 文件系统中的源程序文件是有结构的记录式文件。( )
  9. 操作系统在执行系统调用时可以被中断。( )
  10. 在页式虚拟存储系统中,使用 fork 创建的子进程总是和父进程共享相同的代码和数据页,因此二者可通过全局变量传递数据。( )

二、单项选择题(每题 2 分,共 20 分)

  1. 批处理系统的主要缺点是( )。
    • A. CPU 利用率不高
    • B. 失去了交互性
    • C. 不具备并行性
    • D. 以上都不是
  2. 以下说法正确的是( )。
    • A. 两个不同进程的页表中可能包含内容相同的页表项。
    • B. 虚拟地址空间总是大于物理地址空间。
    • C. 页式内存管理的页面越小,越能消除外碎片并提高内存使用效率。
    • D. 段式内存管理中不同分段大小可以不同,因而可以消除外碎片。
  3. 下列哪项属于反置页表的优点?
    • A. 查找页表项的速度快
    • B. 缺页处理速度快
    • C. 便于进程之间共享数据
    • D. 页表占用的内存空间小
  4. 用户程序代码被操作系统加载到内存中的过程称为( )。
    • A. 编译
    • B. 链接
    • C. 装载
    • D. 置换
  5. 关于多级页表,下列说法不正确的是( )。
    • A. 能够减少页表占用内存的大小。
    • B. 级数越多,平均访问内存的时间越长。
    • C. 有效页表项中都会存储页框号。
    • D. 使用二级页表的平均访存性能优于一级页表。
  6. 以下说法正确的是( )。
    • A. 进程上下文切换过程一定会陷入内核。
    • B. 陷入内核一定会导致进程切换。
    • C. 正在执行的程序不可以主动放弃 CPU。
    • D. 系统调用一定会导致进程上下文切换。
  7. 下列算法中可同时用于进程调度和磁盘调度的是( )。
    • A. FCFS
    • B. SSTF
    • C. 时间片轮转
    • D. SJF
  8. 关于 IPC,不正确的是( )。
    • A. 消息传递比信号的信息承载量大。
    • B. 共享内存是最快的 IPC 形式。
    • C. 套接字既可用于不同机器的进程通信,也可用于本机进程通信。
    • D. 共享内存在效率和安全性上都优于消息传递。
  9. 从磁盘把一个数据块传到缓冲区需 80 μs,从缓冲区传到用户区需 40 μs,CPU 处理一个数据块需 30 μs。若有很多数据块,采用单缓冲时处理一个数据块的平均时间接近( )。
    • A. 120 μs
    • B. 110 μs
    • C. 150 μs
    • D. 70 μs
  10. 一个索引文件的每个记录恰占一个物理块,每个物理块可存 10 个索引表项;建立索引时,一个物理块对应一个索引表项,每级索引至少占一个物理块。以下说法正确的是( )。
    • A. 保存 1001 个记录至少需要 3 级索引。
    • B. 保存 1000 个记录至少需要 111 个索引块。
    • C. 保存 1000 个记录时,4 级索引比 3 级索引多用 1 个索引块。
    • D. 4 级索引最多可存 9999 个记录。

三、填空题(每空 2 分,共 10 分)

  1. 用户进程通过 ______ 请求操作系统执行需要更高权限的操作。

  2. 页面访问串为 1、2、3、4、5、3、4、1、6、7、8、7、8、9、7、8、9、5、4、5、4、2。采用 LRU,分配 5 个初始为空的页框,会产生 ______ 次缺页中断。

  3. 纯分页系统采用二级页表,一条访存指令成功执行最多会产生 ______ 次实际访存操作;假设操作系统代码已在 Cache 中。

  4. 虚拟存储机制有效的基础是程序访存的 ______ 原理。

  5. 以下程序编译运行后,分配在 data 段的变量有 ______;多个变量名用英文逗号分隔,不留空格。

    int a = 5;
    static int b = 1;
    int main() {
        int c;
        static int d;
        printf("a=%d, b=%d, c=%d, d=%d\n", a, b, c, d);
    }

四、死锁问题(每小题 5 分,共 10 分)

五只章鱼围桌而坐,每只章鱼有 8 只手。每只手最多抓一根筷子,每根筷子同时最多被一只手抓取;筷子集中放在桌子中央。章鱼拿到 8 根筷子后进餐,进餐结束才释放筷子。

  1. 若所有筷子相同,至少需要多少根筷子才能保证不死锁?说明理由。

  2. 若筷子分红、绿两色,每只章鱼必须拿到 4 红、4 绿才能进餐。当前状态如下:

    章鱼红色筷子绿色筷子
    A31
    B22
    C42
    D11
    E23

    桌上还剩 2 红、2 绿。D 请求再抓 1 红、1 绿,为避免死锁,能否允许?说明理由。

五、内存管理(共 15 分)

机器有 38 位逻辑地址和 32 位物理地址,采用二级页表,每页 16 KB,每个页表项 4 字节。

  1. 逻辑地址空间和物理地址空间各有多少字节?(4 分)
  2. 第一级、第二级页表索引各分配多少位?解释原因。(6 分)
  3. 第一级页表起始物理地址为 0x0000A000,给出逻辑地址 0x123456789A 对应的第一级页表项物理地址。(3 分)
  4. 若从逻辑地址 0x0004000000 映射整个页表,给出第一级页表的逻辑地址;提示:考虑自映射,第一级页表相当于页目录。(2 分)

六、作业调度(10 分)

系统同时只能执行一个作业,刚到达的作业在到达时刻即可开始运行。

作业到达时刻 / s执行时间 / s
105
218
323
4310
544

分别求 FCFS 和非抢占短作业优先算法的平均周转时间。

七、进程同步与互斥(15 分)

某公园每天最多允许 NN 人购票入园。在线售票系统允许查询者 Q 读取余票、购票者 B 修改余票,每次只买一张。请用 P、V 操作设计多个 Q、B 并发访问余票的算法,满足:

  1. Q 与 B 按到达顺序访问余票;
  2. 多个 Q 连续到达时可并发读取;
  3. 余票为 0 时,B 不执行写操作。

八、文件系统(每小题 5 分,共 10 分)

某磁盘平均寻道时间为 6 ms,转速 7500 rpm,每磁道可存 1,048,576 字节。文件系统数据块为 4 KB,平均文件大小为 10 KB,文件控制块全部直接存储在目录项中。

  1. 不考虑读取文件控制块的时间,从磁盘读取一个文件的平均时间约为多少毫秒?
  2. 假设只有根目录已读入内存,每级目录的目录项均位于一个数据块中,读取 102 KB 的 /tmp/test/helloworld.c 需要访问磁盘几次?

评论