面试题答案
一键面试常见触发因素及原理
- 阻塞状态解除:
- 触发因素:进程因等待I/O操作完成、信号量、锁等资源而处于阻塞状态,当所等待的事件发生,如I/O操作结束、获取到信号量或锁等,进程就会从阻塞状态转变为就绪状态。
- 原理:操作系统的资源管理模块检测到进程等待的资源可用或事件完成,通知调度器该进程可以继续执行,于是将其状态改为就绪,放入就绪队列,等待CPU调度执行。
- 新建进程初始化完成:
- 触发因素:当一个新进程被创建并完成初始化工作,如内存分配、资源初始化等,它就进入就绪状态。
- 原理:操作系统的进程创建模块完成新进程的创建和必要的初始化设置后,认为该进程已具备运行条件,将其状态设置为就绪,加入就绪队列,等待获得CPU时间片开始执行。
- 进程时间片用完被剥夺CPU:
- 触发因素:在分时操作系统中,每个进程被分配一个时间片,当进程的时间片用完,它就从运行状态变为就绪状态。
- 原理:时钟中断机制会定时检查进程的时间片使用情况,时间片用完时,调度器剥夺该进程的CPU使用权,将其状态设为就绪,并把它放入就绪队列,等待下次调度重新获得CPU执行。
- 高优先级进程执行完毕:
- 触发因素:如果系统采用基于优先级的调度算法,当高优先级进程执行完毕或进入阻塞状态,原本因优先级低而等待的较低优先级进程可能从等待状态(这里可理解为类似就绪但被高优先级进程“压制”)转变为就绪状态。
- 原理:调度器根据进程优先级进行调度,高优先级进程执行完毕或阻塞后,调度器重新评估就绪队列中的进程,那些因高优先级进程而等待的较低优先级进程此时有机会进入就绪队列头部,等待CPU调度执行。