Мультипрограммирование в системах разделения времени

 

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

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

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

Одной из основных причин, по которой системы разделения времени обладают меньшей пропускной способ­ностью, чем системы пакетной обработки, является то, что на выполнение принимается каждая запущенная пользователем задача, а не та, которая “выгодна” ОС. Кроме того, производительность системы снижается из-за возросших накладных расходов вычислительной мощности на более частое переключение процессора с задачи на задачу. Это вполне соответствует тому, что критерием эффективно­сти систем разделения времени является не максимальная пропускная способ­ность, а удобство и эффективность работы пользователя. Вместе с тем мульти­программное выполнение интерактивных приложений повышает и пропускную способность компьютера (пусть и не в такой степени, как пакетные системы). Аппаратура загружается лучше, поскольку в то время, пока одно приложение ждет сообщения пользователя, другие приложения могут обрабатываться процес­сором.

 

Мультипрограммирование в системах

Реального времени

 

Еще одна разновидность мультипрограммирования используется в системах ре­ального времени, предназначенных для управления с помощью компьютера различными техническими объектами (например, станком, спутником, научной эксперименталь­ной установкой и т. д.) или технологическими процессами. Во всех этих случаях существует пре­дельно допустимое время, в течение которого должна быть выполнена та или иная управляющая объектом программа. В противном случае может произойти авария. Таким образом, критерием эффективности здесь является время реакции системы. Требо­вания ко времени реакции зависят от специфики управляемого процесса. Кон­троллер робота может требовать от встроенного компьютера ответ в течение менее 1 мс, в то время как при моделировании полета может быть приемлем от­вет в 40 мс.

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

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

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