Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Проектирование разъема, реализующего буфер сообщений

Проектирование разъема, реализующего очередь сообщений.

Проектирование разъемов для межзадачных Коммуникаций

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

Каждый разъем представляет собой монитор, одновременно обеспечивающий синхронизацию и скрывающий информацию о том, как это де­лается. В разъемах применяется синхронизация по условию. Такие мониторы могут использоваться как в однопроцессорной так и в многопро­цессорной системе с разделяемой памятью.

Разъем, реализующий очередь сообщений, используется для инкапсуляции ме­ханизма слабо связанного обмена сообщениями. Это монитор, инкапсулирующий очередь, которая обычно существует в виде связанного списка. Разъем предостав­ляет синхронизированные операции send для отправки сообщения (вызывается за­дачей-производителем) и receive для получения сообщения (вызывается зада­чей-получателем)

Производитель приостанавливается, если очередь заполнена (messageCount = maxCount) и возобновляет работу, когда освобож­дается место для размещения нового сообщения. Поместив сообщение в очередь, производитель продолжает работать и в состоянии посылать новые сообщения. Потребитель приостанавливается, когда очередь пуста (messageCount = 0) и ак­тивизируется, как только в очередь поступит сообщение. Потребитель не при­останавливается, если в очереди есть сообщения. Предполагается, что может быть несколько производителей и один потребитель.

 

Разъем, реализующий буфер сообщений, используется для инкапсуляции ме­ханизма сильно связанного обмена сообщениями без ответа. Это монитор, инкап­сулирующий буфер на одно сообщение. Разъем предоставляет синхронизирован­ные операции для отправки и получения сообщений. Производитель вызывает операцию send, а потребитель – операцию receive. Производитель приостанавливается, если буфер заполнен. Поместив сообщение в буфер, произ­водитель ждет, пока потребитель примет его. Потребитель приостанавливается, когда буфер пуст. Предполагается, что может быть несколько производителей и один потребитель.

<== предыдущая лекция | следующая лекция ==>
Синхронизация нескольких читателей и писателей без ущемления писателей | Логика упорядочения событий
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 334; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.