Типы ресурсов и тупики

 

Ресурсы с точки зрения особенностей их использования классифицируются как повторно используемые и потребляемые []. К повторно используемым ресурсам относятся аппаратура компьютера - процессоры, память, каналы, устройства ввода-вывода и программное обеспечение, обладающее свойством реентерабельности - системные таблицы, файлы данных, программы, а также «разрешение войти в критическую секцию». Потребляемыми ресурсами являются сообщения. К числу потребляемых ресурсов относятся сигналы, сообщения и данные, генерируемые и аппаратным, и программным обеспечением. Например, прерывания от таймера и устройств ввода-вывода, сигналы синхронизации процессов, запросы на обслуживание, передаваемые между процессами сообщения и данные, а также соответствующие ответы. Тупики данного типа являются следствием современных тенденций развития вычислительных систем: появлением микроядерной архитектуры и распределенных систем, для которых характерна синхронизация параллельно выполняющихся процессов посредством сообщений.

Повторно используемые ресурсы характеризуются следующими свойствами: число единиц ресурсов ограничено, изменение числа единиц ресурса является скорее исключением, чем правилом и является следствием особых ситуаций, например, поломки оборудования.

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

Тупики в случае только потребляемых ресурсов аналогичны тупикам с повторно используемыми ресурсами, которые показаны на рис. 5.1. Например, тупик на рис. 5.1в «читается» следующим образом: процесс p1 вырабатывает сообщение для процесса p2, отвечая на сообщение от процесса p3; процесс p2 вырабатывает сообщение для процесса p3 в ответ на сообщение от процесса p1, а процесс p3 может выдать сообщение только в случае получения сообщения от процесса p2.

Для систем с потребляемыми ресурсами характерна априорная информация о производителях и потребителях. В таких системах следует различать следующие качественно отличные ситуации:

- число производителей и потребителей не ограничено;

- когда производители известны (их число ограничено), а потребители нет, так как любой процесс является потенциальным потребителем;

- производители и потребители известны.

Тупики могут возникать при запросах процессов на ресурсы одного типа или на ресурсы обоих типов одновременно. На рис. 5.3 показан тупик при разделении как повторно используемых, так и потребляемых ресурсов.