Определение интерфейсов задачРассмотрим теперь, как определяются интерфейсы задач. В случае интерфейсов обмена сообщениями между параллельными задачами возможен либо слабо связанный, либо сильно связанный обмен. Необходимо исследовать только интерфейсы между объектами, выделенными в самостоятельные задачи. Кроме того, следует точно описать сообщения, включая их имена и параметры. Взаимодействие между задачами Интерфейс Кнопок Лифта и Диспетчер Лифта, показанными на рис.19, отображается на слабо связанный обмен сообщениями (рис.20). Тем самым гарантируется, что исполнение задачи Интерфейс Кнопок Лифта не будет приостановлено после отправки сообщения задаче Диспетчер Лифта. Планировщик посылает сообщения запрос Планировщика в ту же очередь. Поскольку Планировщик в момент передачи ему сообщения часто бывает занят, то интерфейс между задачами Планировщик и Интерфейс Кнопок Лифта также отображается на слабо связанный обмен сообщениями (см. рис.20).
Рис.19. Нераспределенная система управления лифтами: архитектура задач
Интерфейс между задачами Интерфейс Датчиков Прибытия и Контроллер Лифта (см. рис.19) реализуется как сильно связанный обмен сообщениями (см. рис.20): когда задача Интерфейс Датчиков Прибытия посылает сообщение приближается к Этажу, задача Контроллер Лифта неактивна, так как находится в состоянии Лифт Едет. Поэтому задача Интерфейс Датчиков Прибытия не будет задержана на сколько-нибудь длительное время. Интерфейс между задачами Диспетчер Лифта и Контроллер Лифта (см. рис.19) реализуется как сильно связанный обмен сообщениями (см. рис.20). Диспетчер Лифта может посылать сообщения «вверх» или «вниз». Интерфейс является сильно связанным, поскольку Диспетчер Лифта способен отправлять сообщения Контроллеру Лифта только тогда, когда последний находится в состоянии Лифт Стоит и, следовательно, должен быть активизирован. Рассмотрим теперь интерфейс между Контроллером Лифта и двумя задачами-мониторами ресурсов: Монитор Лампочек Этажа и Монитор Лампочек Направления. Контроллер Лифта дает команды управления лампочками этажа Монитору Лампочек Этажа и команды управления лампочками направления - Монитору Лампочек Направления (см. рис.19). Подобное взаимодействие отображается на слабо связанный обмен сообщениями, так как несколько экземпляров Контроллера Лифта в состоянии одновременно посылать сообщения Монитору Лампочек Этажа или Монитору Лампочек Направления (см. рис.20) и при этом не должны блокироваться. Проанализируем пассивные сущностные объекты, к которым обращается сразу несколько задач. Состояние и План Движения Лифта - объект абстрагирования данных, который инкапсулирует состояние и план движения лифта. В нераспределенном варианте есть только один экземпляр этого объекта, так что можно использовать централизованное хранилище. К объекту осуществляют доступ несколько экземпляров задач Контроллер Лифта, Диспетчер Лифта, а также Планировщик (см. рис.20). Доступ к пассивному объекту должен быть синхронизирован, чтобы его операции исполнялись взаимно исключающим образом.
|