Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 21.2.doc
Скачиваний:
13
Добавлен:
17.02.2017
Размер:
87.55 Кб
Скачать

Странично-сегментное распределение

Как видно из названия, данный метод представляет собой комбинацию страничного и сегментного распределения памяти и, вследствие этого, сочетает в себе достоинства обоих подходов.

Рис. 10. Схема преобразования виртуального адреса в физический для сегментно-страничной организации памяти

Виртуальное пространство процесса делится на сегменты, а каждый сегмент в свою очередь делится на виртуальные страницы, которые нумеруются в пределах сегмента. Оперативная память делится на физические страницы. Загрузка процесса выполняется операционной системой постранично, при этом часть страниц размещается в оперативной памяти, а часть на диске. Для каждого сегмента создается своя таблица страниц, структура которой полностью совпадает со структурой таблицы страниц, используемой при страничном распределении. Для каждого процесса создается таблица сегментов, в которой указываются адреса таблиц страниц для всех сегментов данного процесса. Адрес таблицы сегментов загружается в специальный регистр процессора, когда активизируется соответствующий процесс. На Рис.10 показана схема преобразования виртуального адреса в физический для данного метода.

Свопинг

Разновидностью виртуальной памяти является свопинг.

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

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

Контрольные вопросы

  1. Что такое виртуальная память?

  2. Для чего нужно преобразование памяти? Какие существуют этапы такого преобразования и какими системами они выполняются?

  3. От чего зависит размер виртуальной памяти? Может ли он отличаться от размера памяти физической? Как именно?

  4. Каковы достоинства и недостатки простого непрерывного распределения памяти?

  5. Может ли при мультипрограммном режиме использоваться аналог простого непрерывного распределения для каждой из помещённых в память программ?

  6. Для чего могут использоваться оверлейные структуры? В каких ОС они применяются – в однопрограммных или мультипрограммных?

  7. Какое из преобразований более эффективно – страничное или сегментное?

  8. Какое из преобразований вызывает большую фрагментацию памяти и почему?

  9. Каковы недостатки сегментного преобразования памяти?

  10. Какие алгоритмы существуют для размещения задачи в памяти? Какой из них эффективнее – размещение задачи в самом подходящем участке или в самом неподходящем и почему?

  11. Для чего может потребоваться выталкивание страниц из памяти и куда они при этом попадают?

  12. Какой из алгоритмов вталкивания работает эффективнее – вталкивание по запросу или с упреждением – и почему?

  13. В каком случае возникает явление пробуксовки и каковы методы борьбы с ним?

  14. Как организована защита страниц в мультипрограммных системах?