哪个数据结构用于操作系统中的就绪队列?

时间:2017-09-20 08:03:31

标签: operating-system

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

3 个答案:

答案 0 :(得分:1)

  

在操作系统中哪个数据结构用于就绪队列?

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

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

使用的内容还取决于使用与否的天气预占,默认情况下,它在通用操作系统(Linux / Windows / MacOS)中使用。

答案 1 :(得分:1)

  

Windows操作系统中哪个数据结构用于就绪队列?

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

  1. Processes, Threads, and Jobs in the Windows Operating System by Mark E. Russinovich and David A. Solomon - 搜索"就绪队列"

  2. Internals of Windows Thread by Mahesh Bailwal - 搜索"就绪队列"

  3. Google query: site:reactos.org "ready queue"

  4. 根据文章#1,处理器区域控制块内核对象(PRCB)中的字段称为ReadySummary(位掩码32位),DeferredReadyListHead(单链表),DispatcherReadyListHead (实现就绪队列的32个列表条目的数组)。

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

答案 2 :(得分:1)

循环调度程序按照先到先得的原则选择进程。最先到达的就是最先被执行的。每个进程都在称为时间片的短时间内执行。当时间片到期时,会发生定时器中断。然后选择队列中的第一个执行,并将中断的进程放在队列的末尾。这种 FIFO 特性有利于将就绪队列实现为 FIFO 队列结构。