Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС_ответы.doc
Скачиваний:
43
Добавлен:
27.10.2018
Размер:
21.59 Mб
Скачать

23. Підсистема керування оперативної пам’яті. Організація та принципи управління.

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

Одна из основных функций подсистемы управления памятью – это планирование памяти. При планировании памяти в ней выделяются следующие области:

Область 1. Специальная область, выделяемая аппаратным средствам для регистров, векторов прерываний и т.д.

Область 2. Область, выделяемая постоянным резидентным программам.

Область 3. Область данных для постоянных таблиц, констант и связей между процессами.

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

Область 5. Область для сменных данных, которая может выделяться по мере необходимости для хранения таблиц данных, очередей и т.д.

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

Области 4 и 5 могут быть распределены между несколькими приложениями. В многозадачных и многопользовательских системах ставится задача обеспечения ресурсами памяти все процессы.

При управлении памятью наибольшее распространение получили следующие методы:

1. Динамическое распределение памяти.

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

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

Это можно исправить путем перегруппировки данных, однако это требует непроизводительного перемещения процессов в памяти. Таким образом, если перегруппировку выполнять при каждом запросе, то на эту процедуру тратится много времени. Если эту процедуру выполнять периодически, то непроизводительно расходуется емкость памяти.

2. Разделение памяти на страницы.

Одним из путей выхода является разделение памяти на страницы и предоставление памяти процессам целыми страницами.

3. Использование связанных списков.

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

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

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