Sida 1 av 1

Varför finns inte AST:ar och Eventflaggor i Linux...?

Postat: 13 jan 2011, 10:09
av Osprey
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...

Re: Varför finns inte AST:ar och Eventflaggor i Linux...?

Postat: 13 jan 2011, 12:10
av Osprey
Jag får lägga till bakgrunden till frågan också - Amerikanska Försvaret har fått HP att lova att OpenVMS ska finnas kvar till minst 2025... och i VMS finns de här sakerna som standard......

Re: Varför finns inte AST:ar och Eventflaggor i Linux...?

Postat: 13 jan 2011, 21:43
av pun
Jo det låter som en alldeles utmärkt fundering till en alldeles riktig kärnutvecklare....

Här har du en av officiella
http://marc.info/?l=linux-kernel

Annars så kan man börja här:
http://kernelnewbies.org/Linux_Kernel_Newbies

Re: Varför finns inte AST:ar och Eventflaggor i Linux...?

Postat: 14 jan 2011, 01:42
av philip5
Kolla på vad man kan göra med kqueue och inotify.