Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Module_1_answers_with_practice.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

7. Формування фізичної адреси з логічної адреси для сегментної та сторінкової схем організації пам’яті Страничная организация

Страничная организация (paging) – стратегия управления памятью, при которой:

  • логическая память делится на страницы – смежные области одинаковой длины, обычно – степень 2 (например, 512 слов);

  • физическая память, соответственно, делится на фреймы такого же размера;

  • распределение логической памяти происходит с точностью до страницы;

  • физическая память процесса может не быть непрерывной;

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

При страничной организации ОС хранит информацию обо всех свободных фреймах. Поскольку память выделяется с точностью до страницы, возможна внутренняя фрагментация. Цели страничной организации – обеспечить возможность не смежного распределения физической памяти для процессов, а также расширить пространство логической памяти. При страничной организации логический адрес обрабатывается системой особым образом – как структура (p, d): его старшие разряды обозначают номер страницы, младшие – смещение внутри страницы. Номер страницы (p) трактуется как индекс в таблице страниц, соответствующий элемент которой содержит базовый адрес начала страницы в физической памяти. Смещение внутри страницы (d) добавляется к ее базовому адресу. В результате формируется физический адрес, передаваемый в устройство управления памятью.

Сегментная организация

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

Логический адрес (s, d), где s – номер сегмента, d – смещение внутри сегмента, обрабатывается следующим образом. По номеру сегмента s происходит обращение в таблицу сегментов, и определяется база сегмента – его начальный адрес в основной памяти. Смещение d сравнивается с длиной (границей) сегмента. Если оно меньше, то оно складывается с базой, и в результате получается физический адрес, по которому и происходит обращение в память. Если смещение больше или равно базе, происходит прерывание – ошибка адресации. На схеме не показана еще одна проверка – для номера сегмента s проверяется, что он не превосходит значения регистра длины таблицы сегментов, иначе – прерывание.

Ссылки:

http://gendocs.ru/v31765/?cc=8

http://gendocs.ru/v31765/?cc=7

8. Принципи роботи vmm

VMM (англ. Virtual Machine Manager) — ядро операционной системы Windows версий 2.1/386, 3.x, 95, 98 и Me.

Архитектура

32 - разрядное, никак не совместимое с процессорами младше 386, ядро операционной системы. Поддерживало страничную виртуальную память с использованием таблиц страниц и прерывания page fault (появилось в 386). Поддерживало вытесняющую многозадачность между процессами («виртуальными машинами», ибо первоначально каждый процесс был экземпляром виртуальной машины DOS, кроме того, в одном из процессов VMM выполнялись все приложения Windows).

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

Реализовано на ассемблере, который также предлагался и как язык разработки дополнительных модулей (так называемые VxD). Написание VxD на C требовало массивных оберток.

Обеспечивало ряд функций для VxD:

  • богатый набор функций по работе со страничной памятью, в том числе возможность отобразить принадлежащий VxD блок памяти в адресное пространство виртуальной машины DOS (эмуляция видеопамяти и так далее).

  • низкоуровневые примитивы синхронизации — ожидание/пробуждение, нечто вроде condvar

  • установка перехватов на обращения к портам — при исполнении машинных команд IN/OUT в виртуальной машине управление передавалось в определенную процедуру одного из VxD.

  • установка точек останова — при попадании исполнения в виртуальной машине на точку останова управление передавалось в определенную процедуру одного из VxD.

http://ru.wikipedia.org/wiki/VMM

http://www.regatta.cs.msu.su/doc/usr/share/man/info/ru_RU/a_doc_lib/aixbman/admnconc/vmm_overview.htm

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