Friday, May 18th

Last update12:13:00 PM GMT

Вы находитесь на: FreeBSD Управление памятью Управление памятью ядра

Управление памятью ядра

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

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

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


Похожие:
Еще по теме:
Советуем прочитать:

Сейчас 53 гостей онлайн

Реклама на сайте: