→ Пошук по сайту       Увійти / Зареєструватися

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

Учет использования ресурсов, так же как и удержание объектов, тесно связан с использованием описателей объектов. Если у объекта есть положительный счетчик открытых описателей, это означает, что некоторый процесс использует данный ресурс. Это также означает, что некоторый процесс "платит" за память, занятую объектом. Когда счетчик описателей объекта обнуляется, процесс, перед тем использовавший объект, не должен более за это платить.

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

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

загрузка...
Сторінки, близькі за змістом