Использование нескольких очередей

Одной из самых ранних систем приоритетного планирования была CTSS (Compatible Time Sharing System — совместимая система разделения времени), разработанная в Массачусетском технологическом институте, которая работала на машине IBM 7094 (Corbato et al., 1962).
CTSS страдала от проблемы очень медленного переключения процессов, поскольку машина 7094 была способна содержать в оперативной памяти лишь один процесс. Каждое переключение означало сброс текущего процесса на диск и считывание нового процесса с диска. Разработчики CTSS быстро поняли, что эффективнее было бы время от времени выделять процессам, ограниченным скоростью вычислений, более существенные кванты времени, вместо того чтобы слишком часто выделять им небольшие кванты времени (чтобы сократить обмен данными с диском). В то же время предоставление всем процессам больших квантов времени обернется увеличением времени отклика, о чем мы уже упоминали. Разработчики приняли решение учредить классы приоритетов. Процессы, относящиеся к наивысшему классу, запускались на 1 квант времени, процессы следующего по нисходящей класса — на 2 кванта времени, процессы следующего класса — на 4 кванта времени и т. д. Как только процесс использовал все выделенные ему кванты времени, его класс понижался.

В качестве примера рассмотрим процесс, который нужен для вычислений продолжительностью в 100 квантов времени. Сначала ему будет выделен 1 квант времени, после чего он будет выгружен на диск. В следующий раз ему перед выгрузкой на диск будут выделены 2 кванта времени. При последующих запусках он будет получать 4, 8, 16, 32 и 64 кванта времени, хотя из финальных 64 квантов он для завершения своей работы использует лишь 37. Вместо 100 обменов данными с диском, которые потребовались бы при использовании циклического алгоритма, потребуется только 7 (включая начальную загрузку). Более того, по мере погружения процесса в очередь приоритетов он будет запускаться все реже и реже, сберегая время центрального процессора для коротких интерактивных процессов.

Чтобы уберечь процесс, нуждающийся в длительной работе при первом запуске, но потом ставший интерактивным, от постоянных «наказаний», была выбрана следующая политика: когда на терминале набирался символ возврата каретки (нажималась клавиша Enter), процесс, принадлежащий терминалу, перемещался в класс с более высоким приоритетом, поскольку предполагалось, что он собирался стать интерактивным. В один прекрасный день некий пользователь, в чьих интересах работал процесс, сильно ограниченный скоростью вычислений, обнаружил, что, бездумно просиживая время за терминалом и беспорядочно набирая символ возврата каретки каждые несколько секунд, можно буквально творить чудеса со временем отклика. Он рассказал об этом своим друзьям. А они рассказали своим друзьям. Мораль этой истории такова: понять, что получится из задуманного, на практике куда сложнее, чем усвоить сам принцип идеи.

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

Еще по теме Использование нескольких очередей:

  1. Статья 540. Выполнение обязательства, в котором принимают участие несколько кредиторов или несколько должников
  2. Наряды вне очереди
  3. Раздел III Использование достижений криминалистической психологии при собирании, оценке, использовании личностной информации
  4. 1. Наследники первой очереди
  5. 2. Наследники иных (последующих) очередей
  6. Статья 1263. Третья очередь наследников по закону
  7. Статья 1264. Четвертая очередь наследников по закону
  8. Статья 1265. Пятая очередь наследников по закону
  9. Статья 1262. Вторая очередь наследников по закону
  10. Статья 1261. Первая очередь наследников по закону
  11. Мудрец, в первую очередь, – гармоничный человек
  12. Статья 231. Незаконный сбор с целью использования или использование сведений, составляющих коммерческую или банковскую тайну
  13. Если мы спешим, то в универсаме становимся в очередь, которая движется медленнее всех остальных.
  14. Несколько предупреждений
  15. НЕСКОЛЬКО СЛОВ О РИСКЕ
  16. Несколько слов об отношении к анкете
  17. Несколько общих принципов