Ядро

Планировщик ULE детали работы

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

Учет использования ресурсов

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

Ограничения ресурсов

Ядро поддерживает также ограничение для каждого процесса некоторых ресурсов. Эти ресурсы включают:

Использование ресурсов

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

Службы ресурсов

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

Приоритеты процессов

Группы процессов и сеансы

Каждый процесс в системе связан с группой процессов. Группу процесса иногда назы­вают заданием (job), она управляется как единое целое такими процессами, как обо­лочка. Некоторые сигналы (например, SIGINT) доставляются всем членам группы процессов, заставляя всю группу в целом приостанавливать или возобновлять выпол­нение, прерываться или завершаться.

Идентификаторы и SETID

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

Идентификаторы (Часть 2)

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

Идентификаторы (Часть 1)

Одной из важных задач операционной системы является реализация механизмов управления доступом. Большинство из этих механизмов управления доступом осно­вывается на представлениях об отдельных пользователях и группах пользователей. Пользователи обозначаются 32-разрядными числами, которые называются идентифи­каторами пользователей (UID). UID назначаются не ядром, а внешним администра­тивным представителем.

Корректировка времени и интервальное время

Часто желательно на всех машинах сети поддерживать одно и то же время. Можно также поддерживать более точное время, чем возможно от базовых часов процессора. Например, без труда доступно оборудование, прослушивающее ряд радиостанций, рассылающих в Соединенных Штатах синхронизирующие сигналы UTC. Когда про­цессы на различных машинах приходят к соглашению относительно общего времени, им нужно изменить часы процессора своего хоста, чтобы согласовать их с сетевым значением времени.

RSS-материал