Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OS.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
355 Кб
Скачать
☆

1 И 2 примерно равны по исп памяти, но 1 быстрее

Связывание адресов.

Можно на этапе Компиляции (см этапы -> компил и редакт) и Загрузки(Этапы -> загрузка)

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

Оверлейная структура программ.

Применяется если размер лок адр пространства процесса > размера выделенного ему раздела памяти, или программа велика относительно физического адресного пространства. Использыет свойство локальности основной памяти. Части такой прогр хранятся на диске! как образы памяти и считываются диспетчером оверлеев входящем в систему поддержки времени выполнения прогр. Совокупность файлов исполняемой прогр дополняется файлом описывающим дерево вызовов внутри программы. Привязка к памяти происходит в момент очередной загрузки требуемой части программы. Решением проблемы загрузки перекрывающихся частей программы является порождение редактором связей специальных команд которые вызывают загрузчик при обращении к отсутствующему модулю.

Защита памяти.

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

Мультипрограммирование с переменными разделами.

Базовые принципы.

Каждой вновь поступающей задаче выделяется необходимое количество памяти.После окончания работы программы занятая область освобождается и со временем в памяти чередуются занятые и свободные участки. Смежные свободные участки объединяются.Выделение раздела происходит по одной из трех стратегий (первый подходящий, наиболее подходящий, наименее подходящий). После загрузки процесса в выбранный участок регистрируется изменение в состоянии памяти. Свзяывание адресов осуществл в момент загрузки и выполнения.

Стратегии выделения памяти.

Учет свободных участков памяти.

Битовые массивы.

При работе с памятью разделенной на фиксированные блоки.Ведется битовая карта, где кадому блоку соответствует один бит, равный 0 если блок свободен и 1 если занят.Размер блока выдирается с учетом:

• Меньшие блоки требую увеличения битового массива

• Большие блоки уменьшают битовую карту но увеличивают внутреннюю фрагментацию

Обычный размер блока не больше нескольких Кб.Объединение свободных участков выполняется автоматически. Минус – большой объем памяти для битового массива.

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

Поддерживается связный список занятых и свободных фрагментов. В каждой записи информация свободна/занята область, длина и указатель на след запись. В случае изменение сост памяти в записи меняются поля занятости и происходит слияние соседних свободных областей.

Возможна поддержка отдельных списков учета сободных и занятых разделов, поиск происходит в «свободном» списке. Однако увеличение скорости при размещении процесса в памяти, сопровождается замедлением при освобождении памяти, тк информацию об удалении фрагмента нужно вырезать из «занятого» списка и вставить в «свободный».

Фрагментация.

Внешняя фрагментация за счет не используемого пространства мд разделами процессов (до 30%). Решение проблемы – сегментация физ адр пространства процесса. Адр пространство разбивается на фрагменты, что позвонляет выделять разделы в произвольных доступных местах памяти. Но до конца проблема не решается тк число возможных фрагментов ограничено. Др способ борьбы – сжатие – перемещение занятых участков в сторону возр/убыв адресов.но процедура требует выгрузки на диск и послед загрузки в память в другой адрес.

Связывание адресов.

Происходит на этапах Загрузки или Выполнения, если процесс может перемещаться в памяти.Загрузка – чаще используется относительная адресация, перемещение процесса в памяти требует модификации всех физических адресов.Выполнение – используется схема в которой адрес разбивается на базу и смещение тк она менее трудоемка при перемещении программы.

Свопинг.

Возможна ситуация когда память не в состоянии содержать все процессы. Свопинг – перемещение процессов из основной памяти на диск и обратно ЦЕЛИКОМ. Он не имеет непосредственного отношения к управлению памятью он связан с подсистемой планирования процессов. Оптимизация свопинга может быть связана с выгрузкой процессов реально не функционирующих. Кроме того выгрузка осуществляется в специальное место для свопинга, те быстрее чем через стандартную файловую систему,тк пространство в области подкачки выделяется большими блоками а поиск файлов не используется. Позволяет регулировать текущую степень многозадачности вычислительной системы и разгружать основную память в случае возникновения ее дефицита, приводящего к снижению производительности системы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]