algorithm - 不使用系统时钟管理任务

标签 algorithm task pseudocode

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

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

我尝试做的是创建一个包含一对任务/(int)“时间”的任务向量。 我首先对具有最低“时间”的向量进行排序,然后迭代并执行时间为零 (0) 的每个任务。在遍历整个向量时,我减少了每个任务的“时间”。

有没有更好的方法来解决这种“问题”。按照我的方法,肯定会启动。

最佳答案

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

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

您说您的问题是具有较高时间片的任务正在挨饿。 当您在运行每个任务时减少其“时间”并假设“时​​间”不会为负数时,更高时间片的任务最终将变为 0,其他所有任务也是如此。

关于algorithm - 不使用系统时钟管理任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25592405/

相关文章:

xamarin - Xamarin Android 中的 "VerifyTaskFailed"任务意外失败

c - 编程不同权重的随机分布

algorithm - 理解伪代码

math - 检查平面上的点在哪一侧

java - Integer[][] 矩阵中的圆圈选择 - Java

arrays - 许多子数组求和查询

c++ - 矩阵列比较

java - 任务队列java

c# - 将业务逻辑(c#)传递给事务处理(sql)会提高性能吗?

c# - 等待空任务永远旋转(等待新任务(()=>{}))