Распределение памяти с фиксированными разделами.
Память просто разделяется на несколько разделов (возможно, не равных). Процессы могут быть разными, поэтому каждому разделу необходим разный размер памяти. Системы могут иметь: · общую очередь ко всем разделам · к каждому разделу отдельную очередь Распределение памяти с фиксированными разделами Недостаток системы многих очередей очевиден, когда большой раздел может быть свободным, а к маленькому выстроилась очередь. Алгоритмы планирования в случае одной очереди: · поочередный · выбирается задача, которая максимально займет раздел Также может быть смешанная система. Распределение памяти динамическими разделами В такой системе сначала память свободна, потом идет динамическое распределение памяти. Распределение памяти динамическими разделами. Недостатки: · Сложность · Память фрагментируется Перемещаемые разделы Это один из методов борьбы с фрагментацией. Но на него уходит много времени. Перемещаемые разделы Рост разделов Иногда процессу может понадобиться больше памяти, чем предполагалось изначально. Рост разделов Настройка адресов и защита памяти В предыдущих примерах мы можем увидеть две основные проблемы. · Настройка адресов или перемещение программ в памяти · Защита адресного пространства каждой программы Решение обоих проблем заключается в оснащении машины специальными аппаратными регистрами. · Базовый (указывает начало адресного пространства программы) · Предельный (указывает конец адресного пространства программы) Методы с использованием внешней памяти (свопинг и виртуальная память) Так как памяти, как правило, не хватает. Для выполнения процессов часто приходится использовать диск.
Основные способы использования диска: · Свопинг (подкачка) - процесс целиком загружается в память для работы · Виртуальная память - процесс может быть частично загружен в память для работы Свопинг (подкачка) При нехватке памяти процессы могут быть выгружены на диск. т.к. процесс С очень большой, процесс А был выгружен временно на диск, Как мы видим процесс А второй раз загрузился в другое адресное пространство, должны создаваться такие условия, которые не повлияют на работу процесса. Свопер - планировщик, управляющий перемещением данных между памятью и диском. Этот метод был основным для UNIX до версии 3BSD. Управление памятью с помощью битовых массивов Вся память разбивается на блоки (например, по 32бита), массив содержит 1 или 0 (занят или незанят). Чтобы процессу в 32Кбита занять память, нужно набрать последовательность из 1000 свободных блоков. Такой алгоритм займет много времени. битовые массивы и списки Управление памятью с помощью связных списков Этот способ отслеживает списки занятых (между процессами) и свободных (процессы) фрагментов памяти. Запись в списке указывает на: · занят (P) или незанят (H) фрагмент · адрес начала фрагмента · длину фрагмента Четыре комбинации соседей для завершения процесса X Алгоритмы выделения блока памяти: · первый подходящий участок · самый подходящий участок (медленнее, но лучше использует память) Виртуальная память Основная идея заключается в разбиении программы на части, и в память эти части загружаются по очереди. Программа при этом общается с виртуальной памятью, а не с физической. Диспетчер памяти преобразует виртуальные адреса в физические.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|