Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
360.98 Кб
Скачать

13. Управление оперативной памятью. Способы защиты оперативной памяти процесса от случайного или злонамеренного вторжения из другого процесса. Сегментная организация памяти. Виртуальная память.

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

2 основных вида организации виртуальной памяти — сегментная и страничная организация.

При сегментной организации виртуальная память, используемая программой, разбивается на части (сегменты). Разбиение выполняется либо программистом (язык ассемблера), либо компилятором. Размеры сегментов — не больше максимального размера, используемого в данной архитектуре. Разбиение обычно производится на логически осмысленные части (сегмент данных, сегмент кода, сегмент стека).

Т. о., при сегментной организации у программы нет единого линейного адресного пространства. Виртуальный адрес состоит из двух частей: селектора сегмента и смещения от начала сегмента. Селектор сегмента — индекс в таблице сегментов процесса. Такая таблица содержит для каждого сегмента его размер, режим доступа (только чтение или возможна запись), флаг присутствия сегмента в памяти. Если сегмент находится в памяти, то в таблице хранится его базовый адрес (адрес физической памяти, соответствующий началу сегмента). Отсутствие сегмента означает, что его данные временно вытеснены на диск и хранятся в файле подкачки (swap file).

При обращении к виртуальному адресу «железом» выполняется преобразование пары «сегмент, смещение» в физический адрес: базовый адрес из таблицы + смещение из виртуального адреса. По физическому адресу происходит обращение к памяти.

Виртуальная память — технология, разработанная с целью увеличения общего объема памяти, организации и защиты множества адресных пространств памяти, автоматизации перемещения машинного кода и данных между основной памятью компьютера и вторичным хранилищем. [+ вопрос № 14.]

14, 13, 15. Управление оперативной памятью. Понятие виртуальной памяти. Поддержка вп со стороны процессора (на примере процессора Intel x86). Перевод виртуального адреса в адрес реальной памяти.

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

Эта технология имеет аппаратную поддержку на всех современных процессорах.

В случае расположения данных на внешних ЗУ память мб представлена спец. разделом на ЖД (partition) или отдельным файлом на обычном разделе диска (файл подкачки).

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

Применение механизма виртуальной памяти позволяет:

  • Упростить адресацию памяти клиентским ПО.

  • Рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти).

  • Изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).

В случае расположения данных виртуальной памяти на внешних запоминающих устройствах — доступ к памяти замедляется (по сравнению с ОЗУ).

Процессор Intel x86 (Intel Architecture, IA, IA-32).

32-битный адрес разделен на участки: . — номер виртуальной страницы. 12 — смещение внутри страницы (offset).

При использовании линейной адресации (доступна только в защищенном режиме) 32-битный адрес делится на 3 части:

Номер записи в каталоге страниц (номер таблицы страниц, page directory) — биты 31-22 (10). Одна запись из каталога страниц определяет 4 МБ адресного пространства.

Номер записи в таблице страниц (номер страницы в таблице страниц, page table) — биты 21-12 (10). Одна запись из таблицы страниц определяет 4 КБ адресного пространства.

Смещение в странице — биты 11-0 (12).

Обе эти структуры представляют собой таблицы элементов каталога и таблицы страниц (Page Directory Entry, PDE и Page Table Entry, PTE), страницы памяти по 4 КБ.

Структура PTE (элемента таблицы страниц):

  • Номер реальной страницы.

  • Бит доступности.

  • Бит изменений (данные об изменении страницы).

  • Права пользователя (ReadOnly, ReadWrite).

  • Файловый дескриптор (маленькое целое число — если страница не в памяти, то где ее искать).

Физические адреса соответствуют номерам ячеек оперативной памяти, где в действительности расположены или будут расположены переменные и команды. Переход от виртуальных адресов к физическим может осуществляться 2 способами. В первом случае замену выполняет специальная системная программа — перемещающий загрузчик. Исходные данные: начальный адрес физической памяти, в которую предстоит загружать программу; информация, предоставленная транслятором, об адресно-зависимых константах программы. На основании исходных данных загрузчик выполняет загрузку программы, совмещая ее с заменой виртуальных адресов физическими.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]