commit | 6e9a844c1577ca49711774e26fbd3e8aa6c42d90 | [log] [tgz] |
---|---|---|
author | Daniel Bristot de Oliveira <daniel@bristot.me> | Sun Aug 23 20:03:40 2020 +0200 |
committer | GitHub <noreply@github.com> | Sun Aug 23 20:03:40 2020 +0200 |
tree | f5c1c2c16554143e0de6527369f2baae78b0d643 | |
parent | 3ec8c220fc5a39e9d925e3e638a348a2140892ea [diff] | |
parent | 72dd1b11a0e51226da99ab485d09e0b9e779ce67 [diff] |
Merge pull request #4 from clrkwllms/master first try updating README.md
The starvation_monitor program is a mechanism to prevent the starvation of operating system threads in a real-time Linux system. The premise is to start up on a housekeeping cpu (one that is not used for real-application purposes) and to periodically monitor the state of each thread in the system, looking for a thread that has been on a run queue (i.e. ready to run) for a specifed length of time without being run. This condition is usually hit when the thread is on the same cpu as a high-priority cpu-intensive task and therefore is being given no opportunity to run.
When a thread is judged to be starving, starvation_monitor changes that thread to use the SCHED_DEADLINE policy and gives the thread a small slice of time for that cpu (specified on the command line). The thread then runs and when that timeslice is used, the thread is then returned to its original scheduling policy and starvation_monitor then continues to monitor thread states.
Usage: starvation_monitor [-l] [-v] [-k] [-s] [-f] [-h] [-c cpu-list] [-p time in ns] [-r time in ns] [-d time in seconds ] [-t time in seconds ]