Files
obsidian/操作系统/2026年操作系统期末预测卷.md

8.5 KiB
Raw Permalink Blame History

2026年操作系统期末预测卷

考试信息

  • 满分100分
  • 时间120分钟
  • 题型7道大题(与历年试卷格式一致)

题目一:进程控制与进程树分析(15分)

题目

阅读以下程序代码,回答问题:

#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>

int main() {
    pid_t pid;
    int status;

    printf("A: pid=%d\n", getpid());

    pid = fork();
    if (pid == 0) {
        printf("B: pid=%d, ppid=%d\n", getpid(), getppid());
        pid = fork();
        if (pid == 0) {
            printf("C: pid=%d, ppid=%d\n", getpid(), getppid());
        } else {
            wait(&status);
            printf("D: pid=%d\n", getpid());
        }
    } else {
        printf("E: pid=%d\n", getpid());
        pid = fork();
        if (pid == 0) {
            printf("F: pid=%d, ppid=%d\n", getpid(), getppid());
        } else {
            wait(&status);
            wait(&status);
            printf("G: pid=%d\n", getpid());
        }
    }

    return 0;
}

问题

  1. (6分)画出完整的进程树,标注每个进程执行的输出语句(用字母A-G表示)
  2. (4分)该程序共有多少个进程(包括初始进程)?请列出所有进程的创建顺序
  3. (3分)输出语句D和G的执行顺序是否一定?为什么?
  4. 2分)如果将所有wait(&status)调用删除,进程输出结果会发生什么变化?

题目二:磁盘调度算法计算(15分)

题目

某磁盘有200个磁道(编号0-199),磁盘请求队列中的磁道号依次为:

98, 183, 37, 122, 14, 124, 65, 67

当前磁头位于磁道53,向磁道号增大的方向移动。

问题

  1. (8分)分别使用以下磁盘调度算法,计算磁头移动的总磁道数:

    • FCFS(先来先服务)
    • SSTF(最短寻道时间优先)
    • SCAN(电梯算法)
    • C-SCAN(循环扫描算法)
  2. (4分)在上述四种算法中,哪种算法的磁头移动总磁道数最少?哪种最多?简要说明原因。

  3. (3分)如果磁头初始方向改为向磁道号减小的方向移动,SCAN算法的结果会如何变化?请计算新的磁头移动总磁道数。


题目三:虚拟内存与页面置换(15分)

题目

某系统采用请求分页存储管理,页面大小为4KB,分配给某进程的物理页框数为4。该进程的页面访问序列为:

1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

问题

  1. (9分)分别使用以下页面置换算法,计算缺页次数和缺页率:

    • OPT(最优算法)
    • FIFO(先进先出算法)
    • LRU(最近最久未使用算法)
  2. (3分)如果将分配的物理页框数增加到5,使用FIFO算法,缺页次数是否会减少?请验证并解释是否出现了Belady异常。

  3. (3分)假设页面大小改为8KB(其他条件不变),该进程的虚拟地址空间大小为32KB,请问:

    • 进程共有多少个虚拟页?
    • 页表需要多少个页表项?
    • 虚拟地址0x3A5F对应的页号和页内偏移分别是多少?

题目四:文件系统与inode计算(15分)

题目

某Unix文件系统采用Ext2结构,文件系统的块大小为4KB,磁盘块号占4字节inode中包含15个地址项(12个直接索引、1个一次间接、1个二次间接、1个三次间接)。

问题

  1. 6分)计算:

    • 每个磁盘块可以存放多少个磁盘块号?
    • 一个inode支持的最大文件大小是多少?(请列出计算过程)
  2. (4分)假设某文件大小为260KB,请问:

    • 该文件占用多少个数据块?
    • inode中的哪些地址项会被使用?
    • 是否需要使用间接索引块?如果需要,使用几个?
  3. (5分)假设要读取该文件偏移量为100KB处开始的4KB数据,请描述完整的地址转换过程:

    • 如何确定使用inode中的哪个地址项?
    • 如何计算数据在磁盘上的具体位置?
    • 需要访问几次磁盘?

题目五:CPU调度算法计算(15分)

题目

某单处理器系统中有以下进程,按到达时间排序:

进程 到达时间 运行时间
P1 0 8
P2 1 4
P3 2 9
P4 3 5
P5 4 2

