Память разделяется только между программой и операционной системой.
Схемы разделения памяти:
Схемы разделения памяти
Третий вариант используется в MS-DOS. Та часть, которая находится в ПЗУ, часто называется BIOS.
Память просто разделяется на несколько разделов (возможно, не равных). Процессы могут быть разными, поэтому каждому разделу необходим разный размер памяти.
Системы могут иметь:
· общую очередь ко всем разделам
· к каждому разделу отдельную очередь
Распределение памяти с фиксированными разделами
Недостаток системы многих очередей очевиден, когда большой раздел может быть свободным, а к маленькому выстроилась очередь.
Алгоритмы планирования в случае одной очереди:
· поочередный
· выбирается задача, которая максимально займет раздел
Также может быть смешанная система.
В такой системе сначала память свободна, потом идет динамическое распределение памяти.
Распределение памяти динамическими разделами.
Недостатки:
· Сложность
· Память фрагментируется
Перемещаемые разделы
Это один из методов борьбы с фрагментацией. Но на него уходит много времени.
Перемещаемые разделы
Рост разделов
Иногда процессу может понадобиться больше памяти, чем предполагалось изначально.
Рост разделов
Настройка адресов и защита памяти
В предыдущих примерах мы можем увидеть две основные проблемы.
· Настройка адресов или перемещение программ в памяти
· Защита адресного пространства каждой программы
Решение обоих проблем заключается в оснащении машины специальными аппаратными регистрами.
· Базовый (указывает начало адресного пространства программы)
· Предельный (указывает конец адресного пространства программы)
Так как памяти, как правило, не хватает. Для выполнения процессов часто приходится использовать диск.
Основные способы использования диска:
· Свопинг (подкачка) - процесс целиком загружается в память для работы
· Виртуальная память - процесс может быть частично загружен в память для работы