Простые пакетные системы


Первые машины были очень дорогими, поэтому было важно использовать их как можно эффективнее. Простои, происходившие из-за несогласованности расписа­ния, а также время, затраченное на подготовку задачи, — все это обходилось слиш­ком дорого; эти непроизводительные затраты были непозволительной роскошью.

Чтобы повысить эффективность работы, была предложена концепция пакетной операционной системы. Похоже, первые пакетные операционные системы (и вообще первые операционные системы какого бы то ни было типа) были разработаны в сре­дине 50-х годов в компании General Motors для машин IBM 701 [WEIZ81]. Впослед­ствии эта концепция была усовершенствована и внедрена определенным кругом пользователей на IBM 704. В начале 60-х годов некоторые поставщики разработали пакетные операционные системы для своих компьютеров. Одной из заметных систем того времени является IBSYS фирмы IBM, разработанная для компьютеров 7090/7094 и оказавшая значительное влияние на другие системы.

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

Чтобы понять работу этой схемы, рассмотрим ее с точки зрения монитора и процессора.

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

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

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

Рис. 2.3. Схема размещения резидентного монитора в памяти

Как видите, монитор решает проблему разработки графика. Задания в па­кетах выстраиваются в очередь и выполняются без простоев настолько быстро, насколько это возможно. Кроме того, монитор помогает в подготовке программы к исполнению. В каждое задание включаются простые команды языка управле­ния заданиями (job control language — JCL). Это специальный тип языка про­граммирования, используемый для того, чтобы отдавать команды монитору. Рассмотрим простой пример, в котором нужно принять на обработку программу пользователя, составленную на языке FORTRAN, и дополнительные данные, используемые этой программой. Все команды языка FORTRAN и данные находят­ся на отдельных перфокартах или в отдельных записях на магнитной ленте. Каждое задание, кроме операторов языка FORTRAN и данных, содержит коман­ды управления заданием, каждая из которых начинается знаком $. Формат за­дания в целом выглядит следующим образом:

Чтобы выполнить это задание, монитор читает строку $FTN и загружает с запоминающего устройства большой емкости (обычно это лента) компилятор соответствующего языка. Компилятор преобразует программу пользователя в объектный код, который записывается в память или на запоминающее устройство. Если этот код за­носится в память, то операция называется "компиляция, загрузка и запуск". Если же он записывается на магнитную ленту, то нужна дополнительная команда $LOAD. Монитор, к которому вернулось управление после компиляции, читает эту команду и обращается к загрузчику, который загружает объектную программу в память (на место компилятора) и передает ей управление. В таком режиме различные подсисте­мы совместно используют один и тот же участок основной памяти, хотя в каждый момент времени работает только одна из этих подсистем.

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

Таким образом, монитор, или пакетная операционная система, — это обыч­ная компьютерная программа. Ее работа основана на способности процессора выбирать команды из различных областей основной памяти; при этом происхо­дит передача и возврат управления. Желательно также использование и других возможностей аппаратного обеспечения.

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

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

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

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

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

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

 



Дата добавления: 2016-06-05; просмотров: 2484;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.