You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

操作系统调度器是否负责判定阻塞进程能否重新进入CPU?

关于操作系统调度器职责的选择题解析

嘿,这个问题我当初备考OS的时候也卡过!先直接给你结论:正确选项是F(B和E),你的判断B正确没问题,E选项的合理性我给你掰扯清楚:

逐个拆解选项

  • 选项A(处理中断):这是中断处理程序的活儿,调度器只会在中断处理完成后才会被触发,本身不负责处理中断逻辑。
  • 选项B(选择下一个进入CPU的进程):这是CPU调度器(短程调度器)的核心职责——不管是时间片轮转、优先级调度还是其他调度算法,本质都是从就绪队列里挑选合适的进程分配CPU资源,你这部分判断完全正确。
  • 选项C(创建新进程):进程创建是由系统调用(比如fork()CreateProcess())触发的内核逻辑完成的,和调度器没有直接关系。
  • 选项D(移除未使用的进程):进程的销毁、回收是由进程终止逻辑(比如exit()调用、内核回收僵尸进程)处理的,调度器不负责这项工作。
  • 选项E(判定哪些阻塞进程可以进入CPU):这里容易产生误解,我给你理清楚:
    阻塞进程是因为等待某个事件(比如I/O操作完成、信号到达)而暂停运行的,当它等待的事件完成后,会从阻塞状态转为就绪状态,进入就绪队列。但这时候它还不能直接进入CPU运行,最终能不能获得CPU时间,还是由调度器来判定的——调度器会在合适的时机(比如当前进程时间片用完、有更高优先级的就绪进程出现),从就绪队列里(包括这些刚从阻塞状态转来的进程)选择下一个运行的进程。换句话说,E选项的表述其实是指调度器会评估那些已经具备运行条件的原阻塞进程,决定它们是否能进入CPU,这确实是调度器的职责范围。

所以综合来看,B和E都是调度器的职责,选项F正确。

内容的提问来源于stack exchange,提问作者Christine Harper

火山引擎 最新活动