
10-11-2008
|
|
Forum Robot Girl
|
|
|
Bli Dato: Sep 2000
Posts: 22176
|
|
|
Mer om semantikk og rase vilkår
2008-10-11T09: 01:00.011 +02:00
I tidligere innlegg Jeg har stilt følgende sceanario:
Gitt det enkle programmet vises nedenfor:
- Det er et enkelt Hendelseskilde (så ingen klokke synkronisering problemer) som genererer arrangementer av tre typer E1, E2, E3.
- La oss også si at i vår historie er det et enkelt arrangement av hver type som er publisert (så ingen synonymer utgaver), tabellen viser deres forekomst tid (når de skjedde i virkeligheten) og gjenkjenning tid (når de har blitt rapportert til systemet ) - hver av dem har blitt rapportert 1 time etter sitt forekomst, ingen re-bestilling problem.
- Events E1, E2 tjene som et innspill til en EPA av typen "mønster gjenkjenning" som oppdager en timelig sekvens mønsteret "E1 før E2", og når dette er registrert, det kommer en hendelse E4 - noen funksjon E1 og E2.
- Events E3 (rå hendelse) og E4 (avledet hendelse) tjene som innspill til en annen EPA av typen "mønster gjenkjenning", som igjen oppdager en timelig sekvenser mønsteret "E3 før E4", hvis dette mønsteret er oppdaget - opprett hendelse E5 som utløser en handling på forbrukeren.
Jeg også bedt spørsmålet er - gitt ovenfor - vil handlingen utløses av E5 skje?, Dvs. vil mønsteret - "E3 før E4" vurderes til stede?
Jeg fikk noen svar på dette, og du kan lese dem som kommentarer til det opprinnelige oppslaget, som lovet jeg dedicating denne innleggene til analyse av denne enkle tilfelle:
Det første du må diskutere er semantikk av "verdslige sekvens". Det er to mulige typer semantikk for temporalt sekvens, som jeg kaller "detection tid semantikk og forekomst tid semantikk".
- Gjenkjennings tid semantikk er implementert i forskjellige språk, og betyr at temporalt bestillingen er rekkefølgen på tidsangivelser som "hendelse behandlingen plattform" oppdager at denne hendelsen skjer, hvis det er en enkelt tråd slik oppdagelse, deretter hendelser er helt organisert, ellers kan det være flere arrangementer med samme "detection tidsstempelet".
- Forekomsten tid semantikk også implementert i forskjellige språk betyr at temporalt bestillingen er rekkefølgen på tidsangivelser som er gitt som en del av arrangementet, og utpeke - når denne hendelsen happend i virkeligheten. Det er noen komplekse synkronisere tiden i multi-produsent miljøet, men i dette eksempelet vi antar en enkelt produsent (Jeg skal skrive om multi-produsent tilfeller i et annet innlegg).
- Merk at dette er to pålegg forbindelser kan være identiske.
- Det er også slags hybrid løsning ( "total bestille semantikk") - den semantikk er virkelig "detection time" semantikk, men for å tillate hendelser som kommer litt sent å ta de riktige rolle, hendelsene i kø ved en buffer (og ikke som oppdaget) til tidsavbruddet å la "out of order" hendelser å ankomme og re-bestille buffer, og deretter sende hendelser ifølge buffer rekkefølge.
Komme tilbake til eksempel - i lite bord på den nederste venstre side av figuren over er det forekomst og gjenkjenning tider E1, E2, E3. For E4 det bare gjenkjenning tid - E4 er forskjellig fra (E1, E2, E3) ved at det er avledet hendelse og ikke rå hendelsen som de tre andre. Spørsmålet er hva som er tilfelle for en avledet hendelse "? - Det finnes ingen klare svar på det - det er flere mulige svar:
- I avledet hendelse tilfelle forekomsten time \u003d gjenkjenningsverktøy tid, siden denne hendelsen ikke er reell hendelse, men en virtuell en derfor sin kilde er EPA som lager den, og det skjedde da opprettet. I vårt tilfelle betyr det at occurence-tiden (E4) \u003d 4.
- Dets forekomst er forekomsten tid for den siste hendelsen som avsluttet mønsteret - siden de deltakende hendelser i etableringen av E4 er (E1, E2) og E2 var den siste som avsluttet mønster, forekomst-tiden (E4) \u003d forekomst - tid (E2) \u003d 2
- Intervall semantikk: Arrangementet E4 oppstår i intervallet der alle deltakerne oppstå, som er dette tilfellet betyr forekomst-tiden (E4) \u003d [1, 2].
Fenomenet flere semantiske tolkninger gjelde flere andre semantiske avgjørelser i semantiske hendelsestype behandlingen, og den foretrukne løsningen er å gi brukeren med semantiske "finjustere" politikk, som brukeren kan velge ønsket semantikk, i stedet for " hard koden "en viss semantikk (med de vanligste en som standard), er dette en av fordelene med å bruke Cots for hendelsen behandling, siden det er ganske vanskelig å tenke på slike spørsmål når du utvikler EP manuaully bruker konvensjonelle språket.
Den semantikk av andre "verdslige sekvens" (E3, E4) er dermed:
- Ifølge "detection time" semantikk - både har gjenkjennings-tiden av 4. Som sekvensen tilstand er ikke fornøyd. Men hvis vi innføre totalt bestilling av én tråd, kan dette skape rase forholdene mellom de to hendelsene. I dette tilfellet er det anbefalt å bruke en konsekvent prioritert policy - enten bredde først (RAW hendelse alltid kommer først) eller dybden første (det utledes hendelse alltid kommer først) for å sikre deterministisk resultat.
- Ifølge "forekomst tid" - det avhenger av politikken valgt, men ifølge alle interprerations - E4 skjer før E3 - dermed temporalt Sekvensen er ikke fornøyd.
Bottome linje: den verdslige sekvens (E3, E4) er fornøyd hvis:
- Den verdslige semantikk er gjenkjenningsverktøy tid
- Det er iverksatt av samlet bestilling
- Den totale ordren er "bredde først" - nemlig prioritet for rå hendelser.
I alle andre tilfeller den verdslige sekvens vil ikke bli fornøyd og corollary handlingen vil ikke kjøre.
Kilde ...
|