面试题答案
一键面试区别
- 抢占式调度:操作系统可以在任何时刻暂停正在执行的进程,将CPU资源分配给其他进程。即使当前进程未主动放弃CPU,只要有更高优先级的进程就绪,就可能被抢占。
- 非抢占式调度:只有当正在执行的进程主动放弃CPU(例如完成任务、等待I/O操作等),操作系统才会将CPU分配给其他就绪进程。进程运行期间不会被强行中断。
抢占式调度在多核场景下的优缺点
- 优点:
- 响应性好:能快速响应高优先级任务,对于实时系统至关重要,如处理紧急的硬件中断等。
- 公平性较好:可避免某个低优先级进程长时间占用CPU,确保每个进程都有机会执行。
- 多核利用灵活:可动态根据各核负载情况,将高优先级任务调度到空闲或负载低的核心上执行,提高多核利用率。
- 缺点:
- 开销较大:频繁的进程切换需要保存和恢复进程上下文,包括寄存器值、程序计数器等,增加了系统开销。
- 可能导致抖动:若调度算法不合理,可能造成进程频繁被抢占和调度,导致系统整体性能下降。
非抢占式调度在多核场景下的优缺点
- 优点:
- 系统开销小:进程切换次数少,减少了上下文切换开销,尤其适用于那些进程执行时间短且不需要快速响应的场景。
- 稳定性较高:进程执行过程中不会被突然打断,有利于需要连续执行的任务,如某些科学计算任务。
- 缺点:
- 响应性差:高优先级任务需等待当前运行进程主动放弃CPU,可能导致响应延迟,不适合实时性要求高的场景。
- 多核负载不均衡:难以动态调整各核负载,若某核上进程一直不主动放弃CPU,可能造成其他核空闲,多核资源利用不充分。