Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Распределение памяти с фиксированными разделами.




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

Системы могут иметь:

· общую очередь ко всем разделам

· к каждому разделу отдельную очередь

Распределение памяти с фиксированными разделами

Недостаток системы многих очередей очевиден, когда большой раздел может быть свободным, а к маленькому выстроилась очередь.

Алгоритмы планирования в случае одной очереди:

· поочередный

· выбирается задача, которая максимально займет раздел

Также может быть смешанная система.

Распределение памяти динамическими разделами

В такой системе сначала память свободна, потом идет динамическое распределение памяти.

Распределение памяти динамическими разделами.

Недостатки:

· Сложность

· Память фрагментируется

Перемещаемые разделы

Это один из методов борьбы с фрагментацией. Но на него уходит много времени.

Перемещаемые разделы

Рост разделов

Иногда процессу может понадобиться больше памяти, чем предполагалось изначально.

Рост разделов

Настройка адресов и защита памяти

В предыдущих примерах мы можем увидеть две основные проблемы.

· Настройка адресов или перемещение программ в памяти

· Защита адресного пространства каждой программы

Решение обоих проблем заключается в оснащении машины специальными аппаратными регистрами.

· Базовый (указывает начало адресного пространства программы)

· Предельный (указывает конец адресного пространства программы)

Методы с использованием внешней памяти (свопинг и виртуальная память)

Так как памяти, как правило, не хватает. Для выполнения процессов часто приходится использовать диск.

Основные способы использования диска:

· Свопинг (подкачка) - процесс целиком загружается в память для работы

· Виртуальная память - процесс может быть частично загружен в память для работы

Свопинг (подкачка)

При нехватке памяти процессы могут быть выгружены на диск.

т.к. процесс С очень большой, процесс А был выгружен временно на диск,
после завершения процесса С он снова был загружен в память.

Как мы видим процесс А второй раз загрузился в другое адресное пространство, должны создаваться такие условия, которые не повлияют на работу процесса.

Свопер - планировщик, управляющий перемещением данных между памятью и диском.

Этот метод был основным для UNIX до версии 3BSD.

Управление памятью с помощью битовых массивов

Вся память разбивается на блоки (например, по 32бита), массив содержит 1 или 0 (занят или незанят).

Чтобы процессу в 32Кбита занять память, нужно набрать последовательность из 1000 свободных блоков.

Такой алгоритм займет много времени.

битовые массивы и списки

Управление памятью с помощью связных списков

Этот способ отслеживает списки занятых (между процессами) и свободных (процессы) фрагментов памяти.

Запись в списке указывает на:

· занят (P) или незанят (H) фрагмент

· адрес начала фрагмента

· длину фрагмента

Четыре комбинации соседей для завершения процесса X

Алгоритмы выделения блока памяти:

· первый подходящий участок

· самый подходящий участок (медленнее, но лучше использует память)

Виртуальная память

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

Программа при этом общается с виртуальной памятью, а не с физической.

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

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...