Uživatelské nástroje

Nástroje pro tento web


validitymode

Jednotka globálnych dát

Základné podporované operácie pre každú globálnu jednotku je definovanie, zápis a čítanie.

PlantUML Graph PlantUML Graph PlantUML Graph

Základná (ne)platnosť (náznak valid v odpovedi set a get pri premenných s validityMode==0) funguje ako upozornenie, že jednotka ešte nebola definovaná alebo nastavená. Rozšírením definície základnej platnosti je však možné určiť lepšie synchronizáciu použitia rôznymi paralelnými procesmi. Systém vyhodnocovania platnosti je založený na náznaku validityMode, ktorý určuje typ zdieľania a prepájania dát. Rozlišuje sa tu medzi pripojeným komunikačným kanálom, ktorý dáta definoval (tvorca) a komunikačné kanály, ktoré sú k daným dátam pripojené (spojenci).

Pri definovaní sa uvádza parameter validityMode, ktorý bližšie špecifikuje druh jednotky globálnych dát z hľadiska možných prepojení a platnosti. Základné druhy sú:

  • variable=0 .. Premenná, ktorú mení len tvorca a spojenci ju môžu len čítať.
  • sharedToken=1 .. Zdieľaný žetón, ktorý po prečítaní nemôže nik čítať až dovtedy pokiaľ do neho opäť niekto nezapíše hodnotu.
  • temporaryMessage=2 .. Dočasná správa, ktorú môže prečítať každý spojenec maximálne jeden krát. Posielať ju môže len tvorca v ľubovoľnom čase. Pri poslaní vždy prepíše pôvodnú správu.
  • event=3 .. Udalosť, viď nižšie.

Udalosti

Všetky udalosti (events) tvorcu môžu byť reprezentované jednou globálnou jednotkou, ktorá reprezentuje ich bitovú masku. Do hodnoty tejto masky sa musí zmestiť toľko bitových náznakov, koľko je udalostí tvorcu. Každá udalosť má priradenú svoju lokálnu podmasku (mocnina dvoch), ktorá po zapísaní na SimKernel vykoná bitové or s hodnotou globálnej bitovej udalostí masky tvorcu. Zapojenia udalostí umožňujú širšie možnosti než zapojenia jednotiek globálnych dát, ktoré udalosťami nie sú. Znamená to, že na výstupnú udalosť (od spojenca) môže byť pripojených viacej vstupných udalostí (od rôznych tvorcov) a naopak.

Tvorca má posledné udalosti zapísané v jednej dátovej jednotke na SimKernel-e. Pripojený spojenci (cez výstupné udalosti) ju môžu zapisovať bez obmedzenia v ľubovoľnom čase. Od tvorcu sa očakáva priebežné spravovanie masky udalostí v cykle tak, že vždy keď môže tak si ju vyzdvihne a spracuje. Vyzdvihnutím sa maska vynuluje. Tvorca môže zo SimKernelu iba čítať (masku udalostí), spojenca iba zapisovať (konkrétnu udalosť).

Pomocou udalostí sa neprenášajú data. Tie môźu však byť k dispozícii cez globálne jednotky iných typov.

PlantUML Graph

validitymode.txt · Poslední úprava: 2011/12/09 13:10 autor: marek