0022 - Проектирование операционных систем для малых ЭВМ - Число предназначенных для записи слов загружается в с...

С. Кейслер. Проектирование операционных систем для малых ЭВМ. 1986

 С. Кейслер 
.  Проектирование операционных систем для малых ЭВМ 
. 1986
. 
. Мир
. 
. В книге американского специалиста рассматриваются методы проектирования операционных систем многоуровневого управления малыми вычислительными машинами, предназначенными
Название: 
Проектирование операционных систем для малых ЭВМ
Автор: 
С. Кейслер
Год: 
1986
Издательство: 
Мир
Описание: 

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

Число предназначенных для записи слов загружается в счетчик контроллера лентопротяжного устройства. Выбирается нужное лентопротяжное устройство. Функция ЗАПИСЬ загружается в командный регистр контроллера лентопротяжного устройства. Контроллеру подается команда ЗАПУСК, которая инициирует выполнение последовательности шагов команды ЗАПИСЬ. Когда начинает работать команда ЗАПИСЬ, из памяти выбирается слово, которое затем записывается в регистр данных. Лента продвигается мимо записывающих головок и . После записи последнего слова записываются некоторые . Признак занятости устанавливается в нуль, признак завершения операции — в единицу и затем генерируется программное прерывание. Аналогичная последовательность действий выполняется при работе программы ЛЕНТА. Для подробного ознакомления с командами и содержимым слова аппаратного статуса ленты читателю следует обратиться к соответствующим руководствам по аппаратной части ЭВМ. Предел повторов — это число повторных попыток выполнить команду, которые будет производить программа обслуживания устройства, прежде чем констатировать сбой. Установка предела повторов производится на основе практического опыта и зависит от среды, в которой работает система. Каждому, кто интенсивно работал на мини. Обычно такие действия устройства являются результатом аппаратной ошибки. Для особо длинных записей . Пользователь, однако, видит только то, что он не может остановить серию повторных попыток. Все это происходит из. Пользователь вынужден ждать, пока последовательность повторных попыток не закончится. Таким образом, установка большего или меньшего числа повторов определяет время, которое пройдет до момента, когда пользователь сможет снова получить . В системах реального времени пользователю желательно иметь малое число повторов. В случае ошибки пользователь. В среде общего назначения может быть установлено большее число повторов, особенно если лентопротяжные устройства используются интенсивно и вероятность восстановления в случае ошибки больше. ФУНКЦИИ УПРАВЛЕНИЯ ЛЕНТОЙ Функции, вызываемые командой ФУНКЦИЯ. Каждая из этих функций рассматривается ниже. Процедура для выполнения функции ПЕРЕМОТАТЬ представлена в модуле . ОТКА и освобождает устройство. Таким образом, процедура ЛЕНТА. Аппаратура автоматически находит маркер начала ленты, останавливает ленту и генерирует прерывание. Процедуры для пропуска файлов ленты вперед и назад показаны в модулях . Процедуры для выполнения этих функций почти одинаковы. Пропуск файлов начинается с текущей позиции ленты. Таким образом, если текущая позиция ленты соответствует середине файла, файл рассматривается как первый из тех, которые должны быть пропущены. Программа обслуживания устройства распознает только границы файлов по маркерам конца файла. Так как в файле не содержится информации о его текущем номере, пользователь может пропустить слишком много файлов и выйти на . В обоих случаях процедура получает управление устройством. Число, заданное в запросе на системное обслуживание . При пропуске вперед процедура пропускает все записи, начиная с текущей позиции. После пропуска очередной записи результат анализируется в цикле . Если результат отрицательный, это значит, что либо обнаружен конец файла, либо произошла ошибка ленты. В случае конца файла счетчик предназначенных для пропуска файлов . В случае любой другой ошибки устройство освобождается и статус операции . При пропуске назад необходимо анализировать результат каждого выполнения пропуска назад, чтобы проверять, не встретился ли маркер конца файла. Это необходимо делать потому, что маркер конца файла — в действительности просто запись ленты, хотя и имеющая специальную интерпретацию. Любая Управление внешними устройствами . В конце процедуры мы пропускаем одну запись вперед, чтобы сдвинуться с только что найденного конца файла и установить ленту в позицию, соответствующую первой записи файла, для последующего чтения или записи. Можно подать запрос на пропуск записей вперед или назад. Записи могут пропускаться только внутри контекста текущего файла ленты. Процедуры для выполнения этих функций представлены в модулях . Алгоритмы каждой процедуры заключаются в выполнении следующих действий. Процедура должна проверять условие . Перед выходом номер записи, указывающий на следующую подлежащую чтению запись, увеличивается на . Управление внешними устройствами . Если она достигнута, номер файла и номер записи устанавливаются в нуль и. В противном случае вызывается написанная на ассемблере процедура ЛЕНТА . В случае его выполнения номер записи устанавливается в —. Номеру записи невозможно присвоить положительное значение потому, что не существует никакого способа отследить записи предыдущего файла. Функция стирания ленты эффективным образом делает недоступными . Функция физически не записывает на ленту нули или какие. Для выполнения стирания она записывает. Последующая команда ЧТЕНИЕ обнаружит ситуацию конца файла. Процедура для выполнения этой функции представлена в модуле . Когда пользователь монтирует ленту ва лентопротяжном устройстве, для того чтобы она стала до . Процедура для инициализации ленты представлена в модуле . Когда пользователь нажимает на управляющей панели лентопротяжного устройства кнопки В СИСТЕМЕ и ЗАГРУЗКА, положение ленты аппаратно приводится в соответствие с позицией начальной загрузки. Однако эти условия должны быть проверены системой. Процедура отыскивает блок управления устройством данного лентопротяжного устройства. Если БУУ не найден, то это значит, что данное лентопротяжное устройство не входит в конфигурацию системы. В этом случае обратившемуся к программе будет возвращен код ошибки. Процедура проверяет бит доступности устройства, чтобы установить, находится ли устройство . Этот бит устанавливается во время открытия канала лентопротяжного устройства. Если бит не установлен, на консоли оператора печатается сообщение об ошибке. Затем процедура запрашивает доступ к контроллеру лентопротяжного устройства.