Какой алгоритм диспетчеризации процессов используется Linux?

Прямо прежде, чем отправить это я решил попробовать полный путь, и он работал! Я решил отправить ответ для будущих Сотрудников Google и также сообщить, что "запуск" в конце не требуется. Это позволяет передать аргументы исполняемому файлу. Это - то, что работало:

cpulimit --limit 40 /home/ben/build/a.out -c 5
3
20.08.2014, 14:52
1 ответ

В более новых ядрах используется полностью честный планировщик (он заменяет o (1) планировщик старых ядер).

CFS хранит запланированную задачу в красно-черном дереве и использует величину отработанного процессора для процесса выполняется в качестве ключа. Это позволяет планировщику выбрать процесс с наименьшим количеством выполнения (который хранится в узле левого мода дерева).

После того, как задача будет запускаться, она удаляется с дерева, а затем, когда он работает, он повторно добавляется с новым временем процессора.

Процессы, которые «спят» в течение длительного времени автоматически получат приоритетное повышение, поскольку у них нет большого потраченного времени процессора.

Следовательно, это «справедливо», поскольку процессы, которые спят, получают столько процессора в качестве процессов, которые постоянно работают

7
27.01.2020, 21:12

Теги

Похожие вопросы