Управление памятью с помощью битовых массивов
Вся память разбивается на блоки (например, по 32бита), массив содержит 1 или 0 (занят или незанят).
Чтобы процессу в 32Кбита занять память, нужно набрать последовательность из 1000 свободных блоков.
Такой алгоритм займет много времени.
битовые массивы и списки
Управление памятью с помощью связных списков
Этот способ отслеживает списки занятых (между процессами) и свободных (процессы) фрагментов памяти.
Запись в списке указывает на:
o занят (P) или незанят (H) фрагмент
o адрес начала фрагмента
o длину фрагмента
Четыре комбинации соседей для завершения процесса X
Алгоритмы выделения блока памяти:
o первый подходящий участок.
o следующий подходящий участок, стартует не сначала списка, а с того места на котором остановился в последний раз.
o самый подходящий участок (медленнее, но лучше использует память).
o самый неподходящий участок, расчет делается на то, что программа займет самый большой участок, а лишнее будет отделено в новый участок, и он будет достаточно большой для другой программы.
Виртуальная память
Основная идея заключается в разбиении программы на части, и в память эти части загружаются по очереди.
Программа при этом общается с виртуальной памятью, а не с физической.
Диспетчер памяти преобразует виртуальные адреса в физические.
Страничная организация памяти
Страницы - это части, на которые разбивается пространство виртуальных адресов.
|
|
Страничные блоки - единицы физической памяти.
Страницы всегда имеют фиксированный размер. Передача данных между ОЗУ и диском всегда происходит в страницах.
Х - обозначает не отображаемую страницу в физической памяти.
Страничное прерывание - происходит, если процесс обратился к странице, которая не загружена в ОЗУ (т.е. Х). Процессор передается другому процессу, и параллельно страница загружается в память.
Таблица страниц - используется для хранения соответствия адресов виртуальной страницы и страничного блока.
Таблица может быть размещена:
o в аппаратных регистрах (преимущество: более высокое быстродействие, недостаток - стоимость)
o в ОЗУ
Типичная запись в таблице страниц
Присутствие/отсутствие - загружена или незагружена в память
Защита - виды доступа, например, чтение/запись.
Изменение - изменилась ли страница, если да то при выгрузке записывается на диск, если нет, просто уничтожается.
Обращение - было ли обращение к странице, если нет, то это лучший кандидат на освобождение памяти.
Информация о адресе страницы когда она хранится на диске, в таблице не размещается.
Для ускорения доступа к страницам в диспетчере памяти создают буфер быстрого преобразования адреса, в котором хранится информация о наиболее часто используемых страниц.
|
|
Страничная организация памяти используется, и в UNIX, и в Windows.
Дата добавления: 2018-08-06; просмотров: 370; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!