146
также вторичные ресурсы, порождаемые самой ОС, – системные
структуры данных и коды. Так, например, при создании нового процесса
необходимо занести новую запись в таблицу процессов. Эта запись также
является ресурсом, причем неперераспределяемым и неразделяемым.
Ресурсы, которые мы рассматриваем, являются также повторно
используемыми. Это означает, что ресурсы после их использования
процессами не пропадают и не убывают, а могут быть использованы
другим процессом. Альтернативу им составляют потребляемые ресурсы,
которыми чаще всего могут быть входные данные и сообщения,
поступающие в процесс извне.
Наши ресурсы обладают также свойствами дискретности и
ограниченности. Первое означает, что ресурсы распределяются
некоторыми неделимыми единицами (не может быть полтора принтера).
Второе – то, что число единиц ресурса всегда небесконечно.
(Процессорное время бесконечно: его достаточно для выполнения любого
процесса, и оно может дробиться планировщиком. Реальная память всегда
конечна, виртуальная тоже конечна, ограничена разрядностью
виртуального адреса, а непрерывность или дискретность ее зависит от
принятой модели).
Мы будем называть классом ресурса пул идентичных
неименованных единиц ресурса. Неименованными мы считаем их в том
смысле, что процесс при запросе ресурса не указывает, какую именно
единицу из пула он хочет получить, все единицы ресурса одинаковы. Все
ресурсы одного класса управляются одним менеджером.
Из определений ОС (как с точки зрения разработчика, так и с точки
зрения пользователя), которые мы дали в первой главе, однозначно
следует, что процесс ни в коем случае не может самостоятельно завладеть
ресурсом, а только через посредство ОС. Для предоставления процессам