Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Внешние устройства и файловая система на дисках



Все внешние устройства в ОС РВ имеют двухсимвольное имя и восьмеричный однобайтовый номер. Если номер не указывается, подразумевается номер 0. Имя и номер устройства не отделяются друг от друга, за последним символом следует двоеточие. Наиболее распространенными являются следующие имена устройств:

· DK: - кассетные магнитные диски емкостью около 2,5 Мб;

· DM: - кассетные магнитные диски емкостью 14 Мб;

· DP: - пакетные магнитные диски емкостью 29 Мб;

· MT: - магнитные ленты;

· LP: - печатающие устройства;

· TT: - терминалы;

· TI: - псевдоустройство - терминал данного пользователя. Для каждого пользователя система при обращении к устройству TI: переадресует ввод-вывод на соответствующий реальный терминал;

· NL: - пустое псевдоустройство, всегда успешно выполняющее операцию записи на него и выдающее признак "Конец файла" при попытке чтения (аналог устройства NUL в MS DOS).

На дисках ОС РВ создаются каталоги, которые нумеруются, как и UIC - двумя однобайтовыми восьмеричными цифрами. Иерархии каталогов не существует (она впервые появилась, вероятно, в UNIX). На диске всегда присутствует каталог [0, 0], в котором находятся файлы-каталоги с именами гггччч.DIR (ггг - три цифры группы, ччч - три цифры члена в группе) и другие файлы, описывающие файловую структуру данного диска.

На диске, содержащей операционную систему, присутствуют каталоги [1, 1], [1, 2] и [1, 50] или [1, 54]. Первый содержит системные библиотеки, второй - некоторые командные файлы (например, командный файл, выполняемый при загрузке ОС РВ, при регистрации пользователя в системе и при завершении работы пользователя). Третий каталог содержит файлы ядра системы и различных задач. В системе без ДП номер этого каталога [1, 50], в системе с ДП - [1, 54].

Спецификация файла состоит из имени, типа (расширения) и номера версии и имеет следующий формат:

Имя.тип;версия

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

Тип содержит до трех символов в коде RADIX-50.

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

Наиболее распространены следующие типы файлов:

· .TSK - файл образа задачи (загрузочный модуль задачи);

· .OBJ - объектный модуль;

· .MAC - исходный текст программы на макроассемблере;

· .OLB - библиотека объектных модулей;

· .MLB - библиотека макроопределений;

· .CMD - косвенный командный файл.

Полная спецификация файла включает в себя спецификацию устройства, каталога и файла, например

DM2:[1,54]PIP.TSK;1

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

· описание команд MCR и языка косвенных командных файлов;

· описание текстового редактора EDT;

· руководство системного программиста по разработке драйверов внешних устройств;

· описание утилиты управления магнитной лентой MAG.

Наконец, ОС РВ предоставляет уникальную возможность во всех подробностях разобраться с ее функционированием: анализ исходных текстов системы. Конечно, эта работа весьма сложная и кропотливая, но не сложнее, чем попытка разобраться в Linux (ясность программ на ассемблере СМ ЭВМ, пожалуй, не меньше, чем ясность модулей Linux на Си, особенно когда разработчики последней жертвовали ясностью в пользу эффективности). Кроме того, у разработчиков ОС РВ есть чему поучиться, ведь хотя эта система создавалась много лет назад, требования к базовым функциям ОС с того времени практически не изменились.

 

Лекция 15

Управление прерываниями.

План лекции:

1. Вектора прерываний

2. Программирование контроллера прерываний 8259.

3. Запрет/разрешение отдельных аппаратных прерываний

 

Вектора прерываний

 

Прерывания - это готовые процедуры, которые компьютер вызы­вает для выполнения определенной задачи. Существуют аппаратные и программные прерывания. Аппаратные прерывания инициируются аппа­ратурой, либо с системной платы, либо с карты расширения. Они мо­гут быть вызваны сигналом микросхемы таймера, сигналом от принте­ра, нажатием клавиши на клавиатуре и множеством других причин. Аппаратные прерывания не координируются с работой программного обеспечения. Когда вызывается прерывание, процессор оставляет свою работу, выполняет прерывание, а затем возвращается на преж­нее место. Для того, чтобы иметь возможность вернуться точно в нужное место программы, адрес этого места (CS:IP) запоминается в стеке вместе с регистром флагов. Затем в CS-.IP загружается адрес программы обработки прерывания и ей передается управление. Прог­раммы обработки прерываний иногда называют драйверами прерываний. Они всегда заканчиваются инструкцией IRET (возврат из прерыва­ния), которая завершает процесс, начатый прерыванием, возвращая старые значения CS:IP и регистра флагов, давая тем самым програм­ме возможность продолжить выполнение из того же состояния.

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

Адреса программ прерываний называют векторами. Каждый вектор имеет длину 4 байта. В первом слове хранится значение IP (указа­тель команд), а во втором - CS (сегмент команд). Младшие 1024 байта памяти содержат вектора прерываний, т.о., есть место для 256 векторов. Вместе взятые они называются таблицей векторов. Вектор для прерывания 0 начинается с ячейки 0000:0000, для преры­вания 1 - с ячейки 0000:0004 и т. д. Если посмотреть на 4 байта, начиная с адреса 0000:0020, в которых содержится вектор прерыва­ния 8Н (прерывание вектора суток), то можно обнаружить там A5FEOOFO. Имеется в виду, что младший байт слова расположен сна­чала и что порядок - IP:CS, это 4-байтовое значение переводится в FOOO:FEA5. Это стартовый адрес программы ПЗУ, выполняющий преры­вание 8Н.

 

2. Программирование контроллера прерываний 8259.

 

Для управления аппаратными прерываниями используется микрос­хема программируемого контроллера прерываний 8259. Поскольку в каждый момент времени может поступать не один запрос, микросхема имеет схему приоритетов. Имеется 16 уровней приоритетов у IBM AT (от IRQO до IRQ15 две микросхемы). Максимальный приоритет соот­ветствует уровню О.

Аппаратные прерывания в порядке приоритета

IRQ О таймер

1 клавиатура

2 канал ввода/вывода

 

8 часы реального времени

9 программно переводятся в IRQ2

10         -12 резерв

13 математический сопроцессор

14 контроллер фиксированного диска

      15   резерв

3 COM2

4 СОМ1

5 LPT2

6 контроллер дискет

7 LPT1

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

Микросхема 8259 имеет три однобайтовых регистра, которые уп­равляют восемью линиями аппаратных прерываний. Регистр запроса на прерывание (IRR) устанавливает соответствующий бит, когда линия прерывания сигнализирует о запросе. Затем микросхема автоматичес­ки проверяет, не обрабатывается ли другое прерывание. При этом она запрашивает информацию регистра обслуживания (ISR). Дополни­тельная цепь отвечает за систему приоритетов. Наконец, перед вы­зовом прерывания проверяется регистр маски прерываний (IMR), что­бы узнать, разрешено ли в данный момент прерывание данного уров­ня. Как правило обращаются к регистру маски прерываний через порт 21Н и к командному регистру прерываний через порт 20Н.

 

 


Поделиться:



Последнее изменение этой страницы: 2019-04-21; Просмотров: 172; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.017 с.)
Главная | Случайная страница | Обратная связь