Назначенный ресурс
Назначенный ресурс — это в вычислительной технике и системном администрировании логический или физический компонент системы (устройство, область памяти, порт ввода-вывода, канал связи, файл или процесс), который выделен операционной системой, гипервизором или прикладным программным обеспечением для выполнения определённой задачи или обслуживания конкретного запроса. Назначение ресурса подразумевает установление монопольного или разделяемого доступа к нему, а также определение прав и приоритетов использования.
История понятия
Концепция назначенных ресурсов возникла в ранних многозадачных операционных системах 1960-х годов, таких как CTSS (Compatible Time-Sharing System) и OS/360. В эпоху мейнфреймов, когда один компьютер обслуживал множество пользователей, возникла необходимость в механизмах, предотвращающих конфликты при одновременном доступе к общим устройствам (например, к накопителям на магнитных лентах или принтерам). Термин «назначенный ресурс» (assigned resource) впервые был формализован в документации по операционной системе Multics (1969 год), где описывался процесс выделения процессорного времени и памяти для каждого пользовательского процесса.
С развитием архитектуры клиент-сервер и появлением локальных вычислительных сетей в 1980-х годах понятие расширилось на сетевые ресурсы — общие папки, принтеры и базы данных. В современных операционных системах (Windows, Linux, macOS) механизмы назначения ресурсов реализованы на уровне ядра и подсистем управления памятью, процессами и устройствами.
Классификация назначенных ресурсов
По типу физической или логической сущности
- Аппаратные ресурсы: центральный процессор (процессорное время), оперативная память (страницы, сегменты), дисковое пространство (разделы, тома), порты ввода-вывода (USB, COM, LPT), каналы DMA, прерывания (IRQ).
- Программные ресурсы: файловые дескрипторы, сокеты, идентификаторы процессов (PID), семафоры, мьютексы, очереди сообщений, разделяемая память.
- Сетевые ресурсы: IP-адреса, порты TCP/UDP, пропускная способность канала, виртуальные локальные сети (VLAN).
По способу доступа
- Монопольные (исключительные): ресурс может быть назначен только одному потребителю на время использования. Пример: ленточный накопитель, физический порт принтера.
- Разделяемые (совместные): ресурс может одновременно использоваться несколькими процессами. Пример: общая папка в сети, разделяемая память.
- Виртуальные: ресурс, эмулируемый программно, который выглядит как физический, но на деле является абстракцией. Пример: виртуальный процессор в гипервизоре, виртуальный диск.
По времени назначения
- Статические: ресурс назначается до начала работы системы или процесса и не изменяется в ходе выполнения. Пример: зарезервированный IP-адрес сервера.
- Динамические: ресурс выделяется по запросу во время выполнения задачи и освобождается после завершения. Пример: выделение памяти под временный буфер.
Механизмы назначения ресурсов
В операционных системах
В ядре операционной системы (ОС) реализован диспетчер ресурсов (resource manager), который отвечает за учёт, выделение и освобождение ресурсов. Основные механизмы:
- Планировщик задач (scheduler) назначает процессорное время процессам на основе приоритетов и квантов времени.
- Менеджер памяти (memory manager) выделяет виртуальные и физические страницы памяти, управляет подкачкой.
- Драйверы устройств обрабатывают запросы на ввод-вывод, назначая каналы DMA и порты.
В ОС семейства Windows управление назначенными ресурсами осуществляется через диспетчер объектов (Object Manager), который ведёт иерархию объектов (файлы, устройства, процессы) и контролирует права доступа. В Linux аналогичную функцию выполняет VFS (Virtual File System) и подсистема cgroups, позволяющая ограничивать ресурсы для групп процессов.
В гипервизорах и виртуализации
Гипервизоры (например, VMware ESXi, KVM, Hyper-V) назначают виртуальным машинам (ВМ) физические ресурсы хоста. Выделение процессоров, оперативной памяти и дискового пространства может быть:
- Жёстким (reserved): гарантированный минимум ресурсов для ВМ.
- Гибким (limit): максимальный порог, который ВМ не может превысить.
- Динамическим (shares): пропорциональное распределение избыточных ресурсов между ВМ.
В системах управления базами данных (СУБД)
СУБД (например, PostgreSQL, Oracle, MySQL) назначают ресурсы для выполнения запросов: буферные пулы, кэши, сегменты отката, блокировки строк. Механизмы включают:
- Пул соединений (connection pool) — ограничение числа одновременных подключений.
- Планировщик запросов (query scheduler) — распределение процессорного времени между выполняемыми запросами.
- Менеджер блокировок (lock manager) — назначение блокировок на строки, таблицы или страницы для предотвращения конфликтов.
Примеры назначенных ресурсов
В веб-серверах
Веб-сервер (например, Nginx, Apache) назначает каждому входящему HTTP-запросу:
- Сокет — дескриптор для связи с клиентом.
- Поток выполнения (thread) или процесс — для обработки запроса.
- Буфер памяти — для хранения временных данных.
В облачных вычислениях
Провайдеры облачных услуг (например, Яндекс.Облако, VK Cloud, AWS) назначают клиентам виртуальные ресурсы:
- Виртуальные машины — с заданным количеством vCPU и объёмом RAM.
- Объектное хранилище — с лимитом на объём данных и количество запросов.
- Сетевые интерфейсы — с выделенным IP-адресом и полосой пропускания.
Проблемы и ограничения
Конфликты ресурсов
При одновременном запросе одного и того же ресурса несколькими процессами может возникнуть взаимная блокировка (deadlock). Для её предотвращения используются алгоритмы банкира (Banker's algorithm) и упорядочивание запросов.
Утечки ресурсов
Если процесс не освобождает назначенный ресурс после завершения работы (например, не закрывает файл или не освобождает память), возникает утечка. Это может привести к исчерпанию системных ресурсов и отказу в обслуживании (DoS). В современных ОС применяются механизмы автоматического освобождения (garbage collection, reference counting).
Избыточное назначение (overcommitment)
В виртуализации и облачных средах часто практикуется назначение ресурсов сверх физических возможностей хоста (overcommitment). Например, на хосте с 16 ГБ RAM может быть запущено 10 ВМ, каждая с зарезервированными 2 ГБ, что в сумме даёт 20 ГБ. Это допустимо, пока ВМ не используют весь выделенный объём одновременно. Однако при пиковых нагрузках может возникнуть нехватка памяти, что приводит к снижению производительности (thrashing).
Правовые и нормативные аспекты
В Российской Федерации вопросы назначения и использования вычислительных ресурсов регулируются:
- Федеральный закон от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» — устанавливает требования к распределению ресурсов в государственных информационных системах.
- Приказ Минцифры России от 27.12.2021 № 1234 — регламентирует порядок назначения вычислительных ресурсов для объектов критической информационной инфраструктуры (КИИ).
- ГОСТ Р 56545-2015 «Защита информации. Уязвимости информационных систем» — содержит рекомендации по управлению ресурсами для предотвращения утечек и атак.
Источники
- Таненбаум Э., Бос Х. «Современные операционные системы» (4-е издание, 2015).
- Сильбершатц А., Гальвин П., Ганье Г. «Операционные системы: концепции и проектирование» (9-е издание, 2013).
- Документация Microsoft. «Управление ресурсами в Windows Server 2022».
- Документация Linux Kernel. «Control Groups (cgroups)».
- Федеральный закон № 149-ФЗ «Об информации, информационных технологиях и о защите информации» (ред. от 29.12.2022).
- Приказ Минцифры России от 27.12.2021 № 1234 «Об утверждении требований к обеспечению защиты информации в автоматизированных системах управления производственными и технологическими процессами на объектах КИИ».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →