软考中级习题与解答——第三章_操作系统(2)

例题11

1、知识点总结

调度算法 核心思想 抢占性 对 CPU-bound 作业 对 I/O-bound 作业
时间片轮转 (RR) 公平轮流,用完时间片就换人 抢占式 公平 较有利 (能保证响应时间)
先来先服务 (FCFS) 按到达顺序排队,不插队 非抢占式 非常有利 (一旦占用,可长期使用) 非常不利 (可能长时间等待)
短作业优先 (SJF) 谁快谁先上 可抢占/可不抢占 不利 (长作业可能饥饿) 非常有利 (CPU区间短,总被选中)
优先权调度 按优先级高低 可抢占/可不抢占 取决于优先级设置 通常被赋予较高动态优先级,较有利

2、题目解析

这道题考察的是不同的 CPU 调度算法对两类不同作业(进程)的“偏好”程度。

  • CPU 繁忙型 (CPU-bound): 也叫计算密集型。这类作业的大部分时间都在进行大量的计算,很少请求 I/O 操作。它会倾向于用完整个 CPU 时间片

  • I/O 繁忙型 (I/O-bound): 也叫输入/输出密集型。这类作业大部分时间都在等待 I/O 操作(如读写文件、网络请求)完成,每次只需要很短的 CPU 时间来进行处理。

A. 时间片轮转调度算法

  • 工作方式: 将所有就绪进程排成一个队列,按先来后到的顺序,给队首进程分配一个固定的“时间片”。进程用完时间片后,无论是否完成,都会被移到队尾,等待下一轮。

  • 分析: 这种算法对两类作业都比较公平

    • CPU 繁忙型作业会用完整个时间片,然后回到队尾。

    • I/O 繁忙型作业可能只用很短的 CPU 时间就去进行 I/O 操作了,它会提前释放 CPU,然后进入阻塞队列。当 I/O 完成后,它会重新回到就绪队列的末尾。

  • 结论: 时间片轮转的设计初衷就是为了保证交互式进程(通常是I/O繁忙型)的响应时间,防止它们被长计算任务“饿死”。因此,它相对有利于 I/O 繁忙型作业,而不是不利于。

B. 先来先服务调度算法

  • 工作方式: 完全按照进程进入就绪队列的先后顺序进行调度。一旦一个进程获得了 CPU,它会一直运行下去,直到它自愿释放 CPU(因为任务完成或需要进行 I/O)或者被阻塞。这是一种非抢占式的算法。

  • 分析:

    • 对于 CPU 繁忙型作业: 简直是天堂。一旦它拿到 CPU,它可以长时间地、不间断地运行,直到它那漫长的计算任务结束。

    • 对于 I/O 繁忙型作业: 简直是噩梦。如果一个 I/O 繁忙型作业排在一个 CPU 繁忙型作业的后面,它可能需要等待非常长的时间,才能获得那一点点它急需的 CPU 时间。这会导致 I/O 设备长时间空闲,系统整体吞吐量下降。

  • 结论: FCFS 算法非常有利于 CPU 繁忙型作业,而极其不利于 I/O 繁忙型作业。这与题干描述完全吻合。

C. 短作业(进程)优先算法

  • 工作方式: 优先调度估计运行时间最短的进程。可以有抢占式和非抢占式两种。

  • 分析: 这种算法的“偏好”对象是短作业,而不是特定类型(CPU繁忙型或I/O繁忙型)。

    • 一个 I/O 繁忙型作业,其每次的 CPU 执行时间(CPU burst)通常很短,因此SJF 算法会非常偏爱 I/O 繁忙型作业

    • 一个 CPU 繁忙型作业,其 CPU 执行时间很长,在 SJF 算法下可能会一直得不到调度,产生“饥饿”现象。

  • 结论: SJF 算法有利于 I/O 繁忙型作业,不利于(长)CPU 繁忙型作业。与题干描述相反。

D. 优先权调度算法

    • 工作方式: 为每个进程分配一个优先级,每次总是选择就绪队列中优先级最高的进程来运行。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值