Циклическое планирование

Одним из самых старых, простых, справедливых и наиболее часто используемых считается алгоритм циклического планирования. Каждому процессу назначается определенный интервал времени, называемый его квантом, в течение которого ему предоставляется возможность выполнения.
Если процесс к завершению кванта вре
мени все еще выполняется, то ресурс центрального процессора у него отбирается и передается другому процессу. Разумеется, если процесс переходит в заблокированное состояние или завершает свою работу до истечения кванта времени, то переключение центрального процессора на другой процесс происходит именно в этот момент. Алгоритм циклического планирования не представляет сложности в реализации. На рис. 2.22, а показано, что от планировщика требуется всего лишь вести список процессов, готовых к выполнению. Когда процесс исчерпает свой квант времени, он, как показано на рис. 2.22, б, помещается в конец списка.

а б

Единственное, что по-настоящему представляет интерес в циклическом планировании, — это продолжительность кванта времени. Переключение с одного процесса на другой требует определенного количества времени для выполнения задач администрирования — сохранения и загрузки регистров и карт памяти, обновления различных таблиц и списков, сброса на диск и перезагрузки кэша памяти и т. д. Предположим, что переключение процесса, или переключение контекста, как его иногда называют, занимает 1 мс, включая переключение карт памяти, сброс на диск и перезагрузку кэша и т. д. Также предположим, что значение кванта времени установлено на 4 мс. При таких параметрах настройки после 4 мс полезной работы центральному процессору придется затратить (то есть потерять) 1 мс на переключение процесса. Таким образом, 20 % процессорного времени будет выброшено на административные издержки, а это, вне всякого сомнения, слишком много.

Чтобы повысить эффективность использования центрального процессора, мы можем установить значение кванта времени равным, скажем, 100 мс.

Теперь теряется всего 1 % времени. Но посмотрим, что получится на серверной системе, если за очень короткое время к ней поступит 50 запросов, имеющих широкий разброс степени востребованности центрального процессора. В список готовых к запуску процессов будет помещено 50 процессов. Если центральный процессор простаивает, первый из них будет запущен немедленно, второй не сможет запуститься, пока не истекут 100 мс, и т. д. Если предположить, что все процессы полностью воспользуются своими квантами времени, то самый невезучий последний процесс может пребывать в ожидании в течение 5 с, прежде чем получит шанс на запуск. Многим пользователям работа системы при пятисекундном ожидании ответа на короткую команду покажется слишком медленной. Эта ситуация получит особо негативную окраску, если некоторые из запросов, размещенные ближе к концу очереди, требуют всего лишь несколько миллисекунд процессорного времени. Если квант времени будет короче, качество их обслуживания улучшится.

Другая особенность состоит в том, что если значение кванта времени установлено большим, чем среднее время задействованности центрального процессора, переключение процесса не будет происходить слишком часто. Вместо этого большинство процессов
будут выполнять операцию блокировки перед истечением кванта времени, вызывающим переключение процессов. Исключение принудительного прерывания повышает производительность, поскольку переключение процессов происходит только при логической необходимости, то есть когда процесс блокируется и не может продолжить работу.

Из этого следует, что установка слишком короткого кванта времени приводит к слишком частым переключениям процессов и снижает эффективность использования центрального процессора, но установка слишком длинного кванта времени может привести к слишком вялой реакции на короткие интерактивные запросы. Зачастую разумным компромиссом считается квант времени в 20-50 мс.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Циклическое планирование:

  1. 6.1. Развитие циклических представлений
  2. 13.1.2. Циклические и волновые теории жизни общества
  3. Планирование телепередач
  4. Планирование, а не планы
  5. 11. КРИМИНАЛИСТИЧЕСКИЕ ВЕРСИИ И ПЛАНИРОВАНИЕ РАССЛЕДОВАНИЯ
  6. § 2. ПЛАНИРОВАНИЕ И СОДЕРЖАНИЕ НАБЛЮДЕНИЯ
  7. 10.2. Планирование и организация следственных действий
  8. 5.4. Планирование упражнений
  9. Искусство планирования спонтанного
  10. 5.9. Планирование социальных контактов
  11. 5.2.9. Планирование сроков достижения уже определённой цели
  12. Статья 437. Планирование, подготовка, развязывание и ведение агрессивной войны
  13. 11.3. Понятие и основные принципы планирования расследования в зависимости от исходной информации (следственной ситуации)
  14. ПЕРСЕВЕРАЦИЯ
  15. Вопросы для самопроверки