操作系统基础 - 软考真题题目与答案
本单元共 5 道题,每题给答案,部分带解析。
1. 单选题
前趋图是一个有向无环图,记为 DAG,用于描述进程之间执行的先后关系。假设系统中进程 P={P1,P2, P3, P4, P5, P6, P7},且进程的前趋图如下:
那么,该前驱图可记为(1)。
A. →={(P1,P2),(P1,P3),(P2,P4),(P3,P4),(P4,P5),(P4,P6),(P5,P7),(P6,P7)}
B. →={(P1,P2),(P1,P3),(P2,P4),(P3,P4),(P4,P5),(P4,P6),(P5,P7),(P6,P7)}
C. →={(P1,P2),(P1,P3),(P2,P4),(P3,P4),(P4,P5),(P4,P6),(P5,P7),(P6,P7)}
D. →={(P1,P2),(P1,P3),(P2,P4),(P3,P4),(P4,P5),(P4,P6),(P5,P7),(P6,P7)}
答案:B
解析
**正确答案:B。**
该边集表示直接前趋关系:P1→P2、P1→P3,P2、P3→P4,P4→P5、P4→P6,P5、P6→P7,与有向无环的前趋图一致。
A、C、D:题面中展示的选项文本与 B 相同,属于选项重复或排版异常;按标准答案应选 B。若正常考试,只有与图中边一一对应且不多不漏的选项才正确。
**考点延伸**:前趋图是 DAG,边 \((P_i,P_j)\) 表示 \(P_i\) 必须先于 \(P_j\) 执行;可用拓扑排序判断是否存在环。入度为 0 的进程可最先执行,出度为 0 的进程最后结束。
2. 单选题
在支持多线程的操作系统中,假设进程 P 创建了线程 T1、T2 和 T3,那么下列说法正确的是(2)。
A. 该进程中已打开的文件是不能被 T1、T2 和 T3 共享的
B. 该进程中 T1 的栈指针是不能被 T2 共享的,但可被 T3 共享
C. 该进程中 T1 的栈指针是不能被 T2 和 T3 共享的
D. 该进程中某线程的栈指针是可以被 T1、T2 和 T3 共享的
答案:C
解析
**答案:C**
线程是进程内的执行单元,拥有独立的执行上下文:程序计数器、寄存器组、栈和栈指针等。因此,T1 的栈指针只属于 T1,不能被 T2、T3 共享,C 正确。
- **A 错**:已打开文件属于进程资源,T1、T2、T3 共享同一文件描述符表。
- **B 错**:栈指针是线程私有上下文,不能被 T2 共享,也不能被 T3 共享。
- **C 对**:每个线程有独立栈,栈指针随线程切换保存和恢复。
- **D 错**:不存在让所有线程共享某线程栈指针的常规机制。
**延伸**:线程共享代码段、数据段、堆、文件等;线程私有栈、寄存器、PC、线程局部存储。面试常考“线程共享/私有资源”的区分。
3. 单选题
假设某计算机的字长为 32 位,该计算机文件管理系统磁盘空间管理采用位示图(bitmap)记录磁盘的使用情况。若磁盘的容量为 300GB,物理块的大小为 4MB,那么位示图的大小为(3)个字。
A. 2400
B. 3200
C. 6400
D. 9600
答案:A
解析
**正确答案:A 2400**
位示图中每个物理块占 1 位。
物理块数 = 300GB / 4MB = (300×1024)MB / 4MB = 76800。
总位数为 76800 位,字长为 32 位,所以位示图大小 = 76800 / 32 = 2400 个字。因此选 A。
- **B 3200**:单位换算或字长除法错误,无法由 76800 位正确得到。
- **C 6400**:相当于错误地按更小字长计算,不符合 32 位字长。
- **D 9600**:相当于按 8 位一字计算,即 76800/8,忽略了字长为 32 位。
**考点延伸**:位示图大小 = 磁盘物理块数 / 字长;计算时需统一单位,并注意 1GB=1024MB。位示图管理磁盘空间节省存储,但磁盘容量增大时位示图也会线性增大。
4. 单选题
实时操作系统主要用于有实时要求的过程控制等领域。因此,在实时操作系统中,对于来自外部的事件必须在(4)。
A. 一个时间片内进行处理
B. 一个周转时间内进行处理
C. 一个机器周期内进行处理
D. 被控对象允许的时间范围内进行处理
答案:D
解析
**正确答案:D**
实时操作系统的核心是**满足时限要求**:来自外部的事件必须在被控对象允许的时间范围内得到处理,否则可能造成控制失效甚至事故。实时并不等于“越快越好”,而是**响应时间有确定上界**,能保证截止时间。
- **A 一个时间片内**:时间片是分时调度概念,不反映实时任务的截止期限。
- **B 一个周转时间内**:周转时间多用于批处理系统,强调作业完成,不是实时性指标。
- **C 一个机器周期内**:机器周期是硬件级极短时间,实际控制事件通常不可能也不要求在此内完成。
- **D 被控对象允许的时间范围内**:准确描述实时系统应按外部过程的时限处理事件,正确。
**延伸**:面试常考硬实时与软实时、可抢占内核、中断响应、优先级调度与截止时间。实时系统追求的是**确定性**,而非单纯高吞吐或短平均响应。
5. 简答题
请简述前趋图(Precedence Graph)的定义及其在操作系统中的作用。
答案:前趋图是一个有向无环图(DAG),用于描述进程之间执行的先后顺序。图中的每个结点表示一个进程或程序段,有向边表示两个结点之间的前趋关系,即一个结点必须在另一个结点之前完成。前趋图在操作系统中用于表示进程之间的同步和互斥关系,是分析进程并发执行的基础。
解析
**正确答案:** 前趋图是一个有向无环图(DAG),结点表示进程或程序段,有向边表示前趋关系,即某结点必须在另一结点之前完成。
**为什么正确:** DAG 保证前趋关系无循环等待,符合并发执行的偏序约束;有向边可清晰描述先后顺序,因此能表示进程同步、互斥关系,是分析并发执行的基础。
**选项说明:** 本题为简答题,无选项,故不涉及逐项辨析。答案要点应包含:DAG、结点含义、有向边含义、同步/互斥作用。
**考点延伸:** 前趋图常用于程序并发性分析、P/V 操作设计;需区别于资源分配图,前者描述执行顺序,后者可分析死锁。前趋关系是偏序,拓扑排序可能不唯一。