Operating system 先发制人&;非抢占式内核与抢占式内核&;非抢占式调度

Operating system 先发制人&;非抢占式内核与抢占式内核&;非抢占式调度,operating-system,kernel,scheduling,preemptive,Operating System,Kernel,Scheduling,Preemptive,我正在努力理解抢占式和非抢占式内核之间的区别,以及抢占式和非抢占式调度之间的区别 来自操作系统概念(第九版),Silberschatz,Galvin和Gagne: 抢占式内核是内核允许进程在内核模式下运行时被删除和替换的内核 非抢占式内核不允许抢占以内核模式运行的进程;内核模式进程将一直运行,直到退出内核模式、阻塞或自动放弃对CPU的控制 在非抢占式调度下,一旦CPU分配给进程,进程将保持CPU,直到通过终止或切换到等待状态释放CPU。-在我看来,这与非preemeptive内核的描述完全相同

我正在努力理解抢占式和非抢占式内核之间的区别,以及抢占式和非抢占式调度之间的区别

来自操作系统概念(第九版),Silberschatz,Galvin和Gagne:

抢占式内核是内核允许进程在内核模式下运行时被删除和替换的内核

非抢占式内核不允许抢占以内核模式运行的进程;内核模式进程将一直运行,直到退出内核模式、阻塞或自动放弃对CPU的控制

非抢占式调度下,一旦CPU分配给进程,进程将保持CPU,直到通过终止或切换到等待状态释放CPU。-在我看来,这与非preemeptive内核的描述完全相同

先发制人调度发生在这两种情况下(来自同一本书):

  • *当进程从运行状态切换到就绪状态时(对于 例如,发生中断时)

  • 当进程从等待状态切换到就绪状态时(对于 例如,在完成I/O时)*

  • 这本书只是简单地说,在这种情况下有一个选择,我不确定这个选择是否正确。是选择是否可以继续运行就绪队列中的相同进程,还是可以选择运行就绪队列中的不同进程

    基本上,对这4个术语的明确澄清是我想要的


    谢谢大家!

    您面临的问题是这些术语没有标准意义。我怀疑你的书是从某个特定操作系统的角度使用它们的(哪一个?-Je ne sais quois)。如果你搜索过互联网,你肯定会发现相互矛盾的解释

    例如,抢占式调度可能意味着:

  • 将中断不产生CPU的正在运行进程的调度
  • 在运行进程的量程到期之前中断该进程的调度
  • 你的书显然还有另一个定义。我无法从摘录中看出意思。这本书在这一点上完全有可能是混淆不清的(因为它显然是在很多点上)。一点是过程状态依赖于系统。使用进程状态来定义术语是相当混乱的
  • it定义的这一部分很有意义:

    在非抢占式调度下,一旦CPU分配给进程,进程将保留CPU,直到通过终止或切换到等待状态释放CPU为止

    定义中的先发制人部分毫无意义

    对于抢占式内核这个术语,这是相当标准的,您对它的描述有些正常。这就是说,这本书的声明应该更加精练,因为每个进程都必须在内核模式下删除。通常,人们会这样说:“在非抢占式内核中,当进程通过异常进入内核模式时,它不能被删除。”

    抢占式内核对于实时处理至关重要

    所以你问:

    • 在我看来,这与非preemeptive内核的描述完全相同
    您有四种理论组合:

  • 抢占式调度抢占式内核
  • 操作系统几乎可以在任何时候强制切换进程

  • 非抢占式调度抢占式内核
  • 这种组合并不存在

  • 非抢占式调度非抢占式内核
  • 进程必须显式地让步,以允许操作系统切换到另一个进程

  • 抢占式调度非抢占式内核

  • 操作系统可以强制切换进程,除非进程在内核模式下执行以处理异常(也可能在处理中断时无法切换进程)。

    基本上,我想要的是对这4个术语的明确澄清。
    -关于这些术语的堆栈溢出问题有很多。究竟什么是不清楚的?非抢占式调度和非抢占式内核的区别在于,非抢占式内核允许在进程处于用户模式时抢占进程,但非抢占式调度不允许。找一本更好的书。您在上面引用的“抢占式调度”是一堆带有误导性的术语,它们被标记在一起:(@MartinJames:Nah,它们不是术语。它们是关键字,实际上有意义。不幸的是,您对其余部分的看法完全正确。@Olaf没有有效线程状态及其含义的列表(即操作系统),。他们的口碑比钥匙更响亮:)@MartinJames:Meh,他需要清晰的定义/规范。我们有人工智能,让他们来处理这个想法,我们在facebook上,推特tinder来烧掉原因。谢谢!你说的4个理论组合是有道理的。对于第二种组合-非抢占式调度抢占式内核,这种组合不存在,因为要拥有抢占式内核,您需要拥有抢占式调度权?否则,就没有意义了。