Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции / Черкасова_тексты_лекций_операционные_системы_2.doc
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
1.12 Mб
Скачать

Лекция 7. Организация оперативной памяти. Структура, основные понятия и принципы виртуализации памяти. Основы логической организации виртуальной оперативной памяти Функции ос по управлению памятью

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

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

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

Функциями ОС по управлению памятью в мультипрограммной системе являются:

  1. отслеживание свободной и занятой памяти;

  2. выделение памяти процессам и освобождение памяти по завершении процессов;

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

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

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

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

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

Защита памяти — это еще одна важная задача операционной системы, которая состоит в том, чтобы не позволить выполняемому процессу записывать или читать данные из памяти, назначенной другому процессу. Эта функция, как правило, реализуется программными модулями ОС в тесном взаимодействии с аппаратными средствами.

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

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

M

M

M

P

M’

P

M’

CM

M”

M’””

M

а б в

Рис. 5. Структуры микропрограммной памяти:

а - процессор (Р) и основная память (М);

б - процессор, основная память и кэш-память (М’);

в - процессор, основная память, кэш-память и микропроцессор с собственной микропрограммной памятью (М”), микропамятью (СМ) для хранения операндов микрокоманд и собственной кэш-памятью (М”’)

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

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

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