Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_з_1.doc
Скачиваний:
15
Добавлен:
01.03.2025
Размер:
2.57 Mб
Скачать

8.2. Организация памяти компьютера ibm pc, работающего под управлением ms dos

Первой операционной системой для компьютеров IBM PC под управлением микро­процессора Intel 8088 была PC DOS, созданная фирмой IBM. Как известно, процессоры 8088/86 могут работать только в реальном режиме адресации! Чуть позже свой вариант опера­ционной системы DOS для IBM PC создала фирма Microsoft. Исторически так сложи­лось, что система MS DOS стала устанавливаться на большинстве персональных компь­ютеров. Поэтому имеет смысл рассматривать программирование для реального режима работы процессора в контексте это операционной системы. Реальный режим адресации часто называют 16-разрядным режимом, поскольку адреса операндов состоят из двух 16-разрядных значений.

Далее рассмотрим основы организации памяти в системе MS DOS, прин­ципы вызова ее функций (они называются прерываниями), а также способы выполнения основных операций ввода-вывода на уровне функций операционной системы. Все про­граммы, написанные для ОС MS DOS, работают в реальном режиме адресации, поскольку в них для обращения к функциям 16-разрядной операционной системы MS DOS исполь­зуется команда int. Программы, написанные для реального режима адресации, имеют перечисленные ниже отличительные черты.

• Они могут адресовать только 1 Мбайт оперативной памяти.

• Пользователь может запустить только одну программу, поскольку операционная система MS DOS не поддерживает многозадачный режим работы.

• Отсутствуют средства зашиты памяти, поэтому пользовательская программа мо­жет случайно "испортить" содержимое участка памяти, принадлежащего операци­онной системе.

• Смешения операндов внутри сегмента являются 16-разрядными.

Поскольку ранние модели микропроцессоров Intel имели низкое быстродействие и небольшой объем адресуемой памяти, компьютер IBM PC стал машиной для работы од­ного пользователя, т.е. персональным компьютером. В нем не было никаких средств за­шиты памяти от изменения со стороны прикладных программ. Для сравнения, использо­вавшиеся в то время мини-компьютеры, имели многопользовательский режим работы и средства зашиты памяти, позволявшие изолировать друг от друга параллельно выпол­няемые прикладные программы. Со временем для IBM PC были разработаны более раз­витые операционные системы, создавшие серьезную альтернативу мини-компьютерам, особенно при объединении персональных компьютеров в сеть.

В реальном режиме младшие 640 Кбайт адресного пространства процессора выделя­ются для использования в качестве ОЗУ как операционной системой, так и прикладными программами. Следом идет область видеопамяти и зарезервированный участок адресного пространства, который может использоваться платами расширения и контроллерами уст­ройств. И наконец, область памяти с адресами C0000h-FFFFFh зарезервирована для раз­мещения системного ПЗУ (постоянное запоминающее устройство). На таблице 8.1 показана упрошенная структура памяти компьютера IBM PC.

Таблица 8.1. Структура памяти в системе MS DOS

FFFFF- F0000h

ПЗУ BIOS

C0000

Зарезервировано

B8000

Текстовый видеобуфер

A0000

Графический видеобуфер

Транзитная часть командного процессора

Область для загрузки транзитных программ

(в т.ч. приложений пользователя )

Резидентная часть командного процессора

Ядро системы MS DOS

Драйвера устройств

00400

Область данных BIOS и DOS

00000-003ffh

Таблица векторов прерываний

В младших адресах памяти размешает­ся ядро операционной системы, первые 1024 байта которого (адреса 00000h-003FFh) за­нимает таблица векторов прерываний (interrupt vector table). Каждый элемент этой таблицы является 32-разрядным адресом памяти, заданным в форме "сегмент-смещение", и на­зывается вектором прерывания. Эти адреса используются центральным процессором при обработке аппаратных и программных прерываний.

Сразу после таблицы векторов прерываний располагается небольшой участок опера­тивной памяти, используемый в качестве области данных системами BIOS и MS DOS. Следом за ними идет область памяти, в которой размешаются драйверы устройств опера­ционной системы. Они обеспечивают управление вводом-выводом для большинства стандартных устройств, таких как клавиатура, дисковые накопители, видеоадаптер, по­следовательные и параллельные порты ввода-вывода. Драйвера устройств загружаются в память из скрытого системного файла io. sys во время начальной загрузки системы MS DOS. За драйверами устройств располагается собственно ядро операционной системы MS DOS, содержащее набор процедур (они называются службами), вызываемых при­кладными программами. Ядро системы также грузится из скрытого системного файла msdos.sys, находящегося на системном загрузочном диске.

За ядром системы MS DOS располагается область файловых буферов операционной системы и память, в которую загружаются нестандартные драйверы устройств. Следом за ними размешается резидентная часть командного процессора, которая загружается из исполняемого файла command, com. Командный процессор выполняет введенные поль­зователем после приглашения MS DOS команды, а также загружает и запускает на вы­полнение программы, хранимые на дисках. Вторая (нерезидентная, или транзитная) часть командного процессора загружается в самый конец оперативной памяти и распо­лагается ниже границы A0000h.

Прикладные программы загружаются в память сразу за резидентной частью команд­ного процессора и могут занимать все адресное пространство вплоть до адреса 9FFFFh. Выполняемая в данный момент программа может затереть транзитную часть командного процессора. Тогда после завершения выполнения программы командный процессор бу­дет автоматически загружен с резидентного диска.