vault backup: 2026-07-03 23:22:28
This commit is contained in:
257
操作系统/2026年操作系统期末预测卷.md
Normal file
257
操作系统/2026年操作系统期末预测卷.md
Normal file
@@ -0,0 +1,257 @@
|
||||
# 2026年操作系统期末预测卷
|
||||
|
||||
## 考试信息
|
||||
- **满分**:100分
|
||||
- **时间**:120分钟
|
||||
- **题型**:7道大题(与历年试卷格式一致)
|
||||
|
||||
---
|
||||
|
||||
## 题目一:进程控制与进程树分析(15分)
|
||||
|
||||
### 题目
|
||||
|
||||
阅读以下程序代码,回答问题:
|
||||
|
||||
```c
|
||||
#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并行性 | | | | |
|
||||
| 硬件复杂度 | | | | |
|
||||
|
||||
2. (4分)某磁盘转速为7200 RPM,平均寻道时间为8ms,每个磁道500个扇区,每个扇区512字节。
|
||||
- 计算平均旋转延迟
|
||||
- 计算读取一个扇区的平均访问时间
|
||||
- 如果要连续读取100个扇区(在同一磁道上),总访问时间是多少?
|
||||
|
||||
3. (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. 反向SCAN:53→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.8,SJF平均周转6.2,HRRF平均周转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周转=23,P2周转=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次访存
|
||||
Reference in New Issue
Block a user