1. Глоссарий
Анонимный объект — область для временного хранения данных. Страницы аноним-ного объекта при первом обращении заполнены нулями, а измененные страницы будут со-хранены в области подкачки при недостатке памяти. Объект уничтожается, когда на него не остается больше ссылок.
Блок управления памятью (memory management unit, MMU) — аппаратное устройст-во, реализующее задачи по управлению памятью, такие, как преобразование адресов и за-щита памяти.
Виртуальная память — возможность, посредством которой эффективный диапазон адресуемой памяти, предоставляемой процессу, не зависит от размера основной памяти.
Виртуальное адресное пространство — непрерывный диапазон виртуальной памя-ти.
Демон (daemon) — долгоживущий процесс, предоставляющий системные службы.
Область подкачки (swap area) — область вторичного хранилища, которая использу-ется для подкачки.
Опережающая подкачка (prepaging) — упреждающая выборка страниц памяти, ис-пользуемая для снижения числа отказов страниц.
Отказ страницы (page fault) — исключение, генерируемое обращением процесса к странице виртуального адресного пространства этого процесса, которая не помечена как присутсвующая в памяти.
Пейджер (pager) — модуль ядра, отвечающий за предоставление данных для запол-нения страницы и за предоставление места для сохранения этой страницы.
Подкачка по требованию (demand paging) — методика управления памятью, при ко-торой страницы предоставляются процессам по мере необходимости.
Подкачка процессов (swapping) — алгоритм управления памятью, при котором в и из вторичного хранилища перемещаются процессы целиком в случае, когда наблюдается не-хватка основной памяти.
Подкачка страниц (paging) — действия по загрузке страниц выполняющегося про-цесса в основную память, когда к ним производится обращение, или удаление их из памя-ти, когда они замещаются.
Трансляция адреса — механизм, обычно реализованный аппаратно, преобразующий виртуальные адреса в физические адреса памяти.
Рабочий набор — набор страниц виртуального адресного пространства процесса, на которые были сделаны ссылки в течение последних нескольких секунд.
Страница — в управлении памятью единица фиксированного размера, использую-щаяся для деления физического или виртуального адресного пространства.
2. Введение
Одной из главных функций операционной системы является эффективное управле-ние ресурсами памяти. В каждой вычислительной машине имеется высокоскоростная па-мять с произвольным доступом (или оперативная память, RAM). Скорость доступа к опе-ративной памяти сравнима с несколькими тактами процессора. Программы могут напря-мую обращаться к данным или участкам кода, находящимся в оперативной памяти компь-ютера. Микросхемы памяти RAM относительно дороги, а объем памяти всегда недостато-чен. В системе используется большое количество разнообразных вторичных носителей информации для хранения данных, не помещающихся в основную память (обычно это же-сткие диски или серверные машины в сети). Скорость обращения к таким устройствам на несколько порядков ниже по сравнению со скоростью доступа к оперативной памяти, а операции доступа требуют определенных действий от части операционной системы. Под-система управления памятью ядра отвечает за распределение информации между опера-тивной памятью и вторичными устройствами хранения. Ядро взаимодействует напрямую с блоком управления памятью, отвечающим за получение данных из оперативной памяти и помещение данных в нее.
Можно сформулировать ряд возможностей, которые должна обеспечивать подсисте-ма управления памятью современной многозадачной операционной системы:
• выполнение задач, размер которых превышает размер оперативной памяти;
• выполнение частично загруженных в память задач для минимизации времени их запус-ка;
• размещение нескольких задач в памяти одновременно для повышения эффективности использования процессора;
• размещение задачи в произвольном месте оперативной памяти;
• размещение задачи в нескольких различных частях оперативной памяти;
• совместное использование несколькими задачами одних и тех же областей памяти. На-пример, несколько процессов, выполняющих одну и ту же программу, могут совместно использовать сегмент кода.
Все эти возможности могут быть реализованы с помощью виртуальной памяти. Виртуальная память не является бесплатной: для системы со средней загрузкой около 7% процессорного времени приходится на подсистему управления
|