Запустить очередь
В современных компьютерах множество процессов одновременно выполняется . Активные процессы помещаются в массив, называемый очередью выполнения или очередью выполнения . Очередь выполнения может содержать значения приоритета для каждого процесса, которые будут использоваться планировщиком для определения того, какой процесс запустить следующим. Чтобы гарантировать, что каждая программа имеет справедливую долю ресурсов, каждая из них запускается в течение некоторого периода времени (кванта), прежде чем приостанавливается и помещается обратно в очередь выполнения. Когда программа останавливается для запуска другой, затем разрешается выполнить программу с наивысшим приоритетом в очереди выполнения.
Процессы также удаляются из очереди выполнения, когда они переходят в спящий режим , ожидают доступности ресурса или были завершены.
В операционной системе Linux (до ядра 2.6.23) каждому процессору системы назначается очередь выполнения, которая поддерживает как активный, так и просроченный массив процессов. Каждый массив содержит 140 (по одному на каждый уровень приоритета) указателей на двусвязные списки , которые, в свою очередь, ссылаются на все процессы с заданным приоритетом. Планировщик выбирает следующий процесс из активного массива с наивысшим приоритетом. Когда квант процесса истекает, он помещается в массив с истекшим сроком действия с некоторым приоритетом. Когда в активном массиве больше нет процессов, планировщик меняет местами активный и просроченный массивы, отсюда и название планировщика O (1).
В UNIX или Linux команда sar используется для проверки очереди выполнения.
Команду vmstat для UNIX или Linux также можно использовать для определения количества процессов, стоящих в очереди на запуск или ожидающих запуска. Они отображаются в столбце «r».
Пример:
$ vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 4579152 324416 4619528 0 0 402 236 3357 15 20 2 78 0 0
Существует две модели очередей выполнения: одна назначает очередь выполнения каждому физическому процессору, а другая имеет только одну очередь выполнения в системе.
См. также
[ редактировать ]- Полностью справедливый планировщик — алгоритм планирования, используемый Linux начиная с ядра 2.6.23.
Ссылки
[ редактировать ]- Таненбаум А.С. (2008) Современные операционные системы , 3-е изд., стр. 753-4. Пирсон Эдьюкейшн, Инк. ISBN 0-13-600663-9
- Зильбершац, Гэлвин, Ганг (2012) Концепции операционной системы , 9-е изд. ISBN 978-1-118-55963-5