Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8. СИСПРОГ-госы.doc
Скачиваний:
2
Добавлен:
26.08.2019
Размер:
230.91 Кб
Скачать
  1. Взаимодействие операционной системы и BIOS с периферийными устройствами: уровни взаимодействия с периферийными устройствами, работа на уровне портов ввода-вывода, работа на уровне BIOS, работа на уровне ОС; функционирование резидентных программ.

Файл IO.SYS содержит расширение базовой системы ввода/вывода и является интерфейсом между операционной системой и BIOS. Расширение используется операционной системой для взаимодействия с аппаратурой компьютера и BIOS. Система связи с драйверами устройства скрыта от прикладных программ - программы не могут обращаться непосредственно к драйверам устройств ввода/вывода. Программа вызывает DOS, а DOS обращается при необходимости к драйверам. Для управления состоянием устройства ввода/вывода или состоянием драйвера используется специальная функция 44h прерывания DOS 21h. Эта функция предназначена для обмена управляющей информацией между прикладной программой и драйвером.

Для каждого типа устройства составляются канальные программы (программы, которые будут выполняться каналом). Прикладное программное обеспечение может пользоваться либо вводом/выводом на этом, крайне низком, канальном уровне, либо осуществлять ввод/вывод на уровне так называемых методов доступа. Библиотеки программ методов доступа содержат программы, работающие на канальном уровне. Для любого, даже очень простого нового устройства в этой системе необходим сложный аппаратный интерфейс с каналом. Составление программ своего метода доступа - крайне сложная задача, доступная лишь профессионалам высокого класса. В операционных системах Unix для каждого устройства составляется своя программа обслуживания - драйвер. Эта программа выполняет все операции со своим устройством. Сама операционная система имеет дело только с драйвером, а прикладное программное обеспечение для выполнения ввода/вывода вызывает соответствующие модули операционной системы. Такая программная "буферизация" устраняет, с одной стороны, зависимость операционной системы от аппаратуры, с другой - зависимость прикладной программы от операционной системы и от аппаратуры. Операционная система MS-DOS, работающая на компьютерах фирмы IBM или совместимых с ними, тоже использует механизм драйверов. Однако драйверы MS-DOS не всегда обращаются напрямую к аппаратуре. Обычно они вызывают функции BIOS, и уже BIOS выполняет все действия по вводу/выводу. Конечно, BIOS содержит программы обслуживания только стандартных устройств ввода/вывода, нестандартные устройства обслуживаются драйверами напрямую. производители совместимых компьютеров учитывают в программах BIOS все аппаратные особенности, и DOS "не видит" отличий. А прикладная программа - тем более. Таким образом, независимость аппаратного и программного обеспечения в DOS обеспечивается, с одной стороны, BIOS для стандартных устройств, с другой стороны - драйверами. При загрузке драйвера в память заголовок драйвера тоже помещается в оперативную память, и в нем операционная система производит некоторые изменения. в начале загрузочного модуля драйвера имеется управляющий блок. Только этот управляющий блок в отличие от заголовка EXE-файла является принадлежностью самой программы и загружается вместе с ней в память. Заголовок EXE-программы используется при загрузке EXE-программы, но после загрузки операционная система убирает его из памяти. Как уже было сказано, все драйверы связаны в цепочку. Самый первый драйвер находится сразу за векторной таблицей связи. Поле next заголовка драйвера указывает на следующий драйвер (на его заголовок). Это поле имеет формат DWORD-указателя и состоит из компоненты адреса сегмента и смещения. Признаком того, что данный драйвер последний в цепочке, служит значение 0FFFFh в компоненте смещения поля next. Все драйверы можно разделить на две группы - драйверы символьных устройств и драйверы блочных устройств. Первые обслуживают устройства посимвольного ввода/вывода, такие как принтеры, клавиатура, контроллеры последовательной передачи данных RS232C и т.д., вторые ориентированы на ввод/вывод блоками - это диски. Для обращения к драйверу DOS формирует в своей области данных запрос, состоящий из заголовка стандартного формата и переменной части запроса, длина и формат которой зависят от типа запроса. Когда операционная система загружает драйвер, она создает заголовок запроса и помещает в него команду инициализации. Затем вызывается программа стратегии драйвера, которой передается адрес подготовленного заголовка запроса. После этого вызывается программа прерывания драйвера. Эта программа просматривает заголовок запроса, определяет, что пришла команда инициализации, и начинает ее обрабатывать.

