- •Раздел 5. Управление памятью в операционных системах
- •5.1. Классификация способов организации памяти
- •5.2. Управление физической памятью
- •5.2.1. Однозадачные системы
- •5.2.2. Многозадачные системы
- •5.3. Управление виртуальной памятью
- •5.3.1. Общая характеристика виртуальной памяти
- •5.3.2. Страничная организация виртуальной памяти
- •5.3.3. Сегментная организация виртуальной памяти
- •5.3.4. Стратегии управления виртуальной памятью
- •1. Выталкивание случайной страницы
- •2. Выталкивание первой пришедшей страницы
- •3. Выталкивание реже всего используемой страницы
- •4. Выталкивание дольше всех не использовавшейся страницы
- •5.4. Совместное использование памяти
- •Закрытие объекта:
- •Раздел 5
5.2.2. Многозадачные системы
В этих системах физическая память разделяется между программами. Т. е. создаются РАЗДЕЛЫ, выделяемые для программ.
Разделы могут быть фиксированными и переменными по размеру.
Фиксированные разделы (неперемещаемые программы)
Существует два варианта использования фиксированных разделов:
Фиксированные разделы и неперемещаемые программы;
Фиксированные разделы и перемещаемые программы.
В первом случае программы привязываются к одному из разделов и могут выполняться только в своих разделах.
---------- В свободные разделы не могут
| ОС | загружаться программы, при-
---------- ----- вязанные к другим разделам.
| Р1 |<--||| Очередь к Р1 Поэтому может оказаться, что,
---------- ----- например, есть большая
| Р2 | ----- очередь к разделу Р1 и нет
| |<--||| Очередь к Р2 очереди к разделу Р3.
---------- ----- Если иметь специальный про-
| | ----- цессор ввода/вывода, то
| Р3 |<--||| Очередь к Р3 можно одновременно выполнять
| | ----- программу в одном разделе и
---------- перезагружать программу в
другом разделе.
Фиксированные разделы (перемещаемые программы)
Для устранения недостатка, связанного с жестким закреплением программ за разделами, программы транслируются как перемещаемые и поэтому могут загружаться в любой подходящий раздел.
--------------------- ----------
| ЦП | | ОС |
|-------------------| ----------
||Регистр границы 1||-- | Р1 |<--
|-------------------| ->---------- |
|-------------------| | Р2 | | ----- Одна
||Регистр границы 2||-- | |<----||| очередь
|-------------------| ->---------- | ----- ко всем
--------------------- | | | разделам
ЦП выполняет задание | Р3 |<-|
раздела 2 ----------
Защита памяти осуществляется использованием двух регистров границ - верхней и нижней границ.
Переменные разделы
В системе с переменными разделами каждой задаче предоставляется столько памяти, сколько ей требуется, и задачи находятся в памяти до завершения.
----------- При завершении задачи в памяти
| ОС | Очередь задач появляется «дыра».
----------- -----------
| Т1 |<--Т5|Т6|Т7| Существует два способа устранения
| | ----------- этого недостатка:
----------- - слияние дыр;
| Т2 | - сборка мусора.
-----------
| Т3 | Сборка мусора - серьезная проблема, т. к.
| | - задачи должны быть перемещаемыми;
----------- - задачи должны приостанавливаться во время
| Т4 | перемещения.
|---------|
|своб.обл.|
|---------|
----------- ----------- -----------
| ОС | | ОС | | ОС |
----------- ----------- -----------
| Т1 | | Т1 | | Т1 |
| | | | | |
----------- ----------- -----------
|/////////| |/////////| | Т4 |
----------- Слияние |/////////| -----------
|/////////| дыр |/////////| Сборка |/////////|
|/////////| |/////////| мусора |/////////|
----------- ----------- |/////////|
| Т4 | | Т4 | |/////////|
----------- ----------- |/////////|
|/////////| |/////////| |/////////|
----------- ----------- -----------
Свопинг
Мы уже рассмотрели с вами мультипрограммирование с разделением времени. Такое же мультипрограммирование можно рассмотреть и относительно памяти машины.
В мультипрограммировании с разделением времени программа снимается с процессора по прерыванию от таймера или по запросу примитива ядра.
В мультипрограммировании с разделением памяти программа не только снимается с процессора, но и выгружается из памяти. А с диска загружается новая программа для выполнения в течение следующего кванта времени. Это и есть свопинг.
----------
| ОС | Образы задач, хранящиеся на диске.
---------- ---------- ---------- ----------
|Область | | А | | В | | С |
|свопинга| | | | | | |
| | | | | | |--------|
| | |--------| | |
| | |--------|
----------
Недостатком свопинга является наличие потерь времени на перезагрузку задач с диска.
Недостаток устраняют путем частичной перезагрузки только изменяющейся части программы. На практике такой частью является область данных программы.