Event flagga

En händelseflagga är en primitiv processsynkronisering i OpenVMS - operativsystemet. Den har två möjliga tillstånd, inställd eller raderad . Följande grundläggande primitiva operationer tillhandahålls:

  • Ställ in händelseflagga ($SETEF)
  • Rensa händelseflagga ($CLREF)
  • Vänta på händelseflagga ($WAITFR)--om flaggan var klar skulle detta få processen att vänta tills den ställdes in. Om flaggan redan var inställd skulle denna omedelbart återkomma och lämna flaggan inställd.

Ytterligare synkroniseringsåtgärder är:

  • $WFLOR--vänta tills någon av de angivna händelseflaggorna ställs in.
  • $WFLAND--vänta på att alla angivna händelseflaggor ställs in.

Händelseflaggor kan vara antingen lokala (per process) eller gemensamma (tillgängliga för mer än en process). Varje process har sin egen uppsättning av 64 lokala flaggor, numrerade 0-63. Det är också möjligt att associera processen med upp till 2 uppsättningar av vanliga händelseflaggor. Dessa kommer i set om 32 vardera, och processen kan tilldela dem nummer 64-95 eller 96-127. De uppstår när den första processen associerar med dem, och försvinner när den sista processen tar bort sin association.

Varje potentiellt tidskrävande asynkront systemanrop ( QIO bland annat) innehåller ett argument som anger numret på en händelseflagga som ska ställas in vid slutförandet.

Jämför semafor .