操作系统中过程控制块的双重链表

时间:2015-03-12 15:05:20

标签: operating-system scheduling doubly-linked-list rtos

在OS中为调度维护双向链接的PCB(过程控制块)的原因是什么?我已经多次看到过实时操作系统提到的内容。

理想情况下,我会选择一个循环的单链表,这样你就可以进行循环,并在看完所有人之后再回到第一个任务。您也可以按优先级对其进行排序......

但是,为什么要列出双重链表呢?

1 个答案:

答案 0 :(得分:0)

你已经假设你总是想从头开始,并朝着列表的末尾努力。这可能不是真的。假设您正在交换一个流程(例如,它正在等待sempahore)。您已经拥有了当前的流程控制块,因此开始使用您拥有的信息而不是遍历整个列表是有意义的。

因为PCB具有对前一个和下一个的引用,所以您可以将该节点从运行列表中删除,然后移到挂号列表,或从挂号列表转回到准备好的列表中。运行列表等,无需一直迭代。