Операционная система OS2 Warp



Управление памятью в первых версиях IBM OS/2 и в стандартном режиме Microsoft Windows


С появлением процессора i80286, способного работать не только в реальном, но и в защищенном режиме, появилась возможность создания более совершенной системы управления памятью.

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

Появилось понятие "логический адрес ". Когда программа адресуется к памяти в защищенном режиме, она не указывает сегмент и смещение, вместо этого она пользуется логическим адресом.

Логический адрес состоит из двух компонент - селектора и смещения.

Селектор служит индексом в таблицах дескрипторов, содержащих помимо другой информации 24-разрядные базовые адреса сегментов. Дескриптор описывает сегмент памяти и содержит не только базовый адрес, но и другие характеристики, такие, например, как размер сегмента и поле доступа. Для получения 24-разрядного физического адреса базовый адрес складывается с 16-разрядным смещением (рис. 1.9).

IMG00009.GIF (3591 bytes)

Рис. 1.9. Адресация памяти в защищенном режиме для процессора i80286 (упрощенная схема)

Эта схема адресации памяти была использована в первых версиях операционной системы IBM OS/2 и в стандартном режиме работы Microsoft Windows.

Мы уже говорили, что помимо базового адреса таблица дескрипторов содержит и другую информацию.

Создавая дескриптор, операционная система описывает в нем размер памяти. Если программа, адресуя блок памяти с помощью данного дескриптора, попытается выполнить чтение или запись за пределами сегмента, произойдет прерывание и работа программы будет остановлена.


Содержание  Назад  Вперед