MST
星途 面试题库

面试题:进程管理:常见进程状态转换及对系统性能的一般性影响

请简述进程在就绪、运行、阻塞这三种常见状态之间是如何转换的,并说明这些转换对系统性能会产生哪些一般性的影响。
47.6万 热度难度
操作系统进程管理

知识考点

AI 面试

面试题答案

一键面试

1. 就绪态、运行态、阻塞态转换说明

  • 就绪态 -> 运行态:当 CPU 空闲且调度器从就绪队列中选择一个进程时,该进程就从就绪态转换为运行态。例如,在多进程操作系统中,有多个进程处于就绪状态等待 CPU 资源,调度器按照一定算法(如先来先服务、短作业优先等)选择其中一个进程投入运行。
  • 运行态 -> 就绪态:当运行的进程时间片用完(在分时系统中),或者有更高优先级的进程进入就绪队列时,当前运行进程会被剥夺 CPU 资源,从运行态转换为就绪态。比如,在一个同时运行文本编辑程序和后台病毒扫描程序的系统中,若病毒扫描程序优先级更高且变为就绪态,文本编辑程序的运行态进程可能会被抢占,回到就绪态等待再次获得 CPU 资源。
  • 运行态 -> 阻塞态:当进程需要等待某个事件发生(如等待 I/O 操作完成、等待信号量等)时,它会主动放弃 CPU 资源,从运行态转换为阻塞态。例如,一个进程发起磁盘读取文件操作,在等待数据从磁盘传输到内存的过程中,该进程进入阻塞态。
  • 阻塞态 -> 就绪态:当进程等待的事件发生(如 I/O 操作完成、所等待的信号量可用等),阻塞态的进程会被唤醒,进入就绪队列,转换为就绪态等待 CPU 调度。比如,磁盘读取文件操作完成后,等待该操作结果的进程就从阻塞态转换为就绪态,等待获取 CPU 资源继续运行。

2. 对系统性能一般性影响

  • 就绪态 -> 运行态:此转换合理进行,能有效利用 CPU 资源,提高系统的吞吐量。若调度算法得当,可使各个进程都有机会获得 CPU 执行,保证系统整体性能。但如果调度算法不合理,可能导致某些进程长时间无法获得 CPU,出现 “饥饿” 现象,降低系统性能。
  • 运行态 -> 就绪态:因时间片用完转换,能保证多个进程公平使用 CPU,提高系统交互性,适用于分时系统,整体上提升系统的响应性能。由于高优先级进程抢占导致的转换,有助于及时处理重要任务,但可能使低优先级进程等待时间变长,影响其执行效率,若处理不当会导致系统性能不稳定。
  • 运行态 -> 阻塞态:进程主动进入阻塞态等待资源,释放 CPU 给其他进程使用,可提高 CPU 利用率。然而,如果大量进程频繁进入阻塞态等待资源,如大量进程同时进行 I/O 操作,可能导致系统 I/O 瓶颈,影响整体性能。
  • 阻塞态 -> 就绪态:当阻塞进程被唤醒进入就绪态,为系统增加了可运行的进程,若此时 CPU 有空闲,能进一步利用 CPU 资源,提升系统性能。但如果唤醒机制不合理,例如唤醒过多进程,导致就绪队列过长,可能增加调度开销,反而降低系统性能。