不使用系统时钟管理任务

时间:2014-08-31 13:24:17

标签: algorithm task pseudocode

为了论证,我试图定义一个创建的算法 任务池(每个任务都有一个单独的时间片来操作) 并且在没有系统时钟的情况下管理它们。

我遇到的问题是我采取的每种方法, 具有较高时间片的任务被饿死了。

我尝试做的是创建一个包含一对task /(int)“time”的任务向量。 我已经用最低的“时间”排序了矢量&然后迭代并以零(0)的时间执行每个任务。在迭代整个向量时,我减少了每个任务的“时间”。

对这种“问题”有没有更好的方法。用我的方法,肯定会发生启动。

1 个答案:

答案 0 :(得分:1)

管理任务可能根本不需要系统时钟。 您只需要找到一种方法来确定每个任务之间的优先级,然后按照优先级运行每个任务。

您可能希望暂停任务以执行其他任务,然后需要为暂停的任务设置新的优先级。此功能(多任务处理)将需要基于事件的中断(通常是时钟时间,但您可以使用任何其他事件,如温度或猴子按下按钮或发送信号的其他进程)。

你说你的问题是具有更高时间片的任务正在挨饿。 当你减少“时间”时间运行它时的每个任务,并假设时间'不会是负数,更高的时间片任务最终将达到0以及其他任务。