Задачи алгоритма планирования

Чтобы создать алгоритм планирования, нужно иметь некое представление о том, с чем должен справиться толковый алгоритм. Некоторые задачи зависят от среды окружения (пакетная, интерактивная или реального времени), но есть и такие задачи, которые желательно выполнить в любом случае.
Вот некоторые задачи алгоритма планирования, которых следует придерживаться при различных обстоятельствах и которые нам вскоре предстоит рассмотреть:

♦ Все системы:

• равнодоступность — предоставление каждому процессу справедливой доли времени центрального процессора;

• принуждение к определенной политике — наблюдение за выполнением установленной политики;

• баланс — поддержка загруженности всех составных частей системы.

♦ Пакетные системы:

• производительность — выполнение максимального количества заданий в час;

• оборотное время — минимизация времени между представлением задачи и ее завершением;

• использование центрального процессора — поддержка постоянной загруженности процессора.

♦ Интерактивные системы:

• время отклика — быстрый ответ на запросы;

• пропорциональность — оправдание пользовательских надежд.

♦ Системы реального времени:

• соблюдение предельных сроков — предотвращение потери данных;

• предсказуемость — предотвращение ухудшения качества в мультимедийных системах.

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

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

Другой общей задачей является поддержание максимально возможной задействован- ности всех составных частей системы. Если центральный процессор и все устройства ввода-вывода смогут быть постоянно задействованы, то будет произведен больший объем работы в секунду, чем при простое каких-нибудь компонентов. К примеру, в пакетной системе планировщик управляет тем, чье задание поместить в память для выполнения. Одновременное размещение в памяти части процессов, ограниченных скоростью вычислений, и части процессов, ограниченных скоростью работы устройств ввода-вывода, будет более разумным решением, чем загрузка и выполнение сначала всех заданий, ограниченных скоростью вычислений, а затем, когда их выполнение завершится, загрузка и выполнение всех заданий, ограниченных скоростью работы устройств ввода-вывода. Если используется последняя из этих стратегий, то при запуске процессов, ограниченных скоростью вычислений, они будут состязаться за использование центрального процессора, а дисковое устройство будет простаивать. Затем, когда дело дойдет до выполнения заданий, ограниченных скоростью работы устройств ввода-вывода, они вступят в борьбу за дисковое устройство, а центральный процессор будет простаивать. Лучше за счет разумного сочетания процессов поддерживать в работающем состоянии сразу всю систему.

Руководители крупных вычислительных центров, в которых запускается множество пакетных заданий, при оценке производительности своей системы обычно берут в расчет три показателя: производительность, оборотное время и степень задействования центрального процессора. Производительность — это количество заданий, выполненных за один час. С учетом всех обстоятельств выполнение 50 заданий в час считается лучшим показателем, чем выполнение 40 заданий в час. Оборотное время — это среднестатистическое время от момента передачи задания на выполнение до момента завершения его выполнения. Им измеряется время, затрачиваемое среднестатистическим пользователем на вынужденное ожидание выходных данных. Здесь действует правило: чем меньше, тем лучше.

Алгоритм планирования, доводящий до максимума производительность, не обязательно будет сводить к минимуму оборотное время. Например, если взять сочетание коротких и длинных заданий, то планировщик, который всегда запускал короткие задания и никогда не работал с длинными, может достичь великолепной производительности (выполнить множество коротких заданий за один час), но за счет крайне низкого показателя оборотного времени для длинных заданий.

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

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

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

В определенной степени к этим системам относится и задача, которую можно назвать пропорциональностью. Пользователям свойственно прикидывать (и зачастую неверно) продолжительность тех или иных событий. Когда запрос, рассматриваемый как сложный, занимает довольно продолжительное время, пользователь воспринимает это как должное, но когда запрос, считающийся простым, также занимает немало времени, пользователь выражает недовольство. Например, если по щелчку на значке инициируется выкладывание видео объемом 500 Мбайт на облачный сервер, что занимает 60 с, пользователь, наверное, воспримет это как должное, поскольку он не ожидает, что видео будет передано за 5 с, и знает, что для этого нужно время.

Но когда пользователь щелкает на значке, который инициирует разрыв соединения с облачным сервером после отправки видео, у него совершенно иные ожидания. Если операция не завершается после 30 с, пользователь вряд ли смолчит, а после 60 с он будет просто взбешен. Такое поведение будет соответствовать обычным пользовательским представлениям о том, что на отправку большого объема данных предполагается затратить намного больше времени, чем на разрыв соединения. В некоторых случаях (как и в этом) планировщик не может повлиять на время отклика, но в других случаях он может это сделать, особенно если задержка обусловлена неверным выбором очередности выполнения процессов.

В отличие от интерактивных систем системы реального времени имеют другие свойства, а значит, и другие задачи планирования. Они характеризуются наличием крайних сроков выполнения, которые обязательно или по крайней мере желательно выдерживать. Например, если компьютер управляет устройством, которое выдает данные с определенной скоростью, отказ от запуска процесса сбора данных может привести к потере информации. Поэтому главным требованием в системах реального времени является соблюдение всех (или большей части) крайних сроков.

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

2.4.2.

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

Еще по теме Задачи алгоритма планирования:

  1. Sшrvig Morten. Базовые алгоритмы Qt 4 (Qt 4's Generic Algorithms), 2000
  2. АЛГОРИТМ
  3. Дж. Клейнберг, Е. Тардос. Алгоритмы: разработка и применение. Классика Computers Science, 2016
  4. Планирование телепередач
  5. Планирование, а не планы
  6. АЛГОРИТМ УДАЧИ
  7. § 2. АЛГОРИТМ АНАЛИЗА ПСИХОЛОГО-ПЕДАГОГИЧЕСКИХ СИТУАЦИЙ
  8. 11. КРИМИНАЛИСТИЧЕСКИЕ ВЕРСИИ И ПЛАНИРОВАНИЕ РАССЛЕДОВАНИЯ
  9. 10.2. Планирование и организация следственных действий
  10. Алгоритм исцеления:
  11. § 2. ПЛАНИРОВАНИЕ И СОДЕРЖАНИЕ НАБЛЮДЕНИЯ
  12. Алгоритм избавления от боли
  13. 5.4. Планирование упражнений
  14. Алгоритм обработки результатов.