|
Подробнее о семантике и условия гонок
2008-10-11T09: 01:00.011 +02:00
В предыдущие публикации Я задал sceanario следующее:
Учитывая простую применение показано ниже:
- Существует одном случае источник (это не часы синхронизации вопросы), который генерирует события трех типов E1, E2, E3.
- Позвольте также сказать, что в нашей истории есть одно событий каждого типа, которые публикуются (так вопросы не синонимы), таблица показывает их появления время (когда они имели место в действительности), и время обнаружения (если они были зарегистрированы в системе ) - каждая из них не было зарегистрировано 1 единицу времени после ее появления, ни повторного заказа проблему.
- События E1, E2 в качестве вклада в АООС типа "схема обнаружения", которая определяет временной последовательности шаблон "Е1 до Е2", а когда это обнаруживается, что она происходит событие e4 - некоторые функции E1 и E2.
- События e3 (сырья случае) и e4 (ИЗВЛЕКАЕТСЯ случае) в качестве вклада в другую АООС типа "схема обнаружения", которая снова обнаруживает временной последовательности структура "E3 до Е4", если эта структура выявляется - создать событие E5 триггеры, которые некоторые действия на потребителя.
Я также просил вопрос - учитывая выше - будут действия вызваны E5 произойти?, Т.е. будет ли структура - "e3 до Е4" оценивается в действительности?
Я получил несколько ответов на этот и вы можете прочитать их в качестве комментариев к первоначальной публикации, как обещал я посвящаю эту опубликованные на анализе этого простого случая:
Первое, что нужно обсудить это семантика "временной последовательности". Есть два возможных типов семантики для временной последовательности, которую я называю "Время обнаружения семантику" и "Время возникновения семантики".
- В момент обнаружения семантики осуществляется на различных языках и означает, что временной порядок порядка времени марок, в которых "событие обработки платформа" обнаружил, что это событие происходит, если существует одно нить такого обнаружения, а затем события полностью заказал, в противном случае, может быть несколько событий с той же "обнаружение времени".
- В момент возникновения семантики также осуществляется в различных языков означает, что временной порядок порядка времени марок, которые предоставляются в рамках этого мероприятия информацию, и назначить - когда это событие произошло в действительности. Есть некоторые сложности синхронизации времени, в течение нескольких производителей среды, однако, в данном примере мы исходим из одного производителя (Я напишу о нескольких случаях, производитель в другой публикации).
- Заметим, что это два порядка отношения не могут быть идентичны.
- Существует также вид гибридного решения ( "Всего тем семантики") - семантику действительно "обнаружение времени" семантику, но для того, чтобы события, которые прибудут немного поздно для того, чтобы считать их роль, события в очередь на буфер (а не рассматриваться как обнаружил) до тех пор, пока тайм-аут, чтобы "по приказу" событий прибывают и изменить порядок буфер, а затем направить события в соответствии с буфером порядка.
Вернувшись к примеру - в небольшом столе в нижней левой части рисунка выше, Есть и случаи обнаружения времена E1, E2, E3. Для e4 существует только в момент обнаружения - e4 отличается от (E1, E2, E3) тот факт, что это событие основе, а не сырье случае, как и другие три. На вопрос "Что такое время появления в основе событий"? - Нет четкого ответа на это - Есть несколько возможных ответов:
- В основе событий случае возникновения время \u003d обнаружения времени, поскольку это событие не имеет реальной силы, но в случае виртуальной один, таким образом, его источником является АООС, что создает его, и он произошел, когда создается. В нашем случае это означает, что occurence времени (Е4) \u003d 4.
- Ее появление времени возникновения время последних событий, которые завершили образца - с момента событий, участвующие в создании e4 являются (E1, E2) и e2 было последнее, что завершила структуры, появление времени (Е4) \u003d появления - времени (E2) \u003d 2
- Интервальная семантика: e4 Событие происходит в промежутке, в котором все участники место, которое данном случае означает возникновение времени (Е4) \u003d [1, 2].
Это явление множественной семантической интерпретации применяются различные другие семантические решения в семантической обработки событий языке, и предпочтительным вариантом является предоставление пользователю семантической "точной настройки" политики, в рамках которого пользователь может выбрать желаемый семантика, вместо " Трудно код "определенная семантика (используя наиболее распространенные, так как по умолчанию), это одно из преимуществ использования COTS для обработки событий, поскольку это довольно трудно даже думать о таких вопросах при разработке EP manuaully помощью обычного языка.
Семантика вторая "временной последовательности" (E3, E4), таким образом:
- По данным "обнаружение времени" семантику - оба имеют обнаружение времени 4. Что такое последовательность условие не устраивает. Однако, если установить общий порядок на одну нить, это может создать условия гонки между двумя событиями. В этом случае рекомендуется использовать последовательную политику приоритета - либо ширина первой (сырье всегда событие наступит раньше) или глубина первой (производное событие всегда приходит первым) в целях обеспечения детерминированно результат.
- Согласно "появление времени" - это зависит от политики, был выбран, но в соответствии со всеми interprerations - e4 происходит перед E3 - Таким образом, временная последовательность не удовлетворен.
Bottome строка: временная последовательность (E3, E4) считается выполненным, если:
- Временная семантика обнаружения времени
- Она осуществляется по общей целью
- В общей сложности порядка политика "Ширина первой" - а именно приоритет для сырых событий.
Во всех других случаях временной последовательности, не будут удовлетворены, и следствие действий не будет исполнять.
Источник ...
|