【问题标题】:Which state change occurs as a result of non preemptive action由于非抢先操作而发生的状态变化
【发布时间】:2020-12-12 20:34:37
【问题描述】:

我要解决的问题是:
非抢先操作会导致哪种状态更改

  1. 从等待到就绪
  2. 从准备到运行
  3. 从 RUNNING 到 READY
  4. 从运行到等待

据我了解,这是一种非先发制人的行动。所以它不能是 3,1 但不确定有什么建议或 cmets 吗?

【问题讨论】:

    标签: process operating-system preemptive


    【解决方案1】:

    一般的经验法则是,如果一个进程可以从 RUNNING 过渡到 READY 不是由于它的操作,那么系统就是抢占式的。所以,(3) 只能发生在抢占式系统中。其余选项可以出现在非抢占式系统中。以下是示例:

    1. 当进程的 IO 请求已得到服务并且现在准备就绪时,可能会发生等待就绪。
    2. 在选择运行队列中的进程被执行以执行时,可以发生运行。
    3. RUNNING to READY 仅发生在抢占式系统中。
    4. 当进程请求 IO 时可能会发生 RUNNING to WAIT,现在必须等待 IO 请求得到处理。

    因此,选项 1、2 和 4 可能由于非抢占行动而发生。

    【讨论】:

    • 那么在非抢占式系统中,当一个进程等待 I/O 时,CPU 是否保持空闲?
    • 是的,有一点是正确的。在等待 IO 时,OS 可能会调度 READY 队列中的进程在 CPU 上运行,并将原始进程移动到与 IO 设备关联的 WAIT 队列中。在这种情况下,CPU 在等待 IO 时不会处于空闲状态。
    猜你喜欢
    • 2023-03-06
    • 2020-10-21
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    相关资源
    最近更新 更多