这个项目是一个用于模拟实时调度算法的调度过程的 Python 库。
SimRT 是一个用于模拟实时调度算法的调度过程的 Python 库。
- 支持在异构处理器平台上的 job level 迁移抢占
- 支持随机生成实时任务集,以及从给定大量任务中随机挑选任务组成任务集
- 实现 Global-EDF 充分性可调度性测试
- 支持通过多进程并行判定大量任务集的可调度性
pip install git+https://github.com/unccx/SimRT.git
poetry add git+https://github.com/unccx/SimRT.git
- 克隆这个仓库:
git clone https://github.com/unccx/SimRT.git
- 进入项目目录:
cd SimRT
- 安装依赖:
- 使用 conda/mamba 安装依赖环境
conda env create -f .\environment.yml conda activate simrt
- 使用 poetry 安装依赖环境
poetey install poetry shell
模拟周期性实时任务的调度过程,判断模拟过程中是否出现错过任务期限
from simrt import TaskInfo, Simulator, PeriodicTask
# 每个任务使用三元组 (C, D, T) 来刻画
# 其中 C 是最坏执行时间、D 是相对截止时间、T 是周期
triplets = [
(1, 37, 37),
(1, 43, 43),
(1, 5, 5),
(1, 25, 25),
(1, 47, 47),
(1, 26, 26),
(1, 45, 45),
]
taskinfos = [
TaskInfo(i, PeriodicTask, *triplet) for i, triplet in enumerate(triplets)
]
sim = Simulator(taskinfos)
ret = sim.run()
print(ret)
欢迎任何形式的贡献,无论是代码、文档、报告问题,还是其他建议。以下是参与贡献的指南:
- 如果你有新功能的想法或建议,请在 issue 页面 提出一个新的 issue,并详细描述你希望添加的功能和它的用途。
-
Fork 这个仓库到你的 GitHub 账户。
-
克隆你自己的仓库到本地:
git clone https://github.com/你的用户名/SimRT.git
- 在你的本地仓库中,创建一个新的分支来进行你的更改:
git checkout -b feature/你的功能
-
在这个分支上进行你的更改。确保你的代码遵循项目的代码风格,并包括足够的测试和文档说明。
-
提交你的更改:
git add .
git commit -m '添加了新功能/修复了 bug'
- 将你的更改推送到 GitHub:
git push origin feature/你的功能
- 访问 Pull Requests 页面 并创建一个新的 Pull Request。描述你的更改,并确保在提交时指明你的分支。
- 代码风格:遵循 PEP 8 代码风格指南。使用 black 包格式化代码。如果你使用 VSCode 编写代码,你可以使用 Black Formatter 插件来格式化代码。
- 文档:尽可能确保你的代码有足够的文档注释和说明。
- 测试:添加或更新测试以验证你的更改。测试位于
tests/
文件夹下,您可以在tests/
内的子文件夹中为您实现的功能补充新的测试文件。请确保所有测试都通过。