Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ОС.doc
Скачиваний:
5
Добавлен:
17.09.2019
Размер:
429.57 Кб
Скачать

Вопрос 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

Содержимое командной строки

100

Начинается размещение программы

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

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