https://github.com/mithro/scheduler-simulator
Python example of a deadline cooperatively scheduled scheduler, plus tool for simulating Chrome scheduling.
https://github.com/mithro/scheduler-simulator
Last synced: about 1 year ago
JSON representation
Python example of a deadline cooperatively scheduled scheduler, plus tool for simulating Chrome scheduling.
- Host: GitHub
- URL: https://github.com/mithro/scheduler-simulator
- Owner: mithro
- License: apache-2.0
- Created: 2014-12-08T04:28:41.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2014-12-19T06:08:30.000Z (over 11 years ago)
- Last Synced: 2025-03-18T05:54:53.766Z (about 1 year ago)
- Language: Python
- Size: 176 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Python Scheduler Simulator
This repository contains a simulator for a scheduler for cooperatively
scheduling tasks with mixture of deadline and other tasks.
The primary aim of this repository is to draw nice diagrams of how scheduled
tasks interact to allow explanation of task interaction quick experimentation
with different scheduling models.
This code is written in Python **3** and has the following dependencies;
* None currently.
* Probably need matplotlib or other graphics library shortly.
## TODO List
- [ ] Add the ability to actually generate diagrams from traces.
- [ ] Add tasks which have uncertainty in their run duration.
- [ ] Add tasks with unknown run duration.
- [x] Make `scheduler.py` just contain tasks and scheduler interface. Move
current scheduler implementations to different file.
- [ ] Add support for preemption + preemptable tasks.
# Chrome Compositor Scheduler Simulator
The `chrome_scheduler.py` file provides a set of tasks and scheduler set ups to
partially emulate the
[Compositor scheduler in Chrome](https://code.google.com/p/chromium/codesearch#chromium/src/cc/scheduler/).
## TODO List
- [ ] Make chrome_scheduler work again.
- [ ] Add whole Commit->Activate->Draw tasks path.
- [ ] Look at emulating the Blink scheduler tasks.