Varför finns inte AST:ar och Eventflaggor i Linux...?
Postat: 13 jan 2011, 10:09
Jo, jag kan ju OpenVMS på ganska ingående nivå också och det är ett par saker som fundamentalt saknas i Unix/Linux jämfört med OpenVMS (plus VAX/VMS) och det är AST:ar och Eventflaggor...
En AST är en funktion/subrutin som man deklarerar att när en viss händelse inträffar så ska den köras. Ett typexempel är SYS$QIO med IO$M_READVBLK som funktion (dvs. read()) och när det finns något att läsa på kanalen som man öppnat med SYS$ASSIGN (open()) så körs den funktion/subrutin man angivit. På så sätt kan man i ett program deklarera ett antal händelser och vad som ska ske när de inträffar, samtidigt som programmet i det stora hela lägger sig och sover (SYS$HIBER)....
En Eventflagga är ett sätt att deklarera att "när det här händer så vill jag att systemet sätter en flagga som jag kan kolla och se om det hänt". Man kan även använda SYS$WAITFR och vänta på en eller flera händelser...
Varför har ingen kommit på den ljusa idén att implementera det här i Linux kärna (för det är i schedulern det måste ligga)...??
[Edit] Jovisst, jag känner till hela paketet med kill, alarm, "sigcatcher" och signals, men det är inte riktigt samma sak...
En AST är en funktion/subrutin som man deklarerar att när en viss händelse inträffar så ska den köras. Ett typexempel är SYS$QIO med IO$M_READVBLK som funktion (dvs. read()) och när det finns något att läsa på kanalen som man öppnat med SYS$ASSIGN (open()) så körs den funktion/subrutin man angivit. På så sätt kan man i ett program deklarera ett antal händelser och vad som ska ske när de inträffar, samtidigt som programmet i det stora hela lägger sig och sover (SYS$HIBER)....
En Eventflagga är ett sätt att deklarera att "när det här händer så vill jag att systemet sätter en flagga som jag kan kolla och se om det hänt". Man kan även använda SYS$WAITFR och vänta på en eller flera händelser...
Varför har ingen kommit på den ljusa idén att implementera det här i Linux kärna (för det är i schedulern det måste ligga)...??
[Edit] Jovisst, jag känner till hela paketet med kill, alarm, "sigcatcher" och signals, men det är inte riktigt samma sak...