Изложить функции ОС по управлению памятью.

Память является важнейшим ресурсом, требующим тщательного управления со стороны мультипрограммной операционной системы. Распределению подлежит вся оперативная память, не занятая операционной системой. Сама ОС обычно располагается в самых младших или старших адресах памяти. Функциями ОС по управлению памятью являются: - отслеживание свободной и занятой памяти; - выделение и освобождение памяти для процессов; - вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти не достаточны для размещения в ней всех процессов, и возвращение их в оперативную память, когда в ней освобождается место; - настройка адресов программы на конкретную область физической памяти.

29(30). Охарактеризовать варианты распределения памятью.

Все методы управления памятью могут быть разделены на два класса: методы, которые используют перемещение процессов между оперативной памятью и диском, и методы, которые не делают этого

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

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

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

сравнивая размер программы, поступившей на выполнение, и свободных разделов, выбирает подходящий раздел,

осуществляет загрузку программы и настройку адресов.

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

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

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

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

Виртуальная память - это совокупность программно-аппаратных средств, позволяющих пользователям писать программы, размер которых превосходит имеющуюся оперативную память.

Страничное распределение

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

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

Сегментное распределение

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

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

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

Свопинг

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

Наши рекомендации