Moin
Ich möchte die Hardware Ports verwalten, so das nicht jeder Prozess auf jeden Port zugreifen kann sondern nur die, die er auch registriert hat.
Eine Möglichkeit, die mir aber nicht so gefällt.(Weshalb später mehr.) Wäre eine Bitmap. Also für jeden Port ein Bit. Dazu taucht eine Frage auf, wie viele Ports kann es geben? Die adresse ist ja ein 16 Bit wert. Gehen also alle Adressen von 0x0000 bis 0xFFFF?
Nun was mir an dieser lösung nicht gefällt. Wenn ein Port von einem Prozess registriert wurde und ein anderer Prozess diesen auch gerne hätte. Dachte ich mir, das ich dann den Prozess frage, der den Port registriert hat, ob er diesen noch braucht oder ob der andere Prozess ihn haben könnte.
Also:
Prozess A registriert sich Port 0x11
Prozess B registriert sich Port 0x11
In diesem fall würde register_port(Die Port registrier-funktion) false zurück geben.
Ich fände es aber schöner, wenn es so ginge:
Prozess A registriert sich Port 0x11
Prozess B registriert sich Port 0x11
register fragt jetzt über IPC Prozess A ob der port noch benötigt wird, wenn nicht, dann wird der Port auf Prozess B übertragen. Wenn der Port noch benötigt wird, dann gibt register_port false zurück.
Da ich IPC über die PID machem wollte, müsste die Recourcen verwaltung aber wissen, welche Ports zu welcher PID gehören. Wie kann man das am besten machen?
Programm Noob
Ich möchte die Hardware Ports verwalten, so das nicht jeder Prozess auf jeden Port zugreifen kann sondern nur die, die er auch registriert hat.
Eine Möglichkeit, die mir aber nicht so gefällt.(Weshalb später mehr.) Wäre eine Bitmap. Also für jeden Port ein Bit. Dazu taucht eine Frage auf, wie viele Ports kann es geben? Die adresse ist ja ein 16 Bit wert. Gehen also alle Adressen von 0x0000 bis 0xFFFF?
Nun was mir an dieser lösung nicht gefällt. Wenn ein Port von einem Prozess registriert wurde und ein anderer Prozess diesen auch gerne hätte. Dachte ich mir, das ich dann den Prozess frage, der den Port registriert hat, ob er diesen noch braucht oder ob der andere Prozess ihn haben könnte.
Also:
Prozess A registriert sich Port 0x11
Prozess B registriert sich Port 0x11
In diesem fall würde register_port(Die Port registrier-funktion) false zurück geben.
Ich fände es aber schöner, wenn es so ginge:
Prozess A registriert sich Port 0x11
Prozess B registriert sich Port 0x11
register fragt jetzt über IPC Prozess A ob der port noch benötigt wird, wenn nicht, dann wird der Port auf Prozess B übertragen. Wenn der Port noch benötigt wird, dann gibt register_port false zurück.
Da ich IPC über die PID machem wollte, müsste die Recourcen verwaltung aber wissen, welche Ports zu welcher PID gehören. Wie kann man das am besten machen?
Programm Noob

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken
Gespeichert

Ich meine damit, das ich z.B. ne Art "Device Server" machen will, der die ganze Port-/Hardwareverwaltung dann regelt. Die meisten Mikrokernels machen das aber im Kernel.