问题

  1. (9分)分别使用以下调度算法,计算各进程的完成时间、周转时间和带权周转时间,并求平均周转时间和平均带权周转时间:

    • FCFS(先来先服务)
    • SJF(非抢占最短作业优先)
    • HRRF(最高响应比优先)
  2. 3分)在上述三种算法中:

    • 哪种算法的平均周转时间最短?
    • 哪种算法可能产生"饥饿"现象?为什么?
  3. (3分)如果采用时间片轮转调度(RR),时间片大小为3,请画出甘特图并计算P1和P2的周转时间。


题目六:I/O控制方式与磁盘访问(15分)

题目

  1. (6分)比较以下四种I/O控制方式的特点,填写下表:
特性 程序直接控制 中断驱动I/O DMA 通道
CPU介入频率
数据传输单位
CPU与I/O并行性
硬件复杂度
  1. (4分)某磁盘转速为7200 RPM,平均寻道时间为8ms,每个磁道500个扇区,每个扇区512字节。

    • 计算平均旋转延迟
    • 计算读取一个扇区的平均访问时间
    • 如果要连续读取100个扇区(在同一磁道上),总访问时间是多少?
  2. (5分)某系统使用SPOOLing技术管理打印机:

    • 画出SPOOLing系统的组成结构图
    • 解释SPOOLing如何将独占设备改造为共享设备
    • 说明SPOOLing与缓冲技术的区别

题目七:段页式存储管理与地址转换(10分)

题目

某系统采用段页式存储管理,地址结构如下:

  • 段号:8位
  • 页号:8位
  • 页内偏移:16位

系统参数:

  • 页大小:64KB
  • 段表基址寄存器指向的段表如下:
段号 段长(页数) 页表始址
0 4 1000
1 6 2000
2 2 3000

页表(部分)如下:

页号 物理块号
0 50
1 51
2 52
3 53

问题

  1. 4分)逻辑地址0x00018000对应的段号、页号、页内偏移分别是多少?该地址对应的物理地址是多少?(写出计算过程)

  2. 3分)逻辑地址0x01028000是否合法?为什么?如果合法,计算其物理地址。

  3. (3分)与纯分页和纯分段相比,段页式存储管理有哪些优点和缺点?


参考答案要点

题目一参考答案

  1. 进程树:A→(B, E)B→(C, D)E→(F, G)
  2. 共7个进程,创建顺序:A→B→E→C→F→D→G
  3. D和G的执行顺序不一定,取决于哪个子进程先完成
  4. 删除wait后,输出顺序不确定,可能出现孤儿进程

题目二参考答案

  1. FCFS: 640道,SSTF: 236道,SCAN: 299道,C-SCAN: 356道
  2. SSTF最少(贪心选择最近),FCFS最多(无优化)
  3. 反向SCAN53→37→14→0→65→67→98→122→124→183,总移动:359道

题目三参考答案

  1. OPT: 8次(66.7%)FIFO: 10次(83.3%)LRU: 10次(83.3%)
  2. 页框数=5时FIFO缺页仍为10次,未出现Belady异常
  3. 虚拟页数=4,页表项=4,地址0x3A5F:页号=3,偏移=0x2A5F

题目四参考答案

  1. 每块1024个块号,最大文件约16GB+
  2. 65个数据块,使用直接索引12个+一次间接索引1个,不需要二次间接
  3. 偏移100KB=第25块,使用直接索引项2,需2次磁盘访问

题目五参考答案

  1. FCFS平均周转7.8SJF平均周转6.2HRRF平均周转7.0
  2. SJF最短,SJF可能饥饿(长作业持续等待)
  3. RR甘特图:0-3(P1),3-6(P2),6-8(P5),8-11(P1),11-14(P3),14-17(P4),17-20(P1),20-23(P3),23-25(P3) P1周转=23P2周转=6

题目六参考答案

  1. 表格填写(见知识点总结)
  2. 旋转延迟4.17ms,扇区访问12.21ms,连续100扇区约12.5ms
  3. SPOOLing由输入/输出井和预输入/缓输出程序组成

题目七参考答案

  1. 段号=0,页号=1,偏移=0x8000,物理地址=51×64KB+0x8000
  2. 合法,段号1页号2,物理地址=52×64KB+0x8000
  3. 优点:分段便于共享/保护+分页解决外部碎片;缺点:地址转换复杂,需3次访存