| Zeile 8: | Zeile 8: | ||
| Binaerformat = [[ELF]] | | Binaerformat = [[ELF]] | ||
| Sprache = [[C]] & [[Assembler]] | | Sprache = [[C]] & [[Assembler]] | ||
| − | | IPC= | + | | IPC= Message-Passing, Message-Queues, RPC |
| Plattform = i386 | | Plattform = i386 | ||
| Homepage = In Planung | | Homepage = In Planung | ||
| Zeile 40: | Zeile 40: | ||
er seine Informationen noch einmal schicken soll. | er seine Informationen noch einmal schicken soll. | ||
Es sei denn, die Informationen befinden sich noch in einer Liste o. ä., die abgearbeitet wird. | Es sei denn, die Informationen befinden sich noch in einer Liste o. ä., die abgearbeitet wird. | ||
| + | |||
| + | == Modulkommunikation == | ||
| + | Ein Modul registriert sich im Kernel als Modul an gibt eine Beschreibung ab (meistens den Namen der Hardware die es verwaltet). | ||
| + | Außerdem muss das Modul einen Speicherbereich angeben den es für Broadcasts vorsieht. | ||
| + | Ein Modul kann beliebig viele Methoden registrieren; es muss nur eine Beschreibung und die Anzahl an Parametern angeben. | ||
| + | Wenn es Rückgabewerte gibt, geschieht das über das normale Message-Passing des Kernels. | ||
| + | Es kann außerdem entschieden werden, ob der Prozess eine Benachrichtigung erhalten möchte, dass sein Auftrag erfolgreich umgesetzt wurde. | ||
| + | Das funktioniert aber nur, wenn das Modul solch eine Möglichkeit bietet. | ||
| + | Dadurch ist es möglich, dass die Softwareentwickler zwischen synchroner und asynchroner Kommunikation entscheiden können- | ||
| + | |||
| + | == Interprozesskommunikation == | ||
| + | Es wird mehrere Möglichkeiten der Kommunikation geben. | ||
| + | Zum einen gibt es Shared-Memory, Message-Passing und dann noch Message-Queues. | ||
| + | Beim Shared-Memory, müssen sich die kooperierenden Prozesse selbst um die Synchronisation kümmern. | ||
| + | Beim Message-Passing bekommt der Emfänger ein Signal, dass eine Nachricht für ihn bereit liegt. | ||
| + | Diese kann er sich dann in seinen Speicher laden. | ||
| + | Bei den Message-Queues geschieht es auch nur über Methoden. | ||
| + | Jede Nachricht wird in einen Puffer in den Kernel geladen. | ||
| + | Wenn der Sender eine größere Nachricht sendet, dann wird das über mehrere Puffer zwischengelagert. | ||
| + | Außerdem werden diese großen Nachrichten nur nach und nach in den Kernel geladen. | ||
| + | Dadurch muss der Prozess länger warten, aber der Kernel bleibt vom Speicheraufwand her gering. | ||
== OS-Statistiken == | == OS-Statistiken == | ||
| Zeile 53: | Zeile 74: | ||
*** Entwicklung zum Multitasking | *** Entwicklung zum Multitasking | ||
*** Entwicklung des Shared-Memory-Handlers | *** Entwicklung des Shared-Memory-Handlers | ||
| − | *** Planung der | + | *** Entwicklung der Module-RPC |
| + | *** Planung des Messagepassings | ||
| + | *** Planung der Messagequeues | ||
== Features == | == Features == | ||