next up previous contents
Nächste Seite: PCI Support Aufwärts: Der I/ O Server Vorherige Seite: Der I/ O Server   Inhalt


Ressourcenverwaltung

Wie in Abschnitt 3.2 entworfen, existiert im I/ O Server ein Modul zur Verwaltung der Systemressourcen. Für alle drei Ressourcen -- E/A-Ports und -Speicher sowie ISA DMA-Kanäle -- ist je ein Schnittstellen-Kommando zur Anforderung und Freigabe vorgesehen.

Hierbei wird jede Ressource nur einmal vergeben und alle weiteren Anforderungen bis zur Freigabe durch den aktuellen Besitzer scheitern. Unterstützt wird diese Vorgabe durch die Annahme, daß z.B. Memory Mapped I/ O Bereiche initial nur dem I/ O Server zur Verfügung stehen. Dieser kann diese Bereiche -- Speicherseiten -- einem Klienten auf Anforderung mit Hilfe der Mechanismen des Mikrokerns einblenden. Dieser kann nun wahlfrei darauf zugreifen. Einen ähnlichen Mechanismus nutzt man für Bereiche im E/A-Port-Adreßraum4.1.

Bei der zentralen Verwaltung von ISA DMA-Kanälen ergeben sich weitere Probleme, und ich gehe hier nur kurz darauf ein, da der DMA-Controller mit wenigen Ausnahmen, z.B. Floppy, in modernen Systemen -- obwohl vorhanden -- nicht mehr verwendet wird und meist andere Lösungen, wie Programmed I/ O, existieren.

Der DMA-Controller in PC-Systemen kann in verschiedenen Modi verwendet werden, wobei nur der CASCADE Modus ohne Reprogrammierung des Controllers nach jedem Transfer verwendet werden kann. Da DMA-Kanäle über Ports programmiert werden, ergibt sich hier ein ähnliches Problem wie bei der Programmierung von Interrupt-Controllern (siehe Abschnitt 4.1.3).

Um eine sichere Programmierung des DMA-Controllers durchzusetzen, müßte diese im
I/ O Server stattfinden und über eine geeignete Schnittstelle verwendbar sein. Da aber häufige Reprogrammierung, bei Floppy z.B. maximal nach 512 transferierten Bytes, möglichst schnell sein sollte, um die Vorteile eines DMA-Transfers nicht zu neutralisieren, scheint diese Lösung nicht passend.

Eine Ausnahme ist hier der CASCADE Modus (auch ISA Busmastering genannt). Bei diesem Modus übernimmt das Gerät die Programmierung des Controllers wenn es den ISA-Bus belegt. Der DMA-Controller muß von CPU-Seite nur initial in diesen Modus geschaltet werden und eine weitere, explizite Synchronisation von Port-Zugriffen ist nicht nötig, da diese die Hardware verbirgt.


next up previous contents
Nächste Seite: PCI Support Aufwärts: Der I/ O Server Vorherige Seite: Der I/ O Server   Inhalt
Christian Helmuth 2001-12-11