Обычно после завершения очередной выполняющейся программы DOS освобождает место в памяти, которое занимала программа, чтобы загрузить на это место новую. Однако есть способ оставить программу в памяти и после ее завершения. Следующая запускаемая программа при этом разместится в памяти после оставленной. Остающиеся в памяти после завершения своей работы программы называются резидентными или TSR (Terminate and Stay Resident). TSR-программы имеют некоторые особенности, отличающие их от "нормальных" программ. Им не разрешается использовать DOS-прерывания, когда вздумается. Это связано с тем, что DOS проектировалась как однозадачная операционная система, поэтому модули DOS не обладают свойством реентерабельности (повторной входимости). Существует несколько приложений, для которых подходят TSR-программы. Чаще всего TSR-программы используются для русификации импортных персональных компьютеров. Написано множество программ для загрузки русских шрифтов в память видеоадаптеров, для печати русских букв на принтере в графическом режиме, для русификации клавиатуры и т.п. Для всех этих программ характерно то, что они запускаются один раз при загрузке компьютера - их имена обычно включают в AUTOEXEC.BAT. Эти программы могут переключать на себя обработку прерываний, связанных с выводом на печать или с обращением к клавиатуре и/или выполнять разовые инициализирующие действия, такие как загрузка русских шрифтов в память видеоадаптера.

  1. Организация ячеек памяти, регистры, форматы команд.

Операт память делится на ячейки размера 8 разрядов. Ячейка такого размера наз-ся БАЙТОМ. Разряду нумеруются справа налево, начиная с нулевого.

В каждом разряде может быть записано 0 или 1 или БИТ. Т.к.к посл-сть нулей и единиц бывает очень длинной, то принято содержимое ячекк записывать в 16-ричной системе, указывая в конце записи числа букву h. Байты нумеруются также с нулевого. Порядковый номер байта наз-ся его адресом. Слово – 2 соседних байта. Размер слова – 16 разрядов, кот. нумеруются от 0 до 15. Адресом слова считается адрес его первого байта. Двойное слово – 4 соседних байта. Размер двойного слова от 0 до 31. Адресом двонйого слова явл-ся адрес его 1-го байта.

Байты использ-ся для хранения небольших целых чисел и символов. Слово использ-ся для обычных целых чисел и адресов. Двойное слово для хранения больших чисел.

Помимо ячекк ОП для кратковременного хранения данных использ-ся РЕГИСТРЫ, т.е. ячейки, расположенные в центральном процессоре и доступные из машинных команд. Доступ к регистрам осущ-ся намного быстрее, чем к ячейка ОП. Все регистры имеют размер слова, за каждым из них закреплено имя.

По назначению и способу использования регистры можно разбить на след. группы:

1 ) регистры ОБЩЕГО НАЗНАЧЕНИЯ

Буква X в первых 4-х регистрах от слова Extendede (расширенный), т.к. в процессоре 8080 были байтовые регистры A, B, C, D, затем их расширили до размеров слова. Первые 4 регситра устроены так, что возможен независимый доступ и к старшей, и к младшей половине. Целиком эти регистры исп-ся при работе с числами, а их половины – при работе с частями чисел и символами. В оставшихся SI-SP чтение и запись производится целиком.

О СОБЕННОСТЬ регистров общ. назначения – возможность исп-ть в любых арифметич, логич и других машинных командах.

2) СЕГМЕНТНЫЕ регистры

Не могут участвовать в арифм, логич и других операциях. В них можно только записывать и считывать из них. Исп-ся для сегментирования адресов (сегментирование для сокращения размера команд). Любой адрес А можно представить в виде суммы В и d, где В – начальный адрес того сегмента памяти, в кот-м нах-ся ячейка А, и d - смещение, т.е. адрес яч.А, отсчитанный от начала сегмента.

3) УКАЗАТЕЛЬ КОМАНД

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

Поэтому абсолютный адрес команды опр-ся парой регистров CS и IP.

4) Регистр ФЛАГОВ.

Флаг – бит, принимающий значение 1, если выполнено условие и 0 в противном случае.

В процессоре исп-ся 9 флагов, собранных в один 16-разрядный регистр FLAGS.

1) флаги условий – автоматически меняются при выполнении команд

CF – переноса; OF – переполнения; ZF – нуля; SF – знака; PF – четности; AF – доп.переноса;

2) флаги состояний – эти флаги меняет сама программа.

DF – направления; IF – прерываний; TF – трассировки

Машинные команды занимают от 1 до 6 байтов. Код операции занимает 1-2 первых байта. Т.к. операций много, кодов не хватает, поэтому некот.операции объединяются в группу и им дается один и тот же код операции, а вот 2-м байте он уточняется. Также во 2-м байте указ-ся типы операндов и способы их адресации. В остальных байтах указ-ся операнды.