Hallöchen,
wie ihr ja alle wisst arbeite ich zz. unter Hochdruck an OS-64. Und es bleiben mir noch fast genau 4 Wochen um die neue Build fertig zu stellen.
Eine Implementation gefällt mir aber ganz und gar nicht. Nur weiß ich leider nicht welche andere und vor allen dingen bessere Möglichkeit es gibt. Ich möchte das Problem an einem Beispiel erläutern:
Prozess A soll "Hallo Welt!" auf den Schirm zaubern. Nun, dazu wird eine Routine der Bibliotheken aufgerufen, die dann per IPC den Grafiktreiber anspricht, genauer gesagt den Prozess, der den Grafiktreiber darstellt (sagt man das so
). Nur woher weiß jetzt Prozess A (bzw. diese Bibliotheksroutine) welcher Prozess der Grafiktreiber ist?
Und genau das gefällt mir an OS-64 nicht. Zz. wird es so gemacht:
Wenn der Prozess, der den Grafiktreiber darstellt startet, gibt er sich über Bibliotheksfunktionen den Namen "display". Der Prozess A muss jetzt auch über Bibliotheksfunktionen nach einem Prozess mit dem Namen "display" suchen und lässt sich dessen PID ausgeben. Jetzt sendet er die Message mittels IPC an den Prozess mit der PID (also an den Grafiktreiber) und die Message "Hallo Welt!" erscheint auf dem Bildschirm.
Um an die Namen zu kommen muss er eine Message an den Prozess mit der PID 1 senden, die für ihn die PID raussucht. Das ganze Senden und Empfangen dauert praktisch ewig (und würde bei einer GUI sicherlich sichtlich zu langsam sein).
Jetzt meine Frage: Gibt es eine schnellere und bessere Variante an die PID eines gewünschten Prozesses zu kommen? Bzw. wie macht ihr das in eurem OS? Evtl. könnt ihr mir ja helfen.
Vielen dank!!!
bitmaster