При использовании первых вычислительных систем программист полностью управлял выполнением своих программ. Это управление сводилось к вводу программы, заданной на внешних носителях, запуску программы, ее завершению и установке новой программы. Такой режим использования требовал от программиста постоянного присутствия при выполнении программы даже в том случае, если не выполнялась ее отладка. Для автоматизации прохождения программ был разработан специальный модуль (пакетный монитор), который выполнял загрузку очередной программы, ее запуск, завершение и запуск новой программы, если она была в пакете.
Алгоритм пакетной обработки:
{
while (есть задания в пакете){
Формирование исполнимого файла (трансляция, компоновка);
if (нет ошибок){ Выполнение программы;}
else{ Обработка ошибки;
Пропуск данных для текущего задания;
}
}
В этом случае в памяти постоянно хранится пикетный монитор. В современных операционных системах пакетный режим поддерживается с помощью командных файлов, которые позволяют не только задать порядок выполнения приложений, но и определить потоки ввода-вывода, обеспечить выполнение очередного приложения в зависимости от кода возврата предыдущего приложения, выполнять разветвления и циклы. Особенно развит язык задания командных файлов для операционных систем класса UNIX (язык SHELL). Мы использовали командные файлы для трансляции, компоновки и загрузки в отладчик ассемблерных программ.
Недостатки пакетного режима:
- применим только для заданий, требующих небольшого времени выполнения. В противном случае время ожидания завершения последующих заданий может быть недопустимо большим;
- если одна из программ зациклилась в связи с ошибкой в алгоритме или в исходных данных, остальные программы пакета никогда не завершатся. Этот недостаток устраняется в пакетах, для которых можно указать предельное время выполнения;
- наличие диалога между пользователем и программой очень нежелательно, так как это делает зависимым общее время выполнения пакета от реакции пользователя на отдельные компоненты пакета;
- так как запуск компилятора и компоновщика входит в функции монитора, могут использоваться только те компиляторы, которые были заложены при разработке монитора, поэтому усложняется расширение системы.
Основной недостаток первых систем пакетной обработки: пакеты должны были передаваться на исполнение компьютеру с внешнего устройства этого же компьютера, не существовало возможности дистанционной передачи команд и данных. В середине 60-х годов фирмой IBM был разработан способ для дистанционной передачи заданий на исполнение (Remote Job Entry — RJE).
Так как программа управления исполнением программ должна находиться в оперативной памяти одновременно с исполняемой программой, возникает проблема защиты этих программных модулей от взаимного влияния. Каждый из модулей должна работать только «со своей» памятью и не изменять содержим «чужой» памяти. Итак, первая функция операционной системы — управляя запуском и завершением приложения.