Вопрос 15. ОС MS-DOS. Порядок загрузки. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Вопрос 15. ОС MS-DOS. Порядок загрузки.



При включении питания компьютера управление передается базовой системе ввода/вывода, BIOS. Она выполняет проверку аппаратных узлов компьютера, формирует начальную часть таблицы векторов прерываний, инициализирует устройства и начинает процесс загрузки операционной системы. Загрузка начинается с того, что BIOS делает попытку прочитать самый первый сектор дискеты, вставленной в дисковод А: (на загрузочной дискете этот сектор содержит загрузчик операционной системы). Если в дисковод вставлена системная дискета, с нее считывается загрузчик и ему передается управление. Если дискета не системная, т.е. не содержит загрузочной записи, на экран выдается сообщение с просьбой заменить дискету. Если же дискеты в дисководе А: вообще нет, то BIOS читает основную загрузочную запись диска С: (Master Boot Record). Обычно это самый первый сектор на диске. Управление передается загрузчику, кото­рый находится в этом секторе. Загрузчик анализирует содержимое таблицы разделов (она также находится в этом секторе), выбирает активный раздел и читает загрузочную запись этого раздела. Загрузочная запись активного раздела (Boot Record) аналогична загрузочной записи, находящейся в первом секторе системной дискеты. Загрузочная запись активного раздела считывает с диска файлы IO.SYS и MSDOS.SYS (именно в этом порядке). Затем считываются и загружаются резидентные драйверы. Начинается формирование свя­занного списка драйверов устройств. Анализируется содержимое файла CONFIG.SYS, загружаются описан­ные в этом файле драйверы. Сначала загружаются драйверы, описанные параметром DEVICE, затем (только в MS-DOS версии 4.х и 5.0) резидентные программы, указанные операторами INSTALL. После этого считы­вается командный процессор и ему передается управление. Командный процессор состоит из трех частей - резидентной, инициализирующей и транзитной. Первой загружается резидентная часть. Она обрабатывает прерывания INT 22H, INT 23H, INT 24H, управ­ляет загрузкой транзитной части. Эта часть командного процессора обрабатывает ошибки MS-DOS и выдает запрос пользователю о действиях при обнаружении ошибок. Инициализирующая часть используется только в процессе загрузки операционной системы. Она оп­ределяет начальный адрес, по которому будет загружаться пользовательская программа и инициализирует выполнение файла AUTOEXEC.BAT. Транзитная часть командного процессора располагается в старших адресах памяти. В этой части на­ходятся обработчики внутренних команд MS-DOS и интерпретатор командных файлов с расширением имени.BAT. Транзитная часть выдает системное приглашение (например, А:\>), ожидает ввода команды оператора с клавиатуры или из пакетного файла и организует их выполнение. После загрузки командного процессора и выполнения начальных процедур, перечисленных в файле AUTOEXEC.BAT, подготовка системы к работе завершается.

Вопрос 16. Загрузочный сектор жесткого диска. Структура элементов раздела в таблице разделов диска.

1 физический сектор содержит: Таблицу описания разделов и программу начальной загрузки, предназначенная для проверки таблиц разделов и передачу управления одному из них; Таблица описания разделов содержит 4 элемента, каждый равен 16 байтам; Разделы расположены в обратном порядке со следующим смещением: 1ВЕ; 1СЕ; 1DЕ; 1ЕЕ

Со смещения 1FF расположен код АА55, который является подписью таблицы разделов.Каждый 16-байтовый код содержит следующую информацию: Смещение 01 бт – индикатор начальной загрузки; Смещение 1 бт – признак …….; Смещение 21 бт – начальный сектор; Смещение 31 бт – начальный цилиндр; Смещение 41 бт – системный индикатор; Смещение 51 бт – признак конца; Смещение 61 бт – конечный сектор; Смещение 71 бт – конечный цилиндр; Смещение 84 бт – начальный сектор …..; Смещение 04С бт –количество секторов на диске. Т.о. можно разбить на логические диски.

Смещение 3 8 байт – имя и версия системы. Смещение 0В 2 байта – число байт (512) в секторе. Смещение 0D 1 байт – число секторов на устройстве. Смещение 0Е 2 байта – число резервных секторов. Смещение 13 2 байта – общее число секторов на логическом томе. Смещение 15 1 байт – дескриптор носителя данных. Смещение 16 2 байта – число секторов FAT. Смещение 1А 2 байта – число головок. Смещение 1С 2 байта – число невидимых секторов.

Вопрос 17. Структура загрузочного сектора диска.

Сектор начальной загрузки: идентификатор разработчика; программа-загрузчик; блок параметров; Смещение; Смещение 3 8 байт – имя и версия системы; Смещение 0В 2 байта – число байт (512) в секторе; Смещение 0D 1 байт – число секторов на устройстве; Смещение 0Е 2 байта – число резервных секторов; Смещение 13 2 байта – общее число секторов на логическом томе; Смещение 15 1 байт – дескриптор носителя данных; Смещение 16 2 байта – число секторов FAT; Смещение 1А 2 байта – число головок; Смещение 1С 2 байта – число невидимых секторов.

Вопрос 18. ОС MS-DOS. Форматы исполняемых файлов.

Оператор может запустить два типа программ (если не считать командных файлов, которые, вообще говоря, не являются программами, состоящими из машинных кодов) - программы, имеющие расширение имени.COM и.EXE. Эти файлы имеют различный формат и загружаются по-разному, однако, когда загрузка завершена, в памяти компьютера эти два типа программ выглядят совершенно одинаково.

COM-файл - это двоичный образ Вашей программы, состоящий из кода и данных. То есть это файл, содержащий программу в "чистом" виде. Такая программа (как и EXE-программа) может загружаться в любое место памяти. DOS выполняет ее привязку к физическим адресам при загрузке с помощью установки сегментных регистров. Существенным ограничением COM-программы является то, что она не может занимать больше одного сегмента (соответственно, файл.COM не может быть по длине больше 64К). Программа в формате EXE может иметь любой размер. В самом начале файла программы содержится заголовок (у COM-файла заголовка нет). Этот заголовок используется операционной системой в процессе загрузки программы в память для правильной установки сегментных регистров. Заголовок EXE-файла нужен только при загрузке; когда программа загружена и готова к работе, самого заголовка уже нет в памяти. Заголовок EXE-файла состоит из форматированной зоны и таблицы расположения сегментов (Relocation Table).

Вопрос 19. Структура PSP.

В области памяти после резидентной части, выполняющей загрузку программ, строится префикс Программного Сегмента (см. таблицу ниже). PSP представляет собой 100h – байтовую область памяти, вслед за которой загружается программа. В эту область заносятся системные данные, которые бывает полезно считывать; в частности, по адресу 80h в PSP заносится командная строка, сопутствующая программе. Структура PSP

Смещение - Размер Содержимое
0 – 2 Команда завершения int 20h
2 – 2 Номер последнего доступного блока в памяти (номер параграфа)
4 – 1 Зарезервировано
5 – 5 Команда вызова диспетчера функций DOS
0А – 4 Адрес завершения программы
0Е – 4 Адрес обработчика критических ошибок
16 – 16 Зарезервировано для использования DOS
2С – 2 Адрес сегмента окружения DOS
2Е – 2Е Зарезервировано для использования DOS
5С – 10 Используется для обработки первого параметра командной строки с помощью FCB (file control block) (блок управления файлом)
6С – 14 Используется для обработки второго параметра командной строки с помощью FCB (file control block) (блок управления файлом)
80 – 1 Длина строки параметров (используется так же, как смещение начала области обмена данных с диском (DTA – disk transfer area) по умолчанию)
81 – 7F Содержимое командной строки
  Начинается размещение программы

В PSP программа со смещением 2F находится 4-байтовая область, в которую DOS помещает указатель стека при обращении к системным функциям, так как при выполнении ряда системных выховов используется внутренний стек DOS.

При пошаговом выполнении обработку int 21h первым выполняет отладчик, чей указатель будет сохранен в активном PSP.

Вопрос 20. Прерывания. Прерывание – это действие, производимое компьютером для выполнения системных и сервисных функций во время работы основного процесса.

3 этапа: Приостановление выполнения основного процесса; Обработка прерывания; Возврат управления основному процессу;

2 вида прерываний: Аппаратное; Программное (функцию пишем сами, поддерживает система). Программные прерывания удобно использовать для организации доступа к отдельным, общим для всех программ модулям. Например, программные модули операционной системы доступны прикладным программам именно через прерывания, и нет необхо­димости при вызове этих модулей знать их текущий адрес в памяти. Прикладные программы могут сами устанавливать свои обработ­чики прерываний для их последующего использования другими программами. Для этого встраиваемые обработчики прерываний должны быть резидентными в памяти. Мы научимся создавать свои программы обработки прерываний и будем говорить об этом при обсуждении резидентных программ. Аппаратные прерывания вызываются физическими устройствами и приходят асинхронно. Эти прерывания информируют систему о событиях, связанных с работой устройств, например о том, что наконец-то завершилась печать символа на принтере и не­плохо было бы выдать следующий символ, или о том, что требуемый сектор диска уже прочитан, его содержимое доступно программе. Использование прерываний при работе с медленными внешними устройствами позволяют совместить ввод/вывод с обработкой данных в центральном процессоре и в результате повышает общую производительность системы. Некоторые прерывания (первые пять в порядке номеров) зарезервированы для использования самим центральным процессо­ром на случай каких-либо особых событий вроде попытки деления на ноль, переполнения и т.п. Иногда желательно сделать систему нечувствительной ко всем или отдельным прерываниям. Для этого используют так на­зываемое маскирование прерываний, о котором мы еще будем подробно говорить. Но некоторые прерывания замаскировать нельзя, это немаскируемые прерывания.

Заметим еще, что обработчики прерываний могут сами вызывать программные прерывания, например, для получения доступа к сер­вису BIOS или DOS (сервис BIOS также доступен через механизм программных прерываний).

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

Обработка прерывания может происходить в соответствии с тремя основными схемами.

Сначала вызывается системный обработчик, затем добавленный. Данный способ используется для дополнения систем­ной обработкой какой- либо функции.



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 354; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.195.206 (0.007 с.)