目录
题目 2:在OS中采用多道程序设计技术,能有效地提高CPU、内存和I/O设备的()。
题目 1:在设计实时操作系统时,首先要考虑的是()。
- 选项:
- A. 交互性和响应时间
- B. 实时性和可靠性
- C. 周转时间和系统吞吐量
- 答案: B
深度讲解:
-
理解核心名词:实时操作系统 (RTOS)
- 核心使命: 实时操作系统最主要、最核心的设计目标是能够在预先确定的、严格限定的时间内响应外部事件并完成相应的处理任务。
- 关键特征:
- 实时性 (Timeliness): 系统处理任务的速度必须满足具体应用要求的时间约束 (Deadlines)。这分为两类:
- 硬实时 (Hard Real-Time): 错过截止时间会导致灾难性后果(如工业控制、航空航天、汽车安全气囊触发)。绝对不能错过截止时间。
- 软实时 (Soft Real-Time): 错过截止时间会导致性能下降或质量损失,但系统本身不会完全失效(如流媒体播放、语音通话)。偶尔错过或平均满足时间要求即可接受。
- 可靠性 (Reliability): 系统必须在所有操作条件下,特别是在面临时间压力、高负载或外部干扰时,稳定、正确地完成其功能,并输出正确的结果。一个不可靠的系统,即使处理得再快,也没有价值,甚至可能导致危险(特别是在硬实时系统中)。可靠性与安全性、健壮性密切相关。
- 实时性 (Timeliness): 系统处理任务的速度必须满足具体应用要求的时间约束 (Deadlines)。这分为两类:
-
分析各选项:
- A. 交互性和响应时间:
- 交互性 (Interactivity): 指的是用户(或外部系统)与计算机系统进行“对话式”操作时,系统对用户输入做出及时感知和反馈的能力。
- 响应时间 (Response Time): 通常指从用户发出命令/操作到系统开始给出可感知的响应之间的时间间隔。
- 为什么不是首要考虑?
- 交互性确实是分时系统 (Time-Sharing System) 的核心目标(如我们用的个人电脑操作系统 Windows, macOS, Linux Desktop)。它允许多个用户“同时”使用计算机,感觉自己是独占的。
- 虽然实时系统也有响应时间要求(而且通常更严格),但它的核心是保证在确定的截止时间内完成任务,而不仅仅是让操作者感觉“快”或“流畅”。它强调的是可预测性 (Predictability)——必须能在任何情况下都保证在最坏情况下满足截止时间。
- 总结: 交互性是分时系统的标志,实时性要求比交互性要求更严格且核心在于截止时间(Deadline)。
- B. 实时性和可靠性:
- 实时性: 如前所述,是RTOS存在的根本目的和核心要求。没有实时性保证,就不是实时操作系统。
- 可靠性: 是与实时性密不可分的孪生目标。系统必须能持续地、正确无误地达到实时性要求。一个不可靠的系统(例如频繁崩溃、计算错误、数据丢失)无法完成其预定的实时任务。在设计时需要重点考虑容错、健壮性、确定性的调度算法等。因此,这是设计的核心出发点和首要考虑。
- C. 周转时间和系统吞吐量:
- 周转时间 (Turnaround Time): 指一个作业从提交到系统开始,到其最终完成离开系统所经历的时间总和。
- 系统吞吐量 (System Throughput): 指在单位时间内,系统完成的作业数量。
- 为什么不是首要考虑?
- 这两个指标是批处理系统 (Batch Processing System) 优化的重点。批处理系统收集大量作业(一般是计算任务),然后非交互式地自动依次(或分批)处理。核心目标是高效利用系统资源(CPU、内存、I/O),在给定时间内尽可能多地完成作业(高吞吐量),并尽可能减少单个作业的平均等待时间(短周转时间)。
- 实时系统关注的是每个具体任务的时效(在截止时间前完成),并不直接追求完成的总任务数量要多(吞吐量大)或作业整体处理时间要短(平均周转时间短)。它甚至可以为了满足关键任务的硬实时性,而暂时牺牲整体的吞吐量或让其他次要任务等待。
- 总结: 周转时间和吞吐量是批处理系统的核心性能指标,与实时系统的首要目标(实时性+可靠性)有本质区别。
- A. 交互性和响应时间:
-
结论:
设计实时操作系统,最核心、最优先考虑的因素必须是保证任务在规定的时间内完成(实时性) 和确保处理过程和结果是正确的(可靠性)。其他因素如交互体验(A)或整体效率(C)都是次要的,或者属于其他类型系统的核心目标。
题目 2:在OS中采用多道程序设计技术,能有效地提高CPU、内存和I/O设备的()。
- 选项:
- A. 灵活性
- B. 可靠性
- C. 兼容性
- D. 利用率
- 答案: D
深度讲解:
-
理解核心名词:多道程序设计技术 (Multiprogramming)
- 核心概念: 在主内存中同时加载多个用户程序(称为“道”),使它们看起来像是在并行执行。
- 工作原理:
- 当一个程序运行中发出I/O请求(例如读写磁盘、接收网络数据)而进入等待(阻塞)状态时,CPU不会空闲等待这个I/O操作完成。
- 操作系统的调度程序会立即将CPU切换给内存中另一个就绪(Ready) 状态的程序运行。
- 这样,CPU在第一个程序等待I/O的时间片里,就开始执行第二个程序的计算任务。
- 同理,当一个程序在CPU上执行计算时,其他的程序可能在同时进行各自的I/O操作。
- 关键目标: 最大化资源利用率,特别是CPU利用率。通过让CPU和I/O设备尽可能处于忙碌状态来提升整体效率。
-
分析各选项:
- A. 灵活性: 指操作系统适应不同需求或环境变化的能力。多道程序设计技术本身主要关注资源分配和切换,并不直接提高系统在扩展、配置或适应新应用方面的灵活性(虽然它可能是实现灵活性的基础之一)。
- B. 可靠性: 指系统正确、稳定运行的能力,抵抗错误和故障。多道程序设计技术提高了资源的并发使用程度,本身并不提高可靠性,反而可能增加复杂性(如内存保护需求增加,防止程序相互干扰)。可靠性需要通过其他的机制(如隔离、容错)来保障。
- C. 兼容性: 指系统运行不同软件或硬件的能力(向上兼容、向后兼容、跨平台等)。多道程序设计是一种系统底层的资源管理策略,与应用软件的兼容性没有直接关系。
- D. 利用率:
- CPU利用率: 多道程序设计最主要的贡献就是显著提高CPU利用率。CPU不再因单一程序等待I/O而长时间闲置。它在等待A程序I/O的时间片里运行B程序的计算。
- 内存利用率: 虽然需要分配内存给多个程序,但通过合理的内存管理和调度(如覆盖、交换),整体上能使主存容纳更多程序并更积极地参与运算,提高了内存这一重要资源的利用效率。
- I/O设备利用率: 当一个程序在进行计算时,其他程序可能正在并发地进行它们各自的I/O操作(例如,程序A在写磁盘,程序B在从网络读取数据)。这使I/O设备(磁盘、网络接口卡等)也能更充分地运转,减少了设备的空闲时间。
- 总结: 多道程序设计技术的根本目的和直接效果就是减少资源(CPU、内存、I/O通道/设备)的空闲时间,让它们尽可能并行工作,从而提高这些核心资源的利用率。
-
结论:
多道程序设计技术的核心价值在于通过CPU在计算任务和I/O等待程序之间的快速切换,以及允许多个任务并发地使用I/O设备,最大限度地挖掘CPU、内存和I/O设备的工作潜力,使得这些宝贵的硬件资源(特别是昂贵的CPU)的空转时间大大减少。因此,它能最有效地提高这些资源的利用率 (Utilization)。
总结
- 第一题: 强调了操作系统设计目标的类型差异。实时系统(RTOS)的首要设计使命是实现特定的实时性(满足时间约束)和可靠性(保证正确执行),这区别于分时系统(交互性/响应时间)和批处理系统(周转时间/吞吐量)。
- 第二题: 强调了操作系统核心技术的主要效果。多道程序设计技术是提高核心硬件资源(CPU、内存、I/O)利用率、实现并发性的基础技术。它通过重叠执行计算和I/O操作来减少资源空闲,本身并不直接提升系统的灵活性、可靠性或兼容性。