Operating system 操作系统中的就绪队列使用哪种数据结构?

Operating system 操作系统中的就绪队列使用哪种数据结构?,operating-system,Operating System,为了实现循环算法,“循环队列”被认为是最佳的数据结构 操作系统中的就绪队列使用哪种数据结构 这取决于操作系统。对于大多数现代操作系统来说,这是一种尽可能公平的算法。这可以是循环、fifo、CFS(红黑树)或其他一些算法。就绪队列可以划分为优先级 创建或取消阻止进程时,可以将其追加到列表/队列的后面。只要它被阻止,它也可以留在原地并跳过 使用什么还取决于是否使用抢占,这在通用操作系统(Linux/Windows/MacOS)中是默认情况 Windows操作系统中的就绪队列使用哪种数据结构 我不知道

为了实现循环算法,“循环队列”被认为是最佳的数据结构

操作系统中的就绪队列使用哪种数据结构

这取决于操作系统。对于大多数现代操作系统来说,这是一种尽可能公平的算法。这可以是循环、fifo、CFS(红黑树)或其他一些算法。就绪队列可以划分为优先级

创建或取消阻止进程时,可以将其追加到列表/队列的后面。只要它被阻止,它也可以留在原地并跳过

使用什么还取决于是否使用抢占,这在通用操作系统(Linux/Windows/MacOS)中是默认情况

Windows操作系统中的就绪队列使用哪种数据结构

我不知道,但我找到了一些可能包含答案的文章:

  • -搜索“就绪队列”

  • -搜索“就绪队列”

  • 根据文章#1,处理器区域控制块内核对象(PRCB)中有称为
    ReadySummary
    (位掩码32位)、
    deferredreadylistead
    (单链表)、
    dispatcherrreadylistead
    (32个列表项的数组)的字段,它们实现了就绪队列


    您可以使用
    ReactOS
    操作系统(第3篇)的源代码来了解有关Windows行为的更多信息。

    循环调度程序按照先到先得的原则选择进程。第一个到达就是第一个被执行。每个进程执行一段称为时间片的短时间。当时间片过期时,会发生计时器中断。然后选择执行队列中的第一个进程,并将中断的进程置于队列的末尾。此FIFO功能有利于将就绪队列作为FIFO队列结构来实现。

    “要实现循环算法,“循环队列”被视为最佳数据结构。”这是什么意思?这和你的问题有什么关系?哪个操作系统?对于Linux,请参阅@xmojmrWiindows@HansPetterTaugbølKragset我的教授告诉我,具有某种优先级的双链表用于就绪队列。但在高尔文的书中有这样的陈述。你能为“对于大多数现代人来说,这是一个FIFO队列”提供一些证据(维基百科文章或类似的东西)吗?谢谢你让我研究这个问题,我可能在枪上有点太快了。将编辑我的答案。谢谢@HansPetterTaugbølkragset感谢您提供有价值的信息。@Ankit欢迎您。请阅读