- •Раздел 5. Управление памятью в операционных средах
- •5.1. Классификация способов организации памяти
- •5.2. Управление физической памятью
- •5.2.1. Однозадачные системы
- •5.2.1.1. Простые и оверлейные системы
- •5.2.1.2. Сегментация памяти
- •5.2.1.3. Блочная организация памяти
- •5.2.1.4. Стратегии управления памятью (введение)
- •5.2.2. Многозадачные системы
- •5.2.2.1. Фиксированные разделы (неперемещаемые программы)
- •5.2.2.2. Фиксированные разделы (перемещаемые программы)
- •5.2.2.3. Переменные разделы
- •5.2.2.4. Свопинг
- •5.3. Управление виртуальной памятью
- •5.3.1. Общая характеристика виртуальной памяти
- •5.3.1.1. Определения виртуальной памяти и иерархия видов памяти
- •5.3.1.2. Особенности виртуальной памяти
- •5.3.1.3. Механизм отображения виртуальных адресов в физические
- •5.3.2. Страничная организация виртуальной памяти
- •5.3.2.1. Одноуровневая страничная организация
- •5.3.2.2. Двухуровневая страничная организация
- •5.3.2.3. Совместное использование страниц процессами
- •5.3.3. Сегментная организация виртуальной памяти
- •5.3.3.1. Одноуровневая сегментная организация
- •5.3.3.2. Комбинированная сегментно-страничная организация (вместе с таблицей процессов)
- •5.3.4. Стратегии управления виртуальной памятью
- •5.3.4.1. Главные задачи управления виртуальной памятью
- •5.3.4.2. Стратегии решения второй главной задачи
- •5.3.4.3. Стратегии выталкивания с постоянным распределением
- •1. Выталкивание случайной страницы.
- •2. Выталкивание первой пришедшей страницы.
- •3. Выталкивание реже всего используемой страницы.
- •4. Выталкивание дольше всех не использовавшейся страницы.
- •5.3.4.4. Стратегии выталкивания с переменным распределением
- •5.4. Управление памятью в современных ос
- •5.4.1. Архитектура управления памятью
- •5.4.2. Защита памяти
- •5.4.3. Распределение памяти
- •5.4.3.1. Типы программных интерфейсов для распределения памяти
- •5.4.3.2. Переносимые интерфейсы
- •5.4.3.3. Специфические интерфейсы
- •5.4.4. Совместное использование памяти
- •5.4.4.1. Способы совместного использования памяти
- •5.4.4.2. Пример реализации разделяемой памяти в Win32.
5.2.2.2. Фиксированные разделы (перемещаемые программы)
Для устранения недостатка, связанного с жестким закреплением программ за разделами, программы транслируются как перемещаемые и поэтому могут загружаться в любой подходящий раздел.
--------------------- ----------
| ЦП | | ОС |
|-------------------| ----------
||Регистр границы 1||-- | Р1 |<--
|-------------------| ->---------- |
|-------------------| | Р2 | | ----- Одна
||Регистр границы 2||-- | |<----||| очередь
|-------------------| ->---------- | ----- ко всем
--------------------- | | | разделам
ЦП выполняет задание | Р3 |<-|
раздела 2 ----------
Защита памяти осуществляется использованием двух регистров границ - верхней и нижней границ.
5.2.2.3. Переменные разделы
В системе с переменными разделами каждой задаче предоставляется столько памяти, сколько ей требуется, и задачи находятся в памяти до завершения.
----------- При завершении задачи в памяти
| ОС | Очередь задач появляется "дыра".
----------- -----------
| Т1 |<--Т5|Т6|Т7| Существует два способа устранения
| | ----------- этого недостатка:
----------- - слияние дыр;
| Т2 | - сборка мусора.
-----------
| Т3 | Сборка мусора - серьезная проблема, т.к.
| | - задачи должны быть перемещаемыми;
----------- - задачи должны приостанавливаться во время
| Т4 | перемещения.
|---------|
|своб.обл.|
|---------|
----------- ----------- -----------
| ОС | | ОС | | ОС |
----------- ----------- -----------
| Т1 | | Т1 | | Т1 |
| | | | | |
----------- ----------- -----------
|/////////| |/////////| | Т4 |
----------- Слияние |/////////| -----------
|/////////| дыр |/////////| Сборка |/////////|
|/////////| |/////////| мусора |/////////|
----------- ----------- |/////////|
| Т4 | | Т4 | |/////////|
----------- ----------- |/////////|
|/////////| |/////////| |/////////|
----------- ----------- -----------
5.2.2.4. Свопинг
Мы уже рассмотрели с вами мультипрограммирование с разделением времени. Такое же мультипрограммирование можно рассмотреть и относительно памяти машины.
В мультипрограммировании с разделением времени программа снимается с процессора по прерыванию от таймера или по запросу примитива ядра.
В мультипрограммировании с разделением памяти программа не только снимается с процессора, но и выгружается из памяти. А с диска загружается новая программа для выполнения в течение следующего кванта времени. Это и есть свопинг.
----------
| ОС | Образы задач, хранящиеся на диске.
---------- ---------- ---------- ----------
|Область | | А | | В | | С |
|свопинга| | | | | | |
| | | | | | |--------|
| | |--------| | |
| | |--------|
----------
Недостатком свопинга является наличие потерь времени на перезагрузку задач с диска.
Недостаток устраняют путем частичной перезагрузки только изменяющейся части программы. На практике такой частью является область данных программы.