DE69423853T2 - Ein-/Ausgabeobjekte in einem Betriebssystemkern - Google Patents

Ein-/Ausgabeobjekte in einem Betriebssystemkern

Info

Publication number
DE69423853T2
DE69423853T2 DE69423853T DE69423853T DE69423853T2 DE 69423853 T2 DE69423853 T2 DE 69423853T2 DE 69423853 T DE69423853 T DE 69423853T DE 69423853 T DE69423853 T DE 69423853T DE 69423853 T2 DE69423853 T2 DE 69423853T2
Authority
DE
Germany
Prior art keywords
resource
resources
input
output
hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69423853T
Other languages
English (en)
Other versions
DE69423853D1 (de
Inventor
David Barnett Golub
Iii Freeman Leigh Rawson
Sotomayor, Jr
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69423853D1 publication Critical patent/DE69423853D1/de
Publication of DE69423853T2 publication Critical patent/DE69423853T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/522Manager

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

  • Die vorliegende Erfindung bezieht sich im allgemeinen auf das Verwalten von Eingabe/Ausgabe(I/O)-Betriebsmitteln in einem Rechnersystem.
  • Ein Gerätetreiber ist ein Softwarevorgang, der ein Hardwaregerät steuert, das mit einen I/O-Kanal eines Rechnersystems verbunden ist. Beispielsweise benutzt das UNIX- Betriebssystem (OS) ein Dateisystem in Form einer Datenstruktur, die sich auf der Festplatte befindet, die für jedes Hardwaregerät eine Datei enthält. Innerhalb des OS- Betriebssystems werden Verweise auf eine bestimmte Hardware- Gerätedatei in Hardwarebefehle zum Zugriff auf ein Band oder Ähnliches umgewandelt.
  • Modelle von Gerätetreibern nach dem Stand der Technik haben üblicherweise keinen klaren Mechanismus zum Kennzeichnen der Hardware-Betriebsmittel, die vom Gerätetreiber benötigt werden. Jeder einzelne Gerätetreiber enthält üblicherweise seine eigenen Mechanismen. Da es keinen Standardmechanismus zum Kennzeichnen der benötigten Betriebsmittel gibt, sind Gerätetreiber gezwungen, über die vorhandenen Hardware- Betriebsmittel intelligente Vermutungen anzustellen. Diese Schemata zur AD-hoc-Betriebsmittelkennzeichnung führen üblicherweise zu Gerätetreibern, die beliebige gekennzeichnete Betriebsmittel benutzen. Kollisionen zwischen Gerätetreibern, welche die gleichen Hardware-Betriebsmittel benutzen, werden nur durch verschiedene Hardwareausführungen verhindert.
  • Ein wesentliches Problem bei den Ad-hoc-Schemata, wie sie in früheren Gerätetreibermodellen benutzt worden sind, besteht darin, dass die Ermittlung der vorhandenen Hardware- Betriebsmittel sehr empfindlich auf eine bestimmte Systemausführung ist. Dies führt zu Gerätetreibern, die nicht nur für ein bestimmtes Hardwaregerät, sondern auch für das Betriebsmittel-Kennzeichnungsverfahren zugeschnitten sind, das vom Gerätetreiber benutzt wird. Die Ad-hoc-Betriebsmittel- Kennzeichnungsmechanismen führen auch zu einem ziemlich statischen Gerätetreibermodell, da die Gerätetreiber gewöhnlich die Kennzeichnung nur während der Initialisierung durchführen. Die Kennzeichnung kann nicht durchgeführt werden, wenn sich das Gerät im tatsächlichen Betrieb befindet, da es möglicherweise nicht zuverlässig funktioniert oder es zu Störungen am Gerät oder, noch schlimmer, am System selbst führen kann. Der Bedarf nach einem eher dynamischen Gerätetreibermodell wird bei einigen der neuen Techniken außerordentlich wichtig, beispielsweise bei PCMCIA- Standardkarten (Personal Computer Memory Card Interface Association).
  • Zusätzlich erhebt sich beim Benutzen von virtuellen Bildschirmen in vielen Systemen das Problem der Betriebsmittelzuordnung. Die Benutzung von virtuellen Bildschirmen gestattet es, dass mehrere Anwendungen auf dem System laufen und jede Anwendung glaubt, dass ausschließlich sie Zugriff auf die Anzeigehardware hat. Derzeit gibt es keine Standardverfahrensweise für Gerätetreiber, identische Hardware gemeinsam zu nutzen.
  • US-Patentschrift 5 115 499 richtet sich auf ein Zuordnungssystem gemeinsam genutzter Rechnerbetriebsmittel, in dem die gemeinsam genutzten Betriebsmittel von verschiedenen zentralen Prozessoreinheiten gemeinsam genutzt werden. Der Zugriff auf ein bestimmtes Betriebsmittel wird durch einen Speicherstandort gesteuert, der Informationen enthält, die den aktuellen Zustand des Betriebsmittels und die Identität eines beliebigen Verarbeitungselementes darstellt, welches das Betriebsmittel derzeit benutzt. Der Speicherstandort kann durch ein beliebiges der Verarbeitungselemente über Befehls- und Adressinformationen abgefragt werden. Wenn der Inhalt des Speicherstandortes anzeigt, dass sich das dazugehörige Betriebsmittel nicht in Gebrauch befindet, erhält das anfragende Verarbeitungselement sofort die Steuerung des Betriebsmittels. Wenn sich das Betriebsmittel in Gebrauch befindet, werden die Identität des Verarbeitungselementes, das derzeit das Betriebsmittel benutzt, und alle gespeicherten Betriebsmittel-Zustandsinformationen an das anfragende Verarbeitungselement zurückgeschickt.
  • Die vorliegende Erfindung ist auf das Bereitstellen eines dynamischen Gerätetreibermodells gerichtet, das zuverlässig funktioniert, wenn sich das Gerät in Betrieb befindet.
  • Dementsprechend stellt die Erfindung eine Vorrichtung zum Verwalten von Eingabe/Ausgabe(I/O)-Betriebsmittelinformationen in einem Rechner bereit, die Folgendes umfasst: Mittel, um in einer Datenbank Informationen über Eingabe/Ausgabe- Betriebsmittel zu definieren; Mittel zum dynamischen Aktualisieren der Eingabe/Ausgabe-Betriebsmittelinformationen; und Mittel zum Bereitstellen der Eingabe/Ausgabe- Betriebsmittelinformationen an einen oder mehrere Gerätetreiber.
  • Dies stellt eine Datenbank von Betriebsmitteln, die durch Gerätetreiber abgefragt werden kann, und ein Verfahren zum Verfolgen und Zuordnen von I/O-Betriebsmitteln für Gerätetreiber bereit.
  • Auf diese Weise kann eine Vielzahl von Gerätetreibern eine Gruppe von Hardware-Betriebsmitteln gemeinsam nutzen.
  • In einer Ausführungsform stellt ein Hardware- Betriebsmittelverwalter (HRM) eine Datenbank von I/O- Betriebsmitteln an Gerätetreiber bereit, wobei die Datenbank von den Treibern jederzeit abgefragt werden kann, um festzustellen, welche Betriebsmittel vorhanden sind. Zusätzlich stellt der HRM ein Verfahren zum Verfolgen und Zuordnen von Betriebsmitteln zwischen den Gerätetreibern bereit. Der HRM versorgt Gerätetreiber mit einer Standardausführung eines Betriebsmittel-Kennzeichnungssystems. Die Gerätetreiber müssen nur die Datenbank abfragen und mit ihr in Wechselwirkung treten. Die Gerätetreiber hängen nur von einer bestimmten Ausführung des HRM ab und müssen daher für unterschiedliche Betriebssysteme nicht mehr getrennt eingerichtet werden. Die von dem HRM bereitgestellte Datenbank kann auch dynamisch aktualisiert werden, was es den Gerätetreibern ermöglicht, hinsichtlich wichtiger Veränderungen in der Hardwarekonfiguration aktuelle Information zu empfangen.
  • Das Verfahren zum Verfolgen und Zuordnen von Betriebsmitteln, das vom HRM bereitgestellt wird, ermöglicht es mehreren Gerätetreibern, die gleiche physische Menge von Hardware- Betriebsmitteln gemeinsam zu benutzen. Der Gerätetreiber kann nicht nur den HRM nach einem bestimmten Hardware- Betriebsmittel abfragen, sondern der Treiber kann auch das Betriebsmittel anfordern. Wenn ein Betriebsmittel angefordert wird, stellt der HRM fest, ob derzeit ein anderes Gerät das Betriebsmittel benutzt. Wenn dies nicht der Fall ist, wird das Betriebsmittel dem anfordernden Gerätetreiber zugeordnet. Wenn sich das Betriebsmittel gerade in Gebrauch befindet, kann der HRM anfordern, das der Gerätetreiber auf das Betriebsmittel verzichtet. Die Antwort des anfänglichen Gerätes legt jede weitere Aktion fest, die vom HRM unternommen wird.
  • Die dynamische Natur des HRM-Systems gestattet, dass neue Geräte einfach hinzugefügt werden können. Dieses Problem entsteht sehr oft, wenn das Gerät und seine Steuerungshardware über einen langen Zeitraum benutzt worden sind und der Gerätetreiber speziell für das Gerät und die verwendete Steuerung geschrieben worden ist. An einem gewissen Punkt wird ein neues und völlig unterschiedliches Gerät entwickelt, es benutzt jedoch noch die gleiche Steuerung, gewöhnlich mit dem ursprünglichen Gerät, das noch dazugehört; z. B. ein zweites Plattenlaufwerk, das an die Steuerung angeschlossen ist, mit der das ursprüngliche Plattenlaufwerk verbunden war. Dies erfordert es üblicherweise, dass die ursprüngliche Gerätetreiber-Software neu geschrieben wird, um beide Gerätetypen zu unterstützen. Die Verwendung des HRM nach der Erfindung gestattet es jedoch, dass Software für zwei unterschiedliche Gerätetreiber für die beiden unterschiedlichen Geräte/Steuerungspaare geschrieben wird. Jeder Gerätetreiber würde sich in Unkenntnis des Vorhandenseins des anderen befinden.
  • Die Fähigkeit des HRM, neue Informationen dynamisch aufzunehmen, gestattet es dem System auch, sogar angesichts von Teilausfällen und während der Ausfalldiagnose funktionsfähig zu bleiben. Der HRM gestattet es einem Diagnoseprogramm, die Hardware-Betriebsmittel zu bekommen, die zum Durchführen der Diagnose erforderlich sind. Jeglicher Gerätetreiber, der vorher die Hardware benutzt hatte, würde im Wesentlichen von der Tatsache unberührt bleiben, dass derzeit eine Diagnose durchgeführt wird. Darüber hinaus würde das Einbauen der Diagnosefunktionen in den HRM es zulassen, dass der Programmierer des Gerätetreibers sich darauf konzentriert, Gerätetreiber-Software mit hoher Qualität und großem Leistungsvermögen bereitzustellen. Gleichermaßen kann sich der Programmierer der Diagnosesoftware darauf konzentrieren, Diagnosesoftware bereitzustellen, die zahlreiche Probleme und mögliche Probleme bei einem Hardwareteil erkennen kann.
  • Eine bevorzugte Ausführungsform der Erfindung wird nun unter Bezugnahme auf die Zeichnungen beschrieben, in denen:
  • Fig. 1 ein Objektdiagramm ist, das Beziehungen von Einheiten in einer HRM-Musterdatenbank zeigt;
  • Fig. 2 ein Objektdiagramm ist, das nur die topologischen Knoten in einer HRM-Musterdatenbank zeigt;
  • Fig. 3 ein Objektdiagramm ist, das die HRM-Datenbank mit Aktivitätsknoten veranschaulicht, wobei die Datenbank eine Untermenge der in Fig. 2 gezeigten Datenbank ist;
  • Fig. 4a bis 4d Objektdiagramme sind, die ein Gewährungs/Abtretungs-Protokollbeispiel unter Verwendung der Musterdatenbank zeigt, wie in Fig. 2 und 3 gezeigt ist, und insbesondere
  • Fig. 4a eine Veranschaulichung des Anfangsstatus der Datenbank ist,
  • Fig. 4b eine Veranschaulichung des Gerätetreibers ist, der Zugriff zu einem I/O-Betriebsmittel anfordert,
  • Fig. 4c den Zustand der Datenbank zeigt, wenn ein Gerätetreiber Zugriff erhält, und
  • Fig. 4d eine Veranschaulichung des ursprünglichen Gerätetreibers ist, der Zugriff zum Betriebsmittel freigibt; und
  • Fig. 5 ein Schaubild ist, das ein Beispiel des Busläufers veranschaulicht, der Gerätedienste bereitstellt.
  • Der Hardware-Betriebsmittelverwalter(HRM) besteht aus einer Menge von Rechnerprogrammen, welche die Vielfalt von Hardware- Betriebsmitteln verwalten, die zu einem Rechnersystem gehören. Der HRM gestattet es Gerätetreibern und anderen Software- Untersystemen, auf die physischen Hardware-Betriebsmittel zuzugreifen. Der HRM wird vorzugsweise in einer objektorientierten Programmiersprache ausgeführt. Es wird jedoch auch ins Auge gefasst, dass hierarchische und andere Programmiertechniken benutzt werden könnten, um die Erfindung wie beschrieben erfolgreich zu realisieren.
  • Die Konzepte und die Terminologie, wie sie zum Beschreiben der HRM-Datenbank benutzt werden, sind solche, wie sie auf dem Gebiet der Rechnerwissenschaft als objektorientiertes Programmieren (OOP) bekannt sind. OOP ist die bevorzugte Umgebung für den Aufbau benutzerfreundlicher, intelligenter Rechnersoftware. Schlüsselelemente von OOP sind Datenverkapselung, Vererbbarkeit und Polymorphismus. Diese Elemente können verwendet werden, um eine grafische Benutzerschnittstelle (GUI) zu erzeugen, die üblicherweise durch eine Fensterumgebung gekennzeichnet ist, die Symbole, Mauspositionsanzeiger und Menüs hat. Obwohl diese drei Schlüsselelemente den OOP-Sprachen gemeinsam sind, benutzen die meisten OOP-Sprachen die drei Schlüsselelemente unterschiedlich.
  • Beispiele von OOP-Sprachen sind Smalltalk, Object Pascal und C++. Smalltalk ist in der Tat mehr als eine Sprache; es könnte eher genauer als Programmierumgebung bezeichnet werden. Smalltalk wurde in den frühen Siebzigern in der Learning Research Group beim Palo Alto Research Center (PARC) von Xerox entwickelt. In Smalltalk wird an ein Objekt eine Nachricht geschickt, das Objekt selbst auszuwerten. Nachrichten führen eine Task aus, die der von Funktionsaufrufen in konventionellen Programmiersprachen gleicht. Der Programmierer muss sich mit der Art der Daten nicht befassen; statt dessen muss sich der Programmierer nur mit dem Erzeugen der richtigen Reihenfolge einer Nachricht und dem Benutzen der richtigen Nachricht befassen. Object Pascal ist die Sprache, wie sie für Macintosh-Rechner von Apple benutzt wird. Apple entwickelte Object Pascal in Zusammenarbeit mit Niklaus Wirth, dem Entwickler von Pascal. C++ wurde 1983 von Bjarne Stroustrup in den AT&T Laboratories als Erweiterung von C entwickelt, das die Sprache ist, in der das UNIX-Betriebssystem geschrieben wurde. Das Schlüsselkonzept von C++ ist eine Klasse, die eine benutzerdefinierte Art ist. Klassen stellen objektorientierte Programmiermerkmale bereit und haben üblicherweise zwei Arten von Mandanten, die als Instanzen und Unterklassen bezeichnet werden. C++-Module sind mit C-Modulen kompatibel und können frei verknüpft werden, so dass vorhandene C-Bibliotheken mit C++-Programmen benutzt werden können. Die bevorzugte Ausführungsform der Erfindung ist in C++ geschrieben.
  • Die am meisten benutzten objektbasierten und objektorientierten Programmiersprachen verfolgen ihr Erbe zurück bis auf Simula, die in den Sechzigern von O-J. Dahl, B. Myhrhaug und K. Nygard aus Norwegen entwickelt wurde. Weitere Informationen über das Thema des objektorientierten Programmierens kann durch Bezugnahme auf Object Oriented Design with Applications von Grady Booch, The Benjamin/Cummings Publishing Co., Inc., Redwood City, Calif. (1991), und An Introduction to Object-Oriented Programming von Timothy Budd, Addison-Wesley Publishing Co. (1991) erhalten werden.
  • Wie vorstehend angemerkt wurde, besteht der HRM aus einer Menge von Programmen. Diese Programme gehören im allgemeinen zu einer von vier Kategorien. Die erste Art von Programm ist der Namensdienst. Es gibt nur ein Programm dieser Art in jedem HRM, und es ist ein Nachweis von Informationen und ist für das Aufrechterhalten des Platzes für den lokalen Namen des Systems verantwortlich. Der Namensdienst ist ein Standardteil des I/O- Systems, und seine Hauptfunktion besteht darin, es unterschiedlichen Programmen zu gestatten, Informationen über die jeweils anderen Programme zu erhalten. Alle Dienste, die Programmtasken verfügbar sind, werden in dem Namensdienst gepflegt, so dass alle Tasken auf die gewünschten Dienste zugreifen können. Die zweite Kategorie von Programmen sind Betriebsmittel-Verwalterobjekte. Diese Programme bieten einen Bezugspunkt für die verschiedenen Busverwalter, die den Großteil des HRM ausmachen. Die dritte Art von Programmen sind die Busverwalter, welche die Schlüsselfunktion des HRM ausmachen. Jeder Bus hat einen bestimmten Busverwalter, der eine Datenbank aller Hardware-Betriebsmittel enthält, die in einem System vorhanden sind. Beispielhaft für gewöhnliche Busse sind der MicroChannel-Bus und der Bus der Kleinrechner- Systemschnittstelle (SCSI). Zusätzlich richten die Busverwalter das "Gewährungs/Abtretungs-Protokoll ein, das es anderen Baugruppen im System erlaubt, zu den verschiedenen Hardware-Betriebsmitteln Zugriff zu erlangen. Die vierte Kategorie von Programmen, die Busläufer, sind mit einen bestimmten Busverwalter verbunden und sind für das Laden der Datenbank mit Informationen verantwortlich, die mit dem Typ des Busses übereinstimmt, der verwaltet werden soll. In einigen Fällen ist der Busläufer ein einfaches Programm, das eine Scriptdatei lesen kann und diese Informationen dafür benutzt, die Datenbank seines Busverwalters zu laden. In anderen Fällen muss der Busläufer jedoch eine Anzahl von Dateien lesen und die Informationen benutzen, um eine von der Hardware vorbereitete Datenbank zu übersetzen (d. h. in nichtflüchtigem Speicher mit wahlfreiem Zugriff), um die Datenbank seines Busverwalters zu laden.
  • Die Datenbank, welche die gesamten Hardware-Betriebsmittel im System darstellt, wird in den verschiedenen Busverwaltern verteilt. Die Datenbank wird durch die Busverwalter gepflegt und ist nicht dauerhaft. Jeder Busverwalter behält seine Datenbank als Menge von Datenstrukturen, die abgefragt und bearbeitet werden kann, in seinem Speicherabbild. Die Wechselwirkung zwischen den verschiedenen Datenbanken ist minimal und ist auf das beschränkt, was über die HRM- Schnittstellen bereitgestellt wird.
  • Unter Bezugnahme auf die Zeichnungen und insbesondere auf Fig. 1 wird dort ein Objektdiagramm der Datenbank des Hardware-Betriebsmittelverwalters (HRM) gezeigt. Die Datenbank ist als Baum organisiert, wobei die Knoten des Baumes die verschiedenen Hardware-Betriebsmittel darstellen, die im System vorhanden sind. Die Größe und Form des Baumes wird durch die Typen von vorhandenen Betriebsmitteln und die Beziehungen zwischen Betriebsmitteln bestimmt. Jeder Zweig des Baumes stellt einen bestimmten Objekttyp dar, und es gibt Beschränkungen, an welchen Knoten sich Eltern oder Kinder von anderen Knoten sein können. Zusätzlich zur Darstellung der Beziehungen zwischen den verschiedenen Knoten zeigt Fig. 1 die Programme, die jeden der Knoten und den Typ der Knoten (d. h. topologischer Knoten und Aktivitätsknoten) enthalten.
  • Wieder unter Bezugnahme auf Fig. 1 können die Knoten in dem Baum in zwei Hauptkategorien unterteilt werden. Der erste Typ sind Knoten, welche die Topologie des Systems beschreiben oder, mit anderen Worten, kennzeichnen, welche Betriebsmittel in dem System vorhanden sind. Die zweite Kategorie sind solche Knoten, welche die Aktivität des Systems, oder welche Betriebsmittel derzeit im System in Gebrauch sind, beschreiben. Die Aktivitätsknoten des Systems sind als Unterbäume dargestellt, die den Teil der topologischen Knoten beschatten, für welche die Aktivität gerade dargestellt wird. Es ist von Bedeutung, hier anzumerken, dass es für einen bestimmten topologischen Knoten mehr als einen Aktivitäten- Unterbaum geben kann. Diese Struktur ist für das Gewährungs/Abtretungs-Protokoll wichtig und gestattet es mehreren Mandanten, Zugriff auf das gleiche physische Betriebsmittel zu erlangen.
  • Es gibt eine Anzahl von Typen von topologischen Knoten, und jeder Knoten ist von bestimmtem Typ. Wie in Fig. 1 gezeigt, ist der erste Typ von Knoten ein Betriebsmittel- Verwalterobjekt 10. Dieses Objekt wird durch das Betriebsmittel-Objektverwalterprogramm dafür benutzt, die verschiedenen Bustypen und Busobjekte mit dem Baum zu verbinden. Ein zweiter Typ von Knoten ist ein Bustyp 20, welcher den Typ von Bus kennzeichnet, den der Busverwalter unterstützt und der diese Informationen exportieren kann. Beispiele von Bustypen könnten MicroChannel-Architektur (MCA), AT-Bus- oder Industry-Standard-Architektur (ISA) und ihre Untergruppe Erweiterter ISA (EISA) und Kleinrechner- Systemschnittstelle (SCSI) sein. Der Busobjektknoten 30 wird durch einen Busverwalter erzeugt und kennzeichnet das Vorhandensein eines physischen Busses von dem Typ, den der Busverwalter unterstützt. Der nächste Typ von Knoten, ein Assoziationsknoten 40, wird dafür benutzt, ein oder mehrere Betriebsmittelobjekte zu einer einzigen Einheit zu gruppieren. Dies gestattet es, dass mehrere physische Einheiten zu einer logischen Einheit zusammengruppiert werden. Ein Betriebsmittelobjektknoten 50 wird dafür benutzt, ein oder mehrere Betriebsmittel in eine einzige Einheit zusammenzugruppieren, die es gestattet, dass mehrere physische Betriebsmittel in einer Form zusammengruppiert werden, die analog zu einer Steuerung ist. Der Betriebsmittel-Typknoten 60 wird dafür benutzt, den Typ und die Attribute eines Betriebsmittels anzuzeigen. Einige Beispiele von Betriebsmitteltypen sind I/O-Anschlüsse, I/O-Speicher und Unterbrechungsebenen. Ein letzter Typ von Knoten ist der Betriebsmittelknoten 70, der dafür benutzt wird, ein einzelnes physisches Betriebsmittel darzustellen. Beispiele dafür sind eine Unterbrechungsebene, ein benachbarter Bereich von I/O- Anschlüssen oder ein benachbarter Bereich von I/O-Speichern.
  • Es gibt auch bestimmte Typen von Aktivitätsknoten, die erzeugt werden, wenn ein Mandant die Betriebsmittel benutzen möchte, die durch einen topologischen Unterbaum dargestellt werden. Jeder Aktivitätsknoten stellt eine aktive Instanz eines entsprechenden topologischen Knotens dar. Wie in Fig. 1 gezeigt, sind drei Beispiele von Typen von Aktivitätsknoten Assoziationsinstanz 80, Betriebsmittel-Objektinstanz 90 und Betriebsmittelinstanz 100. Eine aktive Instanz eines topologischen Unterbaumes wird an der Spitze des Unterbaumes erzeugt. Ein vollständig aktiver Unterbaum wird erzeugt, wenn der Knoten an der Spitze des Unterbaumes aktiviert wird. Ein Beispiel wird für einen topologischen Unterbaum dargestellt, der aus einem Betriebsmittelobjekt und drei Betriebsmitteln besteht. Zuerst wird die Betriebsmittel-Objektinstanz erzeugt, und zur gleichen Zeit wird eine Betriebsmittelinstanz für jedes der drei Betriebsmittel erzeugt. Jede der Betriebsmittelinstanzen wird nicht nur mit dem Betriebsmittel verbunden, die sie darstellt, sondern auch mit der Betriebsmittel-Objektinstanz, die ihre Erzeugung ausgelöst hat. Darüber hinaus werden, wenn eine Assoziationsinstanz erzeugt worden ist, Betriebsmittel-Objektinstanzen für alle der Betriebsmittelobjekte unter dieser Assoziation erzeugt, und es werden jeweils Betriebsmittelinstanzen für jedes Betriebsmittelobjekt erzeugt. Wie diese Beispiele veranschaulichen, müssen jeder entsprechende Aktivitätsunterbaum und topologischer Unterbaum identisch sein.
  • Es gibt mehrere Dinge, die aus Fig. 1 nicht unmittelbar hervorgehen. Zuerst wird durch einen einzelnen Busverwalter ein einzelner Bustyp verwaltet. Es ist für ein einzelnes ausführbares Programm möglich, mehr als einen Bustyp zu unterstützen, dies wird jedoch wie mehrere Busverwalter gehandhabt. Andererseits ist es wahrscheinlich, das ein einzelner Busverwalter mehrere Busobjekte (die physische Busse darstellen) unterstützen kann. Zweitens werden die Bustyp- und die Betriebsmittel-Typknoten durch den Busverwalter definiert und hängen nicht vom Inhalt des Restes der Datenbank ab. Daher sind sie immer in der Datenbank vorhanden. Im Gegensatz dazu werden alle restlichen Knoten mit Ausnahme des Betriebsmittel- Verwalterobjektes durch Busläufer in der Datenbank untergebracht.
  • Fig. 2 veranschaulicht ein vereinfachtes Muster einer HRM- Datenbank, bei der nur die topologischen Knoten vorhanden sind, die es gestatten, dass die topologische Struktur einfach beobachtet werden kann. Es ist wichtig anzumerken, dass jeder topologische Knoten Informationen hat, die mit ihm verbunden ist, einschließlich eines Namens. Der Name wird in der Datenstruktur benutzt, den Knoten darzustellen, und wird durch den HRM auch im Namendienstprogramm benutzt. Es sollte angemerkt werden, dass zum Zwecke der Vereinfachung des Diagramms die Verknüpfungen zwischen dem Busobjektknoten und den Betriebsmittelknoten nicht gezeigt worden sind.
  • Wie in der HRM-Datenbank in Fig. 2 gezeigt, ist Muster 110 ein Bustyp. Dieser Bustyp hat drei Typen von Betriebsmitteln, Typ A 112, Typ B 114 und Typ C 116, die mit dem Bus benutzt werden können. Muster 0 118 stellt einen physischen Bus dar, der durch den Busverwalter verwaltet werden soll. Muster 0 hat sechs angeschlossene Betriebsmittel, die Verbindungen zwischen ihnen sind jedoch, wie vorstehend vermerkt, in der Figur nicht gezeigt. Betriebsmittel R-a 120, R-d 122 und R-f 124 haben einen Betriebsmitteltyp vom Typ A. Betriebsmittel R-b 126 und R-e 128 haben einen Betriebsmitteltyp vom Typ C. Schließlich hat Betriebsmittel R-c 130 einen Betriebsmitteltyp vom Typ B. Die Betriebsmittel sind in Betriebsmittelobjekten organisiert, und in diesem Beispiel werden die sechs Betriebsmittel in drei Betriebsmittelobjekten gruppiert. Das erste Betriebsmittelobjekt Ctlr-A 132 enthält ein einziges Betriebsmittel R-e. Das zweite Betriebsmittelobjekt, Ctlr-B 134 enthält zwei Betriebsmittel R-a und R-c. Das letzte Betriebsmittelobjekt Ctlr-C 136 enthält vier Betriebsmittel R- b, R-c, R-d und R-f. Eine Assoziation, Gruppe 138, enthält zwei der Betriebsmittelobjekte Ctlr-A und Ctlr-B. Es ist wichtig anzumerken, dass Betriebsmittel R-c in zwei Betriebsmittelobjekten enthalten ist, Ctlr-B und Ctlr-C. Dies gestattet es mehreren Benutzern, auf das gleiche Betriebsmittel zuzugreifen. Das Verhalten des Betriebsmittels wird durch den Betriebsmitteltyp festgelegt. Das Betriebsmittel kann gemeinsam nutzbar sein, was mehreren Benutzern den gleichzeitigen Zugriff auf das Betriebsmittel gestattet. In anderen Fällen kann das Betriebsmittel nicht gemeinsam nutzbar sein, wodurch der Zugriff auf das Betriebsmittel zu einem Zeitpunkt auf einen einzigen Benutzer begrenzt wird.
  • Fig. 3 stellt eine Veranschaulichung der Beziehungen zwischen Aktivitätsknoten und topologischen Knoten in der HRM-Datenbank bereit. Um das Schaltbild zu vereinfachen, werden nur die topologischen Knoten gezeigt, die durch Aktivitätsknoten beschattet werden. Fig. 3 ist eine Untermenge der Knoten, die in Fig. 2 gezeigt werden, und Fig. 3 wird unter Bezugnahme auf die vorstehend bereitgestellte Information beschrieben.
  • Unter Bezugnahme auf Fig. 3 stellen die dunkleren Knoten topologische Knoten dar, und die dunkleren Linien zeigen ihre Beziehungen untereinander. Die helleren Knoten stellen Aktivitätsknoten dar, und die helleren Linien zeigen ihre Beziehungen untereinander. Die Aktivitätsknoten sind im "Schatten" der topologischen Knoten angeordnet, mit denen sie verbunden sind. Der in Fig. 3 gezeigte Baum und die Beziehungen stellen für die Aktivitätsknoten zeitlich eine Augenblickssituation dar. Es sollte angemerkt werden, dass topologische Knoten dynamisch hinzugefügt oder entfernt werden können. Die Veränderungen sind jedoch gewöhnlich von Veränderungen an der physischen Konfiguration des Systems abhängig. Andererseits werden sie, da Aktivitätsknoten den Gebrauch der verschiedenen Teile des Systems widerspiegeln, der Datenbank des HRM gewöhnlich mit größerer Häufigkeit als topologische Knoten hinzugefügt oder aus ihr entfernt.
  • Die Konfiguration der in Fig. 3 gezeigten Datenbank veranschaulicht ein Endergebnis von Knoten, nachdem der HRM einige der Betriebsmittel im System verfolgt und zugeordnet hat. Es sollte sich jedoch verstehen, dass die folgende Beschreibung nur einen der möglichen Handlungsabläufe beschreibt, die aufgetreten sind und zu den gezeigten Ergebnissen geführt haben. Das Erzeugen eines aktiven Instanzknotens für eine Assoziation oder ein Betriebsmittelobjekt signalisiert dem HRM, für alle Knoten in dem Unterbaum aktive Instanzen zu erzeugen. In diesem Falle besteht der erste Schritt im Erzeugen einer aktiven Instanz der Gruppe 200, einer Assoziation. Dies erzeugt automatisch aktive Instanzen von Betriebsmittelobjekten Ctlr-A 202 und Ctlr-B 204. Zusätzlich werden für die in den Betriebsmittelobjekten enthaltenen Betriebsmittel aktive Instanzen erzeugt. Daher sind für die Betriebsmittel R-a 206, R-c 208 und R-e 210 aktive Instanzen erzeugt worden. Nachdem die aktive Instanz der Gruppe erzeugt worden ist, wird für das Betriebsmittelobjekt Ctlr-B eine getrennte aktive Instanz erzeugt. Das Erzeugen der aktiven Instanz von Ctlr-B veranlasst, dass aktive Instanzen für die Betriebsmittel R-a und R-c erzeugt werden. Abschließend wird für das Betriebsmittelobjekt Ctlr-C 212 eine aktive Instanz erzeugt, die veranlasst, dass für die Betriebsmittel R-b 214, R-c 208, R-d 216 und R-f 218 aktiven Instanzen erzeugt werden.
  • Obgleich der Aktivitätenunterbaum nun in der HRM-Datenbank erzeugt worden ist, hat der Mandant des HRM noch keinen Zugriff auf die durch den Unterbaum dargestellten tatsächlichen Betriebsmittel. Ein Mandant kann Zugriff auf die Betriebsmittel erlangen, indem er sie anfordert. Die Anforderung geht gewöhnlich an einen vollständigen Unterbaum (d. h. eine Assoziation oder ein Betriebsmittelobjekt) statt an einzelne Betriebsmittel.
  • Die Anforderung eines Betriebsmittels kann durch mehrere Mandanten des HRM gleichzeitig erfolgen. Dieser Konflikt erfordert es, dass der HRM die Betriebsmittel zwischen den Mandanten zuordnet. Vom HRM wird ein "Gewährungs/Abtretungs"- Protokoll benutzt, um festzulegen, welcher Mandant auf das Betriebsmittel zugreifen kann. Dieses Protokoll wird aufgerufen, wenn ein Mandant eine Gruppe von Betriebsmitteln anfordert. Der erste Schritt besteht für den HRM darin festzustellen, ob ein anderer Mandant derzeit auf diese Betriebsmittel zugreift. Wenn dies nicht der Fall ist, gewährt der HRM die Betriebsmitttel dem anfordernden Kunden direkt. Andererseits muss, wenn ein anderer Mandant auf die Betriebsmittel zugreift, der HRM anfragen, ob und wann der andere Mandant die Betriebsmittel erlangen kann. Das Ergebnis legt fest, ob der anfordernde Mandant auf die Betriebsmittel zugreifen kann oder ob der anfordernde Mandant warten muss, bis der ursprüngliche Mandant willens ist, die Betriebsmittel freizugeben.
  • Eine Veranschaulichung des "Gewährungs/Abtretungs"-Protokolls wird in Fig. 4a bis 4d bereitgestellt. Diese Figuren beruhen auf dem Beispiel der HRM-Datenbank, wie es in Fig. 2 und 3 veranschaulicht ist und vorstehend erörtert wurde. Diese Figuren veranschaulichen die Aktivität von drei HRM- Mandanten, a, b und g. Mandant a stellt einen Mandanten dar, der einen Aktivitätenunterbaum erzeugt hat, der mit der Assoziationsgruppe begonnen hat. Mandant b stellt einen Mandanten dar, der einen Aktivitätenbaum erzeugt hat, der bei dem Betriebsmittelobjekt Ctlr-B begonnen hat. Schließlich stellt Mandant g einen Mandanten dar, der einen Aktivitätenunterbaum erzeugt hat, der an Betriebsmittelobjekt Ctlr-C begonnen hat.
  • Fig. 4a veranschaulicht einen Anfangszustand einer HRM- Datenbank, in der Mandant b angefordert hat, dass seine Instanz von Ctlr-C 212 vollständig aktiviert wird, so dass Mandant b auf die Hardware-Betriebsmittel in dem Unterbaum Ctlr-C vollständigen Zugriff haben wird. Die Aktivitätenknoten, die aktiv sind, werden durch Schattierung angezeigt. An diesem Punkt wird, um das vom HRM benutzte Protokoll zu veranschaulichen, Mandant a Zugriff zu den Betriebsmitteln anfordern, die durch den Gruppenunterbaum dargestellt werden.
  • Fig. 4b zeigt den Zustand der HRM-Datenbank, nachdem Mandant a Zugriff auf die Betriebsmittel in Gruppenunterbaum angefordert hat. Durch den HRM sind eine Anzahl von Schritten ausgeführt worden, um den Zustand der Datenbank von dem einen in Fig. 4a gezeigten zu dem in Fig. 4b gezeigten zu verändern. Der erste Schritt in dem Umwandlungsvorgang besteht darin, dass der Zustand der dem Mandanten a eigenen Instanz 300 der Gruppe verändert wird, um sie aktiv zu machen. Dann beginnt der HRM damit, alle Unterbäume der Betriebsmittel- Objektinstanzen zu aktivieren, die Teil der Gruppeninstanz von Mandant a sind. In diesem Beispiel sind Ctlr-A und Ctlr-B die betroffenen Betriebsmittel-Objektinstanzen. Daher wird der Zustand der Instanz von Ctlr-A 320 des Mandanten a als aktiviert gekennzeichnet, und der HRM beginnt damit, die Betriebsmittel zu aktivieren, die in der Instanz Ctrl-A des Mandanten a enthalten sind. Das einzige Betriebsmittel, das in diesem Beispiel aktiviert werden muss, ist R-e. Der HRM fragt den Betriebsmittelknoten für R-e ab, um festzustellen, ob das Betriebsmittel schon aktiv ist. Da es nicht aktiv ist, kann der HRM die Instanz von R-e 330 des Mandanten a als vollständig aktiv verändern. Die Verfahrensweise, die Instanz vollständig aktiv zu machen, ist in dem Betriebsmitteltyp für das bestimmte Betriebsmittel definiert. An diesem Punkt läuft der HRM weiter durch die restlichen Betriebsmittelinstanzen für Mandanten a, die sich in dem Unterbaum Ctlr-A befinden. Da in diesem Beispiel keine anderen Betriebsmittelinstanzen vorhanden sind und der HRM R-e vollständig aktiviert hat, kann der HRM nun die Instanz von Ctlr-A 320 von Mandant a auf vollständig aktiv verändern. Nun kann der HRM eine Gewährungsnachricht an Mandanten a senden, die anzeigt, dass der Mandant vollständigen Zugriff auf alle die Betriebsmittel hat, die in dem Betriebsmittelobjekt enthalten sind. Zu diesem Zeitpunkt wird der HRM zu den restlichen Betriebsmittelobjekten, falls solche vorhanden sind, in der Assoziation weiterlaufen. In diesem Beispiel ist Ctlr-B das einzige verbleibende Betriebsmittelobjekt. Daher wird der Zustand der Instanz von Ctlr-B 330 des Mandanten a verändert, um anzuzeigen, dass sie aktiv wird. Die vom HRM unternommenen Aktivitäten hinsichtlich des ersten mit Ctlr-B 330, R-a verbundenen Betriebsmittels sind die gleichen wie diejenigen, die vorstehend für R-e erörtert worden sind. In diesem Falle hat Ctlr-B jedoch ein zweites mit ihm verbundenes Betriebsmittel R-c. Der HRM markiert den Zustand der Instanz von R-c 340 des Mandanten a als aktiviert und fragt an, ob es eine weitere Instanz von Betriebsmittel R-c gibt, die aktiv ist. Bei diesem Betriebsmittel ist die Instanz 350 für Mandanten b schon aktiv. Daher markiert der HRM die Instanz für Mandant b als inaktiv und muss dann anfragen, ob Mandant b willens ist, das/die Betriebsmittel freizugeben. Mandant b kann entweder mit "wird freigegeben", "später", "wird entschieden" oder "nein" antworten. Wenn der Mandant willens ist, das/die Betriebsmittel freizugeben, muss er den derzeitigen Zustand des/der Betriebsmittel sichern. Wenn der derzeitige Mandant keine unmittelbare Freigabe erteilen kann, aber in der nahen Zukunft zur Freigabe in der Lage sein wird, antwortet er mit "später". Im Falle eines Mandanten, der nicht genug Informationen hat, um festzulegen, ob er eine Freigabe erteilen kann, antwortet der Mandant mit "wird entschieden", und ein anderer Teil des Systems nimmt die Entscheidung vor. Schließlich wird der Mandant, wenn das Betriebsmittel kritisch ist und nicht aufgegeben werden kann, mit "nein" antworten. In diesem Beispiel wird angenommen, dass Mandant b willens ist, Zugriff zu dem Betriebsmittel zu gewähren. Daher muss Mandant b immer den Zustand sichern, der für das Betriebsmittel von Bedeutung ist, und er muss annehmen, dass er nun keinerlei Zugriff zu dem Betriebsmittel mehr hat.
  • Fig. 4c veranschaulicht die Datenbank, nachdem Mandant b für Betriebsmittel R-c Zugriff gewährt hat, und sie wird dafür benutzt, die Schritte des HRM aufzuzeigen, nachdem dieser Vorgang abgelaufen ist. Nachdem der HRM benachrichtigt worden ist, dass Mandant b Zugriff zu dem Betriebsmittel gewährt hat, wird der Zustand der Instanz von Mandant a für R-c auf vollständig aktiv geändert. Der HRM würde nun für Mandant a zu anderen Betriebsmittelinstanzen von Ctlr-B fortschreiten. Da es keine Übrigbleibenden gibt, wird der HRM den Zustand der Instanz von Ctlr-B von Mandant a dahingehend modifizieren, dass sie vollständig aktiv ist. An diesem Punkt ist das Betriebsmittelobjekt Ctlr-B vollständig aktiv, und der HRM wird Mandanten a davon benachrichtigen, dass er vollständigen Zugriff auf alle Betriebsmittel in diesem Betriebsmittelobjekt hat. Zusätzlich kann, da es keine weiteren Betriebsmittelobjekte gibt, die mit der Gruppe verbunden sind, der Zustand der Instanz a der Gruppe auf aktiv verändert werden, und Mandant a wird davon benachrichtigt.
  • Der ursprüngliche Mandant, der ein Betriebsmittel benutzt, wird gewöhnlich freiwillig die restlichen Betriebsmittel freigeben, die mit dem Betriebsmittelobjekt verbunden sind, da er im allgemeinen an einer Anzahl von Betriebsmitteln interessiert ist und nicht an einem einzelnen bestimmten Betriebsmittel. Daher wird, wie in Fig. 4c gezeigt, die Instanz b von Ctlr-C 360 so eingestellt, dass sie inaktiv wird, und der HRM wird voranschreiten, die restlichen Instanzen zu deaktivieren, in denen Mandant b noch aktiv ist. Dann prüft der HRM entsprechend der Betriebsmittel- Objektinstanz für Ctlr-C von Mandant b jede der Betriebsmittelinstanzen, um festzustellen, ob irgendwelche aktiv sind. Jedes Mal, wenn der HRM auf eine aktive Instanz trifft, verändert der HRM den Zustand der Instanz so, dass sie inaktiv wird, und sendet dann an den Mandanten eine Freigabenachricht. Wie vorstehend erörtert, antwortet der Mandant, ob er willens ist, die Freigabe zu erteilen oder nicht. Angenommen, der Mandant erteilt die Freigabe, sichert der Mandant den verbleiben restlichen Zustand der Hardware, die durch das Betriebsmittel dargestellt wird, und antwortet dann dem HRM. Beim Empfang der Antwort verändert der HRM den Zustand der Instanz auf inaktiv. Der HRM läuft durch alle Betriebsmittel weiter, bis alle freigegeben sind, und dann verändert der HRM den Zustand der Betriebsmittel-Objektinstanz auf inaktiv. Abschließend benachrichtigt der HRM den Mandanten b, dass die Betriebsmittel-Objektinstanz freigegeben worden ist. Fig. 4d veranschaulicht die Datenbank, nachdem Mandant b den Zugriff auf alle Betriebsmittel freigegeben hat, auf die er Zugriff hatte.
  • Ein Busläufer ist ein Programm, das für das Laden der HRM- Datenbank auf eine vom System definierte Weise verantwortlich ist. Jeder Bus hat einen zugehörigen Busläufer, der seine Konfigurationsinformationen für das bestimmte System erhält.
  • Dieses System gestattet es, dass der HRM vollständig unabhängig von dem Verfahren ist, mit dem die Konfigurationsinformationen für jedes bestimmte System bereitgestellt wird. Der HRM muss nur die Einzelheiten für die Busse kennen, die er unterstützt.
  • Ein Beispiel für einige unterschiedliche Arten von Busläufern für einen Bustyp wird in Fig. 5 dargestellt. Dieses Beispiel zeigt den Bus auf der Rückwandplatine, welche der Anschlussbereich für die Mehrzahl der I/O-Betriebsmittel bei einem Rechnersystem ist. Dieser Bus hat üblicherweise Steckplätze, um Erweiterungs- oder Adapterkarten einzustecken. Zusätzlich schließt der Bus auf der Rückwandplatine auch I/O- Einheiten, die sich auf der Hauptplatine des Rechnersystems befinden.
  • In einigen Systemen, wie sie in Fig. 5 gezeigt werden, gibt es kein direktes Mittel zum Ermitteln der Hardware- Konfiguration 300. Daher müssen sich diese Systeme auf eine Datei mit Daten verlassen, die eine Darstellung der Hardware- Konfiguration enthält, oder sie müssen das I/O-Register nach einer Ermittlung abfragen, ob die Hardware vorhanden ist. Der Busläufer kann entweder eines oder beide Verfahren benutzen, um die HRM-Datenbank mit der aktuellen Hardware-Konfiguration zu laden.
  • In anderen Fällen hält das System die Hardware-Konfiguration in einem dauerhaften Mittel 320 fest, beispielsweise einem Speicher mit wahlfreiem Zugriff, der eine batteriegetriebene Sicherung hat. Diese Informationen sind jedoch gewöhnlich codiert und erfordern deshalb Hilfsdateien, um die Hardware- Konfiguration zu übersetzen. Diese Informationen können dann vom Busläufer benutzt werden, um die HRM-Datenbank zu laden.
  • Der HRM stellt die Schnittstelle zum Busläufer bereit, so dass der Busläufer die HRM-Datenbank laden kann. Das Busläufersystem isoliert jedoch den HRM von den Einzelheiten der Konfiguration eines einzelnen Systems. Daher wird der HRM eher einfacher an unterschiedliche Systemkonfigurationen und -arten angeschlossen.
  • Obgleich die Erfindung in Begriffen einer einzelnen bevorzugten Ausführungsform beschrieben worden ist, wird der Fachmann erkennen, dass die Erfindung innerhalb des Umfanges der anhängenden Ansprüche mit Veränderung ausgeführt werden kann.

Claims (8)

1. Hardware-Betriebsmittelverwalter zum Verwalten von Pfadinformation von Eingabe-/Ausgabe(I/O)-Betriebsmitteln, um es Gerätetreibern zu ermöglichen, auf physische Hardware-Betriebsmittel eines Rechnersystems zuzugreifen, der das Folgende umfasst:
eine Datenbank von I/O-Betriebsmitteln, auf die von Gerätetreibern zugegriffen werden kann und die Information enthält, welche die Pfade der Eingabe-/Ausgabe- Betriebsmittel definiert, wobei die Datenbankinformation kennzeichnet, welche Betriebsmittel im System vorhanden sind und welche Betriebsmittel im System derzeit benutzt werden, wobei die Datenbankinformation physische Hardware- Betriebsmittel vom gleichem Typ (60,70) logisch verknüpft;
Mittel zum dynamischen Aktualisieren der Pfadinformation der Eingabe-/Ausgabebetriebsmittel in der Datenbank, um es zu ermöglichen, dass dem Hardware-Betriebsmittelverwalter neue Geräte hinzugefügt werden; und
Mittel zum Verfolgen und Zuordnen von Betriebsmitteln, um zu ermöglichen, dass mehrere Gerätetreiber eine gleiche physische Gruppe von Hardware-Betriebsmitteln gemeinsam nutzen, wobei der Hardware-Betriebsmittelverwalter einem oder mehreren Gerätetreibern Pfadinformation der Eingabe-/ Ausgabebetriebsmittel bereitstellt.
2. Hardware-Betriebsmittelverwalter nach Anspruch 1, bei dem der Hardware-Betriebsmittelverwalter eine Sammlung von Rechnerprogrammen enthält, bei denen eines der Rechnerprogramme für jede Art von Pfad eines Eingabe-/ Ausgabebetriebsmittels Information über die Hardwarekonfiguration ergibt.
3. Hardware-Betriebsmittelverwalter nach Anspruch 1 oder Anspruch 2, wobei das Mittel zum Verfolgen und Zuordnen ein Gewährungs-/Abtretungsprotokoll (Fig. 4a bis 4d) einrichtet, in dem die Pfade der Eingabe-/ Ausgabebetriebsmittel zwischen einer Vielzahl von Gerätetreibern angeordnet und zugeordnet werden können.
4. Hardware-Betriebsmittelverwalter nach Anspruch 3, wobei das Mittel zum Verfolgen und Zuordnen das Folgende umfasst:
Mittel, die auf einen ersten Gerätetreiber reagieren, der einen der Pfade der Eingabe-/Ausgabebetriebsmittel anfordert;
Mittel, die feststellen, ob der eine der Pfade der Eingabe-/Ausgabebetriebsmittel derzeit von einem zweiten Gerätetreiber benutzt wird; und
Mittel, die auf das Feststellmittel zum Zuordnen eines der Pfade der Eingabe-/Ausgabebetriebsmittel zu dem ersten Gerätetreiber reagieren, wenn der Betriebsmittelpfad derzeit nicht von einem zweiten Gerätetreiber benutzt wird, und die den zweiten Gerätetreiber abfragen, ob er den Pfad des Eingabe-/Ausgabebetriebsmittels freigeben will, wenn der Betriebsmittelpfad derzeit in Gebrauch ist, und die den ersten Gerätetreiber davon benachrichtigen, ob er auf den Pfad des Eingabe-/Ausgabebetriebsmittels zugreifen kann.
5. Verfahren, das durch einen Hardware- Betriebsmittelverwalter zum Verwalten von Pfadinformation von Eingabe-/Ausgabe(I/O)-Betriebsmitteln eingerichtet wird, um es Gerätetreibern zu ermöglichen, auf physische Hardware-Betriebsmittel eines Rechnersystems zuzugreifen, das die folgenden Schritte umfasst:
Definieren von Information in einer Datenbank über Pfade von Eingabe-/Ausgabetriebsmitteln, wobei auf die Datenbankinformation durch Gerätetreiber zugegriffen werden kann und gekennzeichnet wird, welche Betriebsmittel in dem System vorhanden sind und welche Betriebsmittel derzeit im System benutzt werden, wobei die Datenbankinformation physische Hardware-Betriebsmittel des gleichen Typs (60, 70) logisch verknüpft;
dynamisches Aktualisieren von Pfadinformation von Eingabe-/Ausgabebetriebsmitteln in der Datenbank, um es zu ermöglichen, dass dem Hardware-Betriebsmittelverwalter neue Geräte hinzugefügt werden; und
Verfolgen und Zuordnen von Betriebsmitteln, um es zu ermöglichen, dass mehrere Gerätetreiber eine gleiche physische Gruppe von Hardware-Betriebsmitteln gemeinsam nutzen und Bereitstellen von Pfadinformation von Eingabe-/ Ausgabebetriebsmitteln an einen oder mehrere Gerätetreiber.
6. Verfahren nach Anspruch 5, bei dem der Schritt des Definierens von Information den Gebrauch eines oder mehrerer Rechnerprogramme enthält, wobei eines der Rechnerprogramme für jeden Typ von Eingabe-/ Ausgabebetriebsmittel Information über die Hardwarekonfiguration ergibt.
7. Verfahren nach Anspruch 5 oder Anspruch 6, wobei der Schritt des Verfolgens und Zuordnens den Schritt des Einrichtens eines Gewährungs-/Abtretungsprotokolls (Fig. 4a bis 4d) enthält, in dem die Pfade der Eingabe-/ Ausgabebetriebsmittel zwischen einer Vielzahl von Gerätetreibern angefordert und zugeordnet werden können.
8. Verfahren nach Anspruch 7, wobei das Gewährungs-/ Abtretungsprotokoll (Fig. 4a bis 4d), das durch den Schritt des Verfolgens und Zuordnens der Pfade der Eingabe-/Ausgabebetriebsmittel eingerichtet wird, folgende Schritte umfasst:
durch einen ersten Gerätetreiber Anfordern eines der Pfade der Eingabe-/Ausgabebetriebsmittel;
Feststellen, ob der eine Pfad der Eingabe-/ Ausgabebetriebsmittel derzeit durch einen zweiten Gerätetreiber in Gebrauch ist; und
Benutzen der Ergebnisse des Feststellungsschrittes zum Zuordnen eines der Pfade der Eingabe-/ Ausgabebetriebsmittel zu dem ersten Gerätetreiber, wenn der Betriebsmittelpfad derzeit nicht von dem zweiten Gerätetreiber benutzt wird, oder den zweiten Gerätetreiber abfragen, ob er den Eingabe-/Ausgabepfad freigeben will, wenn das Betriebsmittel derzeit in Gebrauch ist und Benutzen der Ergebnisse der Abfrage, um den ersten Gerätetreiber zu benachrichtigen, ob er auf den Pfad des Eingabe-/Ausgabebetriebsmittels zugreifen kann.
DE69423853T 1993-12-13 1994-11-11 Ein-/Ausgabeobjekte in einem Betriebssystemkern Expired - Lifetime DE69423853T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US16599593A 1993-12-13 1993-12-13

Publications (2)

Publication Number Publication Date
DE69423853D1 DE69423853D1 (de) 2000-05-11
DE69423853T2 true DE69423853T2 (de) 2000-10-19

Family

ID=22601352

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69423853T Expired - Lifetime DE69423853T2 (de) 1993-12-13 1994-11-11 Ein-/Ausgabeobjekte in einem Betriebssystemkern

Country Status (4)

Country Link
US (1) US5794035A (de)
EP (1) EP0657809B1 (de)
JP (1) JP3248659B2 (de)
DE (1) DE69423853T2 (de)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0863421A (ja) * 1994-08-22 1996-03-08 Nec Corp ハードウェア構成情報集中管理方式
US5991822A (en) * 1997-03-17 1999-11-23 International Business Machines Corporation System for modifying functions of static device driver using a registered driver extension extended dynamically by providing an entry point for the driver extension
US6499073B1 (en) 1997-05-13 2002-12-24 Micron Electronics, Inc. System using programmable processor for selectively enabling or disabling power to adapter in response to respective request signals
US6324608B1 (en) 1997-05-13 2001-11-27 Micron Electronics Method for hot swapping of network components
US6247898B1 (en) 1997-05-13 2001-06-19 Micron Electronics, Inc. Computer fan speed control system
US6138250A (en) 1997-05-13 2000-10-24 Micron Electronics, Inc. System for reading system log
US6163853A (en) 1997-05-13 2000-12-19 Micron Electronics, Inc. Method for communicating a software-generated pulse waveform between two servers in a network
US6304929B1 (en) 1997-05-13 2001-10-16 Micron Electronics, Inc. Method for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6247079B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc Apparatus for computer implemented hot-swap and hot-add
US6179486B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Method for hot add of a mass storage adapter on a system including a dynamically loaded adapter driver
US6170028B1 (en) 1997-05-13 2001-01-02 Micron Electronics, Inc. Method for hot swapping a programmable network adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6282673B1 (en) 1997-05-13 2001-08-28 Micron Technology, Inc. Method of recording information system events
US6269412B1 (en) 1997-05-13 2001-07-31 Micron Technology, Inc. Apparatus for recording information system events
US6338150B1 (en) 1997-05-13 2002-01-08 Micron Technology, Inc. Diagnostic and managing distributed processor system
US5987554A (en) 1997-05-13 1999-11-16 Micron Electronics, Inc. Method of controlling the transfer of information across an interface between two buses
US6073255A (en) 1997-05-13 2000-06-06 Micron Electronics, Inc. Method of reading system log
US6243773B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Configuration management system for hot adding and hot replacing devices
US6253334B1 (en) 1997-05-13 2001-06-26 Micron Electronics, Inc. Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses
US6269417B1 (en) 1997-05-13 2001-07-31 Micron Technology, Inc. Method for determining and displaying the physical slot number of an expansion bus device
US6173346B1 (en) 1997-05-13 2001-01-09 Micron Electronics, Inc. Method for hot swapping a programmable storage adapter using a programmable processor for selectively enabling or disabling power to adapter slot in response to respective request signals
US5892928A (en) 1997-05-13 1999-04-06 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a dynamically loaded adapter driver
US5962933A (en) * 1997-05-13 1999-10-05 Micron Electronics, Inc. Computer fan speed control method
US6219734B1 (en) 1997-05-13 2001-04-17 Micron Electronics, Inc. Method for the hot add of a mass storage adapter on a system including a statically loaded adapter driver
US6182180B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Apparatus for interfacing buses
US6163849A (en) 1997-05-13 2000-12-19 Micron Electronics, Inc. Method of powering up or powering down a server to a maintenance state
US6145098A (en) 1997-05-13 2000-11-07 Micron Electronics, Inc. System for displaying system status
US6202111B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a statically loaded adapter driver
US6192434B1 (en) 1997-05-13 2001-02-20 Micron Electronics, Inc System for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6202160B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. System for independent powering of a computer system
US6526333B1 (en) 1997-05-13 2003-02-25 Micron Technology, Inc. Computer fan speed control system method
US6134668A (en) 1997-05-13 2000-10-17 Micron Electronics, Inc. Method of selective independent powering of portion of computer system through remote interface from remote interface power supply
US6363497B1 (en) 1997-05-13 2002-03-26 Micron Technology, Inc. System for clustering software applications
US6122746A (en) 1997-05-13 2000-09-19 Micron Electronics, Inc. System for powering up and powering down a server
US6330690B1 (en) 1997-05-13 2001-12-11 Micron Electronics, Inc. Method of resetting a server
US6247080B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc. Method for the hot add of devices
US6266721B1 (en) 1997-05-13 2001-07-24 Micron Electronics, Inc. System architecture for remote access and control of environmental management
US6122758A (en) 1997-05-13 2000-09-19 Micron Electronics, Inc. System for mapping environmental resources to memory for program access
US6134673A (en) 1997-05-13 2000-10-17 Micron Electronics, Inc. Method for clustering software applications
US6170067B1 (en) 1997-05-13 2001-01-02 Micron Technology, Inc. System for automatically reporting a system failure in a server
US6249834B1 (en) 1997-05-13 2001-06-19 Micron Technology, Inc. System for expanding PCI bus loading capacity
US6195717B1 (en) 1997-05-13 2001-02-27 Micron Electronics, Inc. Method of expanding bus loading capacity
US6243838B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Method for automatically reporting a system failure in a server
US6249828B1 (en) * 1997-05-13 2001-06-19 Micron Electronics, Inc. Method for the hot swap of a mass storage adapter on a system including a statically loaded adapter driver
US6292905B1 (en) 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
US6249885B1 (en) 1997-05-13 2001-06-19 Karl S. Johnson Method for managing environmental conditions of a distributed processor system
US5990582A (en) * 1997-05-13 1999-11-23 Micron Electronics, Inc. Computer fan speed control device
US6148355A (en) 1997-05-13 2000-11-14 Micron Electronics, Inc. Configuration management method for hot adding and hot replacing devices
US6175490B1 (en) 1997-10-01 2001-01-16 Micron Electronics, Inc. Fault tolerant computer system
US6088816A (en) 1997-10-01 2000-07-11 Micron Electronics, Inc. Method of displaying system status
US6035420A (en) 1997-10-01 2000-03-07 Micron Electronics, Inc. Method of performing an extensive diagnostic test in conjunction with a bios test routine
US6009541A (en) 1997-10-01 1999-12-28 Micron Electronics, Inc. Apparatus for performing an extensive diagnostic test in conjunction with a bios test routine
US6263387B1 (en) 1997-10-01 2001-07-17 Micron Electronics, Inc. System for automatically configuring a server after hot add of a device
US6065053A (en) 1997-10-01 2000-05-16 Micron Electronics, Inc. System for resetting a server
US6212585B1 (en) 1997-10-01 2001-04-03 Micron Electronics, Inc. Method of automatically configuring a server after hot add of a device
US6154835A (en) 1997-10-01 2000-11-28 Micron Electronics, Inc. Method for automatically configuring and formatting a computer system and installing software
US6298409B1 (en) 1998-03-26 2001-10-02 Micron Technology, Inc. System for data and interrupt posting for computer devices
US6421746B1 (en) 1998-03-26 2002-07-16 Micron Electronics, Inc. Method of data and interrupt posting for computer devices
EP0964333A1 (de) * 1998-06-10 1999-12-15 Sun Microsystems, Inc. Betriebsmittelverwaltung
NZ509019A (en) * 1998-06-18 2002-08-28 Aristocrat Technologies Au Method of linking devices to gaming machines
US6223234B1 (en) 1998-07-17 2001-04-24 Micron Electronics, Inc. Apparatus for the hot swap and add of input/output platforms and devices
US6205503B1 (en) 1998-07-17 2001-03-20 Mallikarjunan Mahalingam Method for the hot swap and add of input/output platforms and devices
US6557055B1 (en) 1999-10-06 2003-04-29 Apple Computer, Inc. Adaptive throughput optimization
JP4434408B2 (ja) * 2000-02-02 2010-03-17 富士通株式会社 情報処理装置
US6901481B2 (en) 2000-04-14 2005-05-31 Stratus Technologies Bermuda Ltd. Method and apparatus for storing transactional information in persistent memory
US6802022B1 (en) 2000-04-14 2004-10-05 Stratus Technologies Bermuda Ltd. Maintenance of consistent, redundant mass storage images
US6948010B2 (en) * 2000-12-20 2005-09-20 Stratus Technologies Bermuda Ltd. Method and apparatus for efficiently moving portions of a memory block
US6766413B2 (en) 2001-03-01 2004-07-20 Stratus Technologies Bermuda Ltd. Systems and methods for caching with file-level granularity
US6874102B2 (en) * 2001-03-05 2005-03-29 Stratus Technologies Bermuda Ltd. Coordinated recalibration of high bandwidth memories in a multiprocessor computer
US7493626B2 (en) * 2003-04-02 2009-02-17 Apple Inc. Method and apparatus for communicating between device drivers in a computer system
JP4339623B2 (ja) * 2003-04-15 2009-10-07 株式会社日立製作所 チャネルアダプタ
US7080172B1 (en) * 2003-05-27 2006-07-18 Marvell Luternational Ltd. Management of memory, hardware and associated device drivers using stacks
US6959264B2 (en) * 2003-09-30 2005-10-25 International Business Machines Corporation Autonomous computing probe agent
US7308586B2 (en) * 2004-04-28 2007-12-11 Microsoft Corporation Interlocked plug and play with power management for operating systems
US7313708B2 (en) * 2004-04-28 2007-12-25 Microsoft Corporation Interlocked plug and play with power management for operating systems
US8316384B2 (en) 2009-02-18 2012-11-20 Microsoft Corporation Input/output broker model
US8484616B1 (en) * 2009-06-23 2013-07-09 Emc Corporation Universal module model
US11132326B1 (en) 2020-03-11 2021-09-28 Nvidia Corporation Techniques to transfer data among hardware devices

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589063A (en) * 1983-08-04 1986-05-13 Fortune Systems Corporation Data processing system having automatic configuration
US4638424A (en) * 1984-01-12 1987-01-20 International Business Machines Corporation Managing data storage devices connected to a digital computer
US4974151A (en) * 1985-02-21 1990-11-27 International Business Machines Corporation Configuration capability for devices in an open system having the capability of adding or changing devices by user commands
US4649479A (en) * 1985-02-28 1987-03-10 International Business Machines Corp. Device driver and adapter binding technique
US5115499A (en) * 1986-05-14 1992-05-19 Sequoia Systems, Inc. Shared computer resource allocation system having apparatus for informing a requesting computer of the identity and busy/idle status of shared resources by command code
US5263148A (en) * 1988-09-09 1993-11-16 Compaq Computer Corporation Method and apparatus for configuration of computer system and circuit boards
JPH0255337U (de) * 1988-10-07 1990-04-20
US5265251A (en) * 1990-02-01 1993-11-23 International Business Machines Corporation Mechanism for allowing a single operation to shift the focus between user applications having direct hardware level access to multiple displays in a virtual terminal environment
US5214778A (en) * 1990-04-06 1993-05-25 Micro Technology, Inc. Resource management in a multiple resource system
JP2880268B2 (ja) * 1990-07-30 1999-04-05 株式会社日立製作所 ネットワーク構成定義情報の変更方法
US5349674A (en) * 1990-08-17 1994-09-20 International Business Machines Corp. Automated enrollment of a computer system into a service network of computer systems
US5265252A (en) * 1991-03-26 1993-11-23 International Business Machines Corporation Device driver system having generic operating system interface
JPH05120294A (ja) * 1991-10-24 1993-05-18 Toshiba Corp 割当て装置
JPH05173989A (ja) * 1991-12-24 1993-07-13 Kawasaki Steel Corp 計算機及びマルチプロセッサ計算装置
US5522070A (en) * 1992-03-19 1996-05-28 Fujitsu Limited Computer resource distributing method and system for distributing a multiplicity of processes to a plurality of computers connected in a network
US5394542A (en) * 1992-03-30 1995-02-28 International Business Machines Corporation Clearing data objects used to maintain state information for shared data at a local complex when at least one message path to the local complex cannot be recovered
AU3944793A (en) * 1992-03-31 1993-11-08 Aggregate Computing, Inc. An integrated remote execution system for a heterogenous computer network environment

Also Published As

Publication number Publication date
EP0657809A1 (de) 1995-06-14
US5794035A (en) 1998-08-11
JP3248659B2 (ja) 2002-01-21
EP0657809B1 (de) 2000-04-05
JPH07200450A (ja) 1995-08-04
DE69423853D1 (de) 2000-05-11

Similar Documents

Publication Publication Date Title
DE69423853T2 (de) Ein-/Ausgabeobjekte in einem Betriebssystemkern
DE69636688T2 (de) Verfahren und Gerät zur automatischen Verwaltung von gleichzeitigem Zugriff auf gemeinsame Betriebsmittel in einer Multifaden-Programmierbetriebsumgebung
DE69420803T2 (de) Ereignis-qualifikation und -benachrichtigung.
DE69112156T2 (de) Gerät zur Realisierung von Datenbanken zum Verschaffen von objektorientiertem Aufrufen von Anwendungsprogrammen.
DE69131745T2 (de) Verfahren und Gerät zum Verschaffen einer Kundenschnittstelle zu einem objektorientierten Aufruf eines Anwendungsprogramms
DE69429686T2 (de) Transaktionsverwaltung in objektorientiertem System
DE69131742T2 (de) Verfahren zur Realisierung von Anbieterfunktionen in einer verteilten heterogenen Umgebung
DE69405408T2 (de) Objektorientiertes system und verfahren zur hardwarekonfiguration
DE69228621T2 (de) Objektorientiertes verteiltes Rechnersystem
DE69425470T2 (de) Verfahren zur Ereignismeldung in einem Betriebssystem
DE69131245T2 (de) Verfahren und Gerät zum Verschaffen von dynamischen Aufrufen von Anwendungsprogrammen in einer verteilten heterogenen Umgebung
DE69425548T2 (de) Verfahren und Vorrichtung zur dynamischen Objektverbindungserzeugung
DE69425699T2 (de) Integrierung von Systemverwaltungsdiensten mit einem unterliegenden Systemobjektmodell
DE3852324T2 (de) Verfahren und System zur Netzwerkverwaltung.
DE68919631T2 (de) Verfahren zur Verarbeitung von Programmteilen eines verteilten Anwendungsprogramms durch einen Hauptrechner und einen intelligenten Arbeitsplatz in einer SNA LU 6.2-Netzwerkumgebung.
DE69428848T2 (de) Mehrsprachige Standardressourcen
DE69616449T2 (de) Vorrichtung zum Hinzufügen von Attributen zu einem Objekt während der Laufzeit in einer objektorientierten Rechnerumgebung
DE69619071T2 (de) Fernprozeduraufruf unter Verwendung eines bereits bestehenden Beschreibungsmechanismus
DE69936162T2 (de) Verfahren und Gerät für ein objektorientiertes Unterbrechungssystem
DE69404166T2 (de) Automatisches start-fachwerk
DE3787127T2 (de) Datenanzeigesystem.
DE69820566T2 (de) Verfahren, Vorrichtung, und Programmprodukt zum Zugriff auf einen Server-basierten Verwaltungsinformationsdienst
DE69617509T2 (de) Vorrichtung und Verfahren zur Feststellung von Objekttypen in einem verteilten Objektsystem
DE69031862T2 (de) Verfahren zum Lastausgleich für Kanälen und Verwendung desselben in einem Datenverarbeitungssystem
DE19926115B4 (de) Transaktionshandhabung in einer Konfigurationsdatenbank

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7