DE69738646T2 - Verfahren zur Ausführung eines Prozesses und Betriebsmittelzugriffsverfahren in einem Computer-System - Google Patents

Verfahren zur Ausführung eines Prozesses und Betriebsmittelzugriffsverfahren in einem Computer-System Download PDF

Info

Publication number
DE69738646T2
DE69738646T2 DE69738646T DE69738646T DE69738646T2 DE 69738646 T2 DE69738646 T2 DE 69738646T2 DE 69738646 T DE69738646 T DE 69738646T DE 69738646 T DE69738646 T DE 69738646T DE 69738646 T2 DE69738646 T2 DE 69738646T2
Authority
DE
Germany
Prior art keywords
resource
processing
function
prevention
preemption
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
DE69738646T
Other languages
English (en)
Other versions
DE69738646D1 (de
Inventor
Masahiko Nakahara
Masaaki Iwasaki
Tadashi Takeuchi
Takahiro Nakano
Kazuyoshi Serizawa
Shihoko Taguchi
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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
Priority claimed from JP22640496A external-priority patent/JP3724075B2/ja
Priority claimed from JP8326499A external-priority patent/JPH10171669A/ja
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE69738646D1 publication Critical patent/DE69738646D1/de
Application granted granted Critical
Publication of DE69738646T2 publication Critical patent/DE69738646T2/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Storage Device Security (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein Verfahren zum Ausführen von Prozessen in einem Betriebssystem, das ein Computersystem steuert, und ein Verfahren zum Zugreifen auf eine Ressource in dem Computersystem. Die Erfindung betrifft insbesondere ein Verfahren zum Ausführen von Prozessen unter Verwendung einer gemeinsamen Ressource in einem Betriebssystem, das eine Mehrprozessor- oder Mehrfachverarbeitungsumgebung bereitstellt.
  • In einem Betriebssystem, das in der Lage ist, die Mehrfachverarbeitungsumgebung zum Ausführen mehrerer Prozesse (oder Aufgaben) parallel auf Zeitmultiplexbasis bereitzustellen, ist es notwendig, die Prozesse auszuführen, während eine zueinander exklusive Steuerung oder Verwaltung durchgeführt wird, so dass die von den Prozessen gemeinsam verwendete Ressource nicht gleichzeitig mehreren Prozessen zugewiesen wird. Als Mittel zum Verwirklichen einer solchen einander ausschließenden Verwaltung ist eine als "Sperrsteuerung" bezeichnete Prozedur bekannt und wird weit verbreitet in dem Betriebssystem (OS) verwendet.
  • Bei der Sperrsteuerung wird ein Hinweiszeichen, das angibt, dass eine entsprechende gemeinsame Ressource verwendet wird, für jede der gemeinsamen Ressourcen gesetzt. Wenn einer der Prozesse eine Verarbeitung unter Verwendung einer gegebenen der gemeinsamen Ressourcen ausführt, wird geprüft, ob das dieser gemeinsamen Ressource entsprechende Hinweiszeichen von einem anderen Prozess gesetzt wurde. Wenn das Hinweiszeichen nicht durch den anderen Prozess gesetzt wurde, kann der gegebene Prozess die gemeinsame Ressource exklusiv nutzen, während er das Hinweiszeichen setzt, das angibt, dass die Ressource belegt ist. Dieser Vorgang wird typischerweise als "Sperre oder Sperren" der gemeinsamen Ressource bezeichnet. Nach Abschluss der Verarbeitung für die gemeinsame Ressource gibt der Prozess die gemeinsame Ressource frei, während er das Hinweiszeichen zurücksetzt. Dieser Vorgang wird als "Entsperren oder Aufheben der Sperre" der gemeinsamen Ressource bezeichnet. Wenn andererseits das der zu verwendenden gemeinsamen Ressource entsprechende Hinweiszeichen von einem anderen Prozess gesetzt wird, setzt das Betriebssystem den einen Prozess, der die Verwendung dieser Ressource fordert, in den Warte- oder Bereitschaftszustand, bis diese gemeinsame Ressource entsperrt wurde.
  • An dieser Stelle sei angenommen, dass ein Prozess 1 niedriger Priorität und ein Prozess 2 hoher Priorität parallel ausgeführt werden und dass eine gemeinsame Ressource A von diesen zwei Prozessen verfügbar gemeinsam verwendet wird. Unter dieser Annahme wird weiter angenommen, dass der Prozess 1 niedriger Priorität die gemeinsame Ressource A im Laufe der Verwendung der CPU (Zentralverarbeitungseinheit) gesperrt hat und dass die gemeinsame Ressource A in einen unterbrochenen Zustand eingetreten ist, während die Sperre gesetzt geblieben ist. In diesem Fall kann der Prozess 2 hoher Priorität, dem das Recht zugewiesen ist, die CPU nach dem Prozess 1 zu verwenden, die gemeinsame Ressource A nicht verwenden, weil die Ressource durch den Prozess 1 niedriger Priorität gesperrt wurde. Daher wird die aufeinander folgende Ausführung unmöglich.
  • Das Problem, dass der Prozess hoher Priorität an der nachfolgenden Ausführung wegen der Sperre, die von dem Prozess niedriger Priorität gehalten wird, gehindert ist, wird als Prioritätsumkehrungsproblem bezeichnet. In Bezug auf dieses Prioritätsumkehrungsproblem sei auf "PRIORITY INHERITANCE PROTOCOLS: AN APPROACH TO REAL-TIME SYNCHRONIZATION" in IEEE TRANSACTIONS ON COMPUTERS, Band 39, Nr. 9, September 1990, S. 1175–1185 verwiesen. Bei dem bisher bekannten herkömmlichen Betriebssystem wird, wenn die Prioritätsumkehrung stattfindet, der schlafende Prozess niedriger Priorität, der die gemeinsame Ressource reserviert und gesperrt hat, mit der höchsten Priorität ausgeführt, um die Sperre der gemeinsamen Ressource aufzuheben, so dass der Prozess hoher Priorität so früh wie möglich ausgeführt werden kann.
  • Andererseits ist ein Betriebssystem, das eine Mehrfachverarbeitungsumgebung bereitstellt, mit einer Funktion zum Schützen der einem gegebenen Prozess zugewiesenen Ressource vor einem durch einen anderen Prozess versuchten illegalen Zugriff versehen. Diese Funktion wird als Zugriffsrechtskontroll- oder -verwaltungsfunktion bezeichnet. Die Zugriffsrechtskontrolle oder Verwaltung, die nun betrachtet wird, beruht auf der Annahme, dass das Zugriffsrecht Prozess für Prozess festgelegt werden kann und dass mehrere Prozesse gleichzeitig versuchen können, auf eine Computerressource zuzugreifen. Gewöhnlich wird eine Schnittstelle, um es einer Benutzeranwendung zu ermöglichen, die Funktionen des Betriebssystems aufzurufen, bereitgestellt und ist als "Systemaufruf" bekannt. In diesem Zusammenhang sei bemerkt, dass wenn ein Zeiger als ein Argument des Systemaufrufs verwendet wird, die Festlegung einer illegalen Adresse durch die Benutzeranwendung zu einer Zerstörung wichtiger Daten in dem Betriebssystem führen kann, was unvorteilhaft ist. Zum Verhindern einer solchen unerwünschten Situation wird eine Kennung an Stelle des Zeigers bei einer typischen Zugriffsrechtskontrolle oder -verwaltung als Argument verwendet.
  • Im Fall des Zugriffsrechts-Kontrollverfahrens, bei dem die Kennung als das Argument in dem von der Benutzeranwendung ausgegebenen Systemaufruf verwendet wird, muss das Betriebssystem die Kennung in eine Adresse in der Ressource übersetzen, um auf die Ressource zuzugreifen. In diesem Zusammenhang ist das einfachste Übersetzungsverfahren ein Verfahren, bei dem eine Hash-Funktion verwendet wird. Bei diesem Verfahren wird eine Kennung in der Hash-Funktion als ein Schlüssel angewiesen oder dieser zugewiesen, woraufhin der erhaltene Hash-Wert als Adresse verwendet wird. Das Zugriffs rechts-Kontrollverfahren, das auf der Hash-Funktion beruht, wird nachstehend beschrieben.
  • §1. Konfiguration
  • Wie in 1 dargestellt ist, weist das Betriebssystem der Hash-Funktion (F) 101 eine Ressourcenkennung 100 als Schlüssel zu, um als den Hash-Wert einen Index "Index" 102 zu erhalten, der in einer Ressourcenverwaltungsdatentabelle 104 enthalten ist. Wie in 2A dargestellt ist, enthalten die in der Ressourcenverwaltungsdatentabelle 104 gespeicherten Ressourcenverwaltungsdaten 105 eine Kennung 201, einen Zeiger 205 auf eine Ressource 103, ein Hinweiszeichen 202, das das Vorhandensein oder Nichtvorhandensein nachfolgender oder nächster Ressourcenverwaltungsdaten 106 angibt, einen Zeiger 203 auf die nachfolgenden Ressourcenverwaltungsdaten 106 und einen Zeiger 104 auf Prozessverwaltungsdaten 107.
  • Es kann eine Situation auftreten, in der die Hash-Funktion denselben Index "Index" für verschiedene Kennungen RID zurückgibt. In diesem Fall tritt eine Kollision zwischen den Indizes "Index" auf. Dementsprechend werden die zweiten Ressourcenverwaltungsdaten 106 und folgende in einem Überlaufbereich gespeichert, wobei die Adresse der zweiten oder nachfolgenden Ressourcenverwaltungsdaten 106 in die unmittelbar vorhergehenden Ressourcenverwaltungsdaten 105 gegeben wird.
  • In dem Fall, in dem die Ressource eine gemeinsame Ressource ist, existieren mehrere Prozesse mit jeweiligen Zugriffsrechten für dieselbe Kennung RID. In diesem Fall werden die Zeiger auf die zweiten Prozesskennungsdaten 108 und folgende in die unmittelbar vorhergehenden Prozessverwaltungsdaten 107 gegeben.
  • Die Ressourcenverwaltungsdaten 105 sind in 2A dargestellt, während die Prozessverwaltungsdaten 107 in 2B dargestellt sind. Wie in 2B ersichtlich ist, bestehen die Prozessverwaltungsdaten 107 aus einer Prozesskennung 207, einem Hinweiszeichen 208, das das Vorhandensein oder Nichtvorhandensein der nächsten Prozessverwaltungsdaten angibt, und einem Zeiger 209 auf die nächsten Prozessverwaltungsdaten. Am Ende der Benutzeranwendung wird es notwendig, die Kennung des Prozesses, der das Zugriffsrecht hat, zu kennen, um die Zuweisung der von dem Prozess belegten Ressource aufzuheben. Demgemäß wird das Betriebssystem mit einer prozessspezifischen Ressourcenkennungsliste 109 versehen, in die jedes Mal dann, wenn eine entsprechende Ressource erzeugt wird, oder jedes Mal dann, wenn das Zugriffsrecht auf die gemeinsame Ressource erhalten wird, eine Ressourcenkennung 110 eingegeben wird.
  • §2. Ressourcenzuweisungsverarbeitung
  • 3 ist ein Flussdiagramm zum Erläutern einer Ressourcenzuweisungsverarbeitung.
  • Wenn der Systemaufruf, der die Ressourcenzuweisung fordert, von einer Benutzeranwendung an das Betriebssystem ausgegeben wird, reagiert das Betriebssystem darauf durch Zuweisen der Ressource (Schritt 1000). Anschließend erhält das Betriebssystem eine in dem System festgelegte Kennung RIDx (Schritt 1001) und gibt die Kennung RIDx als Schlüssel in die Hash-Funktion ein. Demgemäß wird der in der Ressourcenverwaltungsdatentabelle 104 enthaltene Index "Index", d. h. die Adresse, an der die Ressourcenverwaltungsdaten x gespeichert sind, erhalten (Schritt 1002). In dem Fall, in dem die Ressourcenverwaltungsdaten y bereits an der ersten Stelle des vom Index festgelegten Bereichs angeordnet wurden, d. h. wenn eine Kollision zwischen den Indizes auftritt (Schritt 1003), wird der Zeigern von einem zum anderen gefolgt (Schritt 1005), solange das Hinweiszeichen 202, das das Vorhandensein oder Nichtvorhandensein der Kennungsverwaltungsdaten 105 angibt, einen Wert "EIN" annimmt (wodurch das Vorhandensein der Ressourcenverwaltungsdaten 105 angegeben wird) (Schritt 1004). Wenn die Ressourcenverwaltungsdaten z, für die das Hinweiszeichen 202, das das Vorhandensein oder Nichtvorhandensein der folgenden Kennungsverwaltungsdaten angibt, auf "AUS" gesetzt ist, im Laufe des Verfolgens der Zeiger gefunden wird, wird das nachfolgende Kennungsverwaltungsdaten-Vorhandenseins/Nichtvorhandenseins-Hinweiszeichen 202 auf "EIN" gesetzt (Schritt 1006). Anschließend wird ein Bereich für die neuen Ressourcenverwaltungsdaten x dem Überlaufbereich (Schritt 1007) zugeordnet, woraufhin der Zeiger 203 auf die unmittelbar vorhergehenden Ressourcenverwaltungsdaten in den Ressourcenverwaltungsdaten an der Adresse der Ressourcenverwaltungsdaten x angeordnet wird (Schritt 1008). Wenn in Schritt 1003 herausgefunden wird, dass die nachfolgenden Kennungsverwaltungsdaten nicht gespeichert sind, wird der Bereich für die Ressourcenverwaltungsdaten x dem Hauptbereich zugewiesen (Schritt 1009).
  • Die Prozessverwaltungsdaten 107 werden in den Prozessverwaltungsbereich gegeben, und die Prozesskennung wird darin gespeichert (Schritt 1010). Gleichzeitig wird die Kennung RIDx 207 in der prozessspezifischen Kennungsliste 109 gespeichert (Schritt 1011). Die Kennung RIDx 201, der Zeiger 204 auf die Prozessverwaltungsdaten und der in den Ressourcenverwaltungsdaten x 105 enthaltene Ressourcenzeiger 205 werden mit jeweiligen Werten versehen, woraufhin das Hinweiszeichen 202, das das Vorhandensein oder Nichtvorhandensein der nachfolgenden Ressourcenverwaltungsdaten angibt, in den "AUS"-Zustand versetzt wird (Schritt 1012). Dann wird die Kennung RIDx zur Benutzeranwendung zurückgeführt (Schritt 1013).
  • §3. Ressourcenzugriffsverarbeitung
  • Wenn der eine Ressourcenzugriffsanforderung angebende Systemaufruf durch die Benutzeranwendung an das Betriebssystem ausgegeben wird, führt das letztgenannte die in 4 dargestellte Verarbeitung aus.
  • Das Betriebssystem weist die Kennung RIDx, die das Argument des Systemaufrufs ist, der Hash-Funktion zu, um den Index der Ressourcenverwaltungsdaten 105 zu erhalten (Schritt 1100). Anschließend wird die in den sich am Index befindenden Ressourcenverwaltungsdaten 105 enthaltene Kennung RID mit dem Argument RIDx verglichen (Schritt 1101). Wenn die Werte der Kennung RID und des Arguments RIDx voneinander abweichen und wenn das Hinweiszeichen 202, das das Vorhandensein oder Nichtvorhandensein der nachfolgenden Ressourcenverwaltungsdaten in den Ressourcenverwaltungsdaten 105 angibt, auf "EIN" gesetzt ist, d. h. wenn die nachfolgenden Ressourcenverwaltungsdaten 105 existieren (Schritt 1102), wird dem Zeiger 203 bis zu den nachfolgenden Ressourcenverwaltungsdaten gefolgt (Schritt 1103), woraufhin der Vergleich zwischen der Kennung und dem Argument, welche vorstehend erwähnt wurden, wieder ausgeführt wird (Schritt 1101). In dem Fall, in dem die Kennungen RID aller Ressourcenverwaltungsdaten 105, denen mit den Zeigern gefolgt werden kann, nicht mit dem Argument RIDx übereinstimmen, wird entschieden, dass die angeforderte Ressource in dem System nicht existiert, woraufhin eine Fehlermeldung zur Benutzeranwendung zurückgegeben wird (Schritt 1104). Wenn andererseits eine Übereinstimmung zwischen der in den Ressourcenverwaltungsdaten 105 enthaltenen Kennung RID und dem Argument RIDx im Vergleichsschritt 1101 gefunden wird, wird die Prozesskennung PIDx des gegenwärtig auf die Ressource zugreifenden Prozesses mit der in den Prozessverwaltungsdaten 107 enthaltenen Prozesskennung PID 207 verglichen (Schritt 1105). Wenn in Schritt 1105 herausgefunden wird, dass die Werte beider Kennungen voneinander abweichen, und wenn das Hinweiszeichen 208, das in den Prozessverwaltungsdaten 107 enthalten ist und das Vorhandensein oder Nichtvorhandensein der nachfolgenden Prozessverwaltungsdaten angibt, "EIN" ist (wodurch angegeben wird, dass die nachfolgenden Prozessverwaltungsdaten 107 existieren) (Schritt 1106), wird dem nachfolgenden Zeiger 209 gefolgt, um die nachfolgenden Prozessverwaltungsdaten zu erreichen (Schritt 1107), woraufhin der Vergleich der vorstehend erwähnten Prozesskennungen wieder ausgeführt wird (Schritt 1105). Wenn die in allen Ressourcenverwaltungsdaten 105, denen mit Hilfe der Zeiger gefolgt werden kann, enthaltenen Prozesskennungen PID nicht mit dem Argument PIDx übereinstimmen, wird entschieden, dass die den Systemaufruf ausgebende Benutzeranwendung kein Zugriffsrecht auf die Ressource hat, woraufhin eine Fehlermeldung zur Benutzeranwendung zurückgegeben wird (Schritt 1108).
  • Wenn andererseits in Schritt 1105 die Übereinstimmung zwischen der Prozesskennung und dem Argument gefunden wird, wird der Zugriff auf die Ressource unter Verwendung der Ressourcenadresse ausgeführt, die in dem in den Ressourcenverwaltungsdaten 105 enthaltenen Ressourcenzeiger 205 gespeichert ist (Schritt 1109).
  • §4. Ressourcenzuweisungsaufhebungsverarbeitung
  • In dem Fall, in dem ein die Aufhebung der Zuweisung der Ressource anfordernder Systemaufruf von der Benutzeranwendung an das Betriebssystem ausgegeben wird, wird die Ressourcenzuweisungsaufhebungsverarbeitung für diese Ressource ausgeführt. Wenn zusätzlich die Aufhebung der Zuweisung der Ressource infolge einer abnormen Beendigung eines Prozesses notwendig wird, wird die Ressourcenzuweisungsaufhebungsverarbeitung für die Ressourcen entsprechend allen Kennungen ausgeführt, die in der Kennungsliste enthalten sind, welche für den abnorm beendeten Prozess spezifisch ist. Die Ressourcenzuweisungsaufhebungsverarbeitung wird nachstehend mit Bezug auf 5 beschrieben. An erster Stelle unterbindet oder blockiert das Betriebssystem den Zugriff auf alle Ressourcen (Schritt 1200) und gibt die Kennung RIDx der Ressource, deren Zuweisung aufzuheben ist, als Schlüssel in die Hash-Funktion ein, um den Index "Index" der Ressourcenverwaltungsdaten 105 zu erhalten (Schritt 1201). Anschließend wird die Kennung RID, die in den Ressourcenverwaltungsdaten 105 enthalten ist, welche in dem durch den Index angegebenen Bereich gespeichert sind, mit dem Schlüssel oder der Kennung RIDx verglichen (Schritt 1202). Wenn die Werte beider Kennungen voneinander abweichen und wenn das das Vorhanden sein oder Nichtvorhandensein der nachfolgenden Ressourcenverwaltungsdaten angebende Hinweiszeichen 202 "EIN" ist, d. h. wenn die nachfolgenden Ressourcenverwaltungsdaten 105 existieren (Schritt 1203), wird dem Zeiger 203 bis zu den nachfolgenden Ressourcenverwaltungsdaten gefolgt (Schritt 1204), woraufhin der vorstehend erwähnte Kennungsvergleich erneut wiederholt wird (Schritt 1202). In dem Fall, in dem die Kennungen RID aller Ressourcenverwaltungsdaten 105, denen mit den Zeigern gefolgt werden kann, nicht mit dem Schlüssel oder der Kennung RIDx übereinstimmen, wird entschieden, dass die angeforderte Ressource nicht existiert, woraufhin eine Fehlermeldung zur Benutzeranwendung zurückgegeben wird (Schritt 1205).
  • Wenn andererseits in Schritt 1202 eine Übereinstimmung zwischen beiden Kennungen RID und RIDx gefunden wird, wird die Adresse der im Zeiger 204 für die Prozessverwaltungsdaten gespeicherten Prozessverwaltungsdaten 107 erhalten (Schritt 1206). Wenn die nachfolgenden Ressourcenverwaltungsdaten 105 existieren (Schritt 1207), werden die durch die Kennung RIDx spezifizierten Ressourcenverwaltungsdaten 105 freigegeben oder entsperrt (Schritt 1209), nachdem die Kette der Zeiger 203 zu den Ressourcenverwaltungsdaten geändert wurde (Schritt 1208). Anschließend wird dem in Schritt 1206 erhaltenen Zeiger gefolgt, und es wird geprüft, ob das in den Prozessverwaltungsdaten 107 enthaltene Hinweiszeichen, das das Vorhandensein oder Nichtvorhandensein der nachfolgenden Prozessverwaltungsdaten angibt, "EIN" ist oder nicht (Schritt 1210). Falls das Hinweiszeichen "EIN" ist, wird der Zeiger 209 auf die nachfolgenden Prozessverwaltungsdaten erhalten (Schritt 1211), woraufhin eine Nachricht, die angibt, dass die Prozessverwaltungsdaten 107 freigegeben wurden oder ihre Zuweisung aufgehoben wurde und dass die Kennung RID nicht mehr verwendet werden kann, an die Benutzeranwendungen, d. h. die einzelnen Prozesse ausgegeben wird (Schritt 1212). Wenn andererseits in Schritt 1210 entschieden wird, dass das Hinweiszeichen 208, das das Vorhandensein oder Nicht vorhandensein der nachfolgenden Ressourcenverwaltungsdaten angibt, "AUS" ist, werden die endgültigen Prozessverwaltungsdaten 107 freigegeben, oder ihre Zuweisung wird aufgehoben, woraufhin die Nachricht, die angibt, dass die Kennung RID nicht mehr verwendet werden kann, an die Benutzeranwendung ausgegeben wird (Schritt 1213), woraufhin dann der Zugriff auf alle Ressourcen wieder geöffnet wird (Schritt 1214).
  • In Zusammenhang mit dem vorstehend beschriebenen Verfahren sei bemerkt, dass selbst dann, wenn der in der Ressourcenverwaltungsdatentabelle 104 enthaltene Index "Index" durch Zuweisen einer illegalen Kennung RIDz zur Hash-Funktion als Schlüssel erhalten werden kann, die illegale Kennung RIDz nicht in den Ressourcenverwaltungsdaten 105 gefunden werden kann, welche mit dem Index verfolgt werden können. Folglich kann keine Ressourcenadresse erhalten werden, wodurch der Zugriff unmöglich gemacht wird. Ferner wird selbst dann, wenn die illegale Kennung RIDz zufällig in den mit dem Index verfolgten Ressourcenverwaltungsdaten 105 enthalten sein sollte, die Kennung des Prozesses, der auf die Ressource zugreift, nicht in den Prozessverwaltungsdaten 107 gespeichert. Folglich kann die Adresse der Ressource nicht erhalten werden. Demgemäß kann ein illegaler Zugriff unterbunden oder verhindert werden.
  • Ferner kann bei der Ressourcenentsperrverarbeitung der Ressourcenschutz verwirklicht werden, indem alle Zugriffe der Benutzeranwendungen auf die Ressource unterbunden oder verhindert werden, während ein illegaler Zugriff nach der Ressourcenzuweisungsaufhebung durch Ungültigmachen der Kennung, Freigeben der Ressourcenverwaltungsdaten und der Prozessverwaltungsdaten, die mit dem Index verfolgt werden können, und Ausgeben der Nachricht, welche über die Prozesse zum Aufheben der Zuweisung der Ressource informieren, unterbunden werden kann.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Bei der kontinuierlichen Medienverarbeitung ist der Ablauf eines Prozesses zum Verarbeiten von Daten, wie Animationsdaten, mit einer Periodizität verbunden. Ein Prozessabwicklungsverfahren, das dieses Merkmal verwendet, wurde bereits vorgeschlagen. Für weitere Einzelheiten dieses Verfahrens sei auf die japanische Patentanmeldung 8-73673 verwiesen.
  • In diesem Zusammenhang sei bemerkt, dass das vorstehend erörterte Prioritätsumkehrungsproblem auch das vorstehend erwähnte Prozessabwicklungsverfahren auf der Grundlage der Periodizität nachteilig beeinflusst. Beispielsweise sei angenommen, dass zwei Prozesse, nämlich ein Prozess 1 und ein Prozess 2, zum Ausführen der kontinuierlichen Medienverarbeitung existieren und dass eine Ressource A existiert, die von diesen beiden Prozessen gemeinsam verwendet wird. Wenn in diesem Fall der Prozess 1 und der Prozess 2 versuchen, die gemeinsame Ressource A einander ausschließend zu kontrollieren oder zu verwalten, indem sie die Sperrfunktion verwenden, kann das Prioritätsumkehrungsproblem auftreten, wodurch die periodische Ansteuerbarkeit des Prozesses behindert wird.
  • Ein weiteres wichtiges Problem, das infolge der Prioritätsumkehrung auftritt, besteht darin, dass der Prozess, der gesperrt wurde, wodurch das Prioritätsumkehrungsproblem hervorgerufen wird, mit der höchsten Präferenz abgewickelt wird. Demgemäß kann sicher ausgesagt werden, dass das Prioritätsumkehrungsproblem einen nachteiligen Einfluss sogar auf die periodische Ansteuerbarkeit des anderen Prozesses, der an der kontinuierlichen Medienverarbeitung teilnimmt, ausübt.
  • Unter den Umständen ist in dem System, das für das Ausführen der kontinuierlichen Medienverarbeitung ausgelegt ist, ein Verfahren zum Strukturieren eines Computersystems vorstellbar, ohne von Beginn an eine Sperre zu verwenden, um das Prioritätsumkehrungsproblem zu vermeiden. Als ein Verfahren zum Verwirklichen der exklusiven Kontrolle bzw. Steuerung oder der einander ausschließenden Verwaltung des Prozesses kann ein Prozesskontroll- bzw. Prozesssteuerungs- oder -verwaltungsverfahren entwickelt werden, bei dem dem Prozess, der gegenwärtig die gemeinsame Ressource verwendet, erlaubt wird, die CPU (Zentralverarbeitungseinheit) ausschließlich zu belegen, oder bei dem, anders ausgedrückt, unterbunden oder verhindert wird, dass ein anderer Prozess abgewickelt wird, solange die gemeinsame Ressource von einem gegebenen der Prozesse verwendet wird. Ein solches Steuer- oder Verwaltungsverfahren kann durch Verwenden eines in der japanischen Patentanmeldung 8-97997 vorgeschlagenen Präemptionssteuerverfahrens verwirklicht werden. Es sei am Rande bemerkt, dass das Präemptionssteuerverfahren verhindert, dass ein gerade ausgeführter Prozess vorübergehend ausgesetzt (d. h. unterbrochen) wird, indem Schnittstellen "Präemptionsverhinderung" und "Aufheben oder Löschen der Präemptionsverhinderung" bereitgestellt werden, wobei während einer Periode zwischen einem Zeitpunkt, zu dem die Präemptionsverhinderung gesetzt wird, und einem Zeitpunkt, zu dem die Präemptionsverhinderung gelöscht wird (diese Periode kann auch als das Präemptionsverhinderungsintervall bezeichnet werden), verhindert wird, dass der gerade ausgeführte Prozess unterbrochen wird und die Ausführung demgemäß selbst dann fortsetzen kann, wenn eine Abwicklungsaufforderung von einem anderen Prozess ausgegeben wird. Durch diese Steuerung kann gewährleistet werden, dass nicht mehr als ein Prozess die gemeinsame Ressource zu einer Zeit verwenden kann. Mit anderen Worten kann auf diese Weise die exklusive Steuerung oder Verwaltung der Prozesse verwirklicht werden.
  • Es ist jedoch zu verstehen, dass bei dem vorstehend erwähnten Steuerverfahren die periodische Ansteuerbarkeit des anderen Prozesses behindert werden kann, wenn der Prozess, der die gemeinsame Ressource verwendet, über eine längere Dauer läuft.
  • Es sei beispielsweise eine Verarbeitung zum Extrahieren einer Ressource aus einer freien Liste, in der in dem System gemeinsam benutzte verwendbare Ressourcen eingereiht sind, zum Initialisieren der extrahierten Ressource und zum Verketten von ihr mit einer Ressourcenzuweisungsliste eines gegebenen Prozesses betrachtet. In diesem Fall sind die gemeinsamen Ressourcen, welche die einander ausschließende Steuerung oder Verwaltung benötigen, die freie Liste und die Ressourcenzuweisungsliste.
  • Wenn die vorstehend erwähnte Verarbeitung nur durch Festlegen des Präemptionsverhinderungsintervalls zu verwirklichen ist, ist es notwendig, das Präemptionsverhinderungsintervall so festzulegen, dass es sich von einem Zeitpunkt "vor dem Kontaktieren der freien Liste" bis zu einem Zeitpunkt, zu dem "die Ressource in die Ressourcenzuweisungsliste eingereiht wurde", erstreckt. Hierzu müssen die nachstehend erwähnten Verarbeitungen (1a) bis (5a) ausgeführt werden.
    • (1a) Festlegen des Präemptionsverhinderungszustands.
    • (2a) Entnehmen der Ressource aus der freien Liste.
    • (3a) Initialisieren der Ressource.
    • (4a) Einreihen der Ressource in die Ressourcenzuweisungsliste für die Prozesse.
    • (5a) Löschen des festgelegten Präemptionsverhinderungszustands.
  • An dieser Stelle sei bemerkt, dass die Zeit, die für die Initialisierung der Ressource erforderlich ist, nicht immer kurz ist. Tatsächlich wird eine Zeit in der Größenordnung von einigen zehn Millisekunden ausschließlich für das Initialisieren eines Speichers nach einer Speicherzuweisung innerhalb des Betriebssystems benötigt. Wenn die einander ausschließende Steuerung demgemäß nur durch Festlegen des Präemptionsverhinderungsintervalls zu verwirklichen ist, wie vorstehend erwähnt wurde, kann sich eine Situation ergeben, in der ein gegebener Prozess die CPU während einer längeren Zeit belegt, was zu einer Beeinträchtigung des Ansprechverhaltens auf der Echtzeitbasis führt, wodurch schließlich die periodische Ansteuerbarkeit der kontinuierlichen Medienverarbeitung nachteilig beeinflusst wird.
  • Um den vorstehend erwähnten Problemen Rechnung zu tragen, können die vorstehend erwähnten Verarbeitungen folgendermaßen modifiziert oder umgeordnet werden:
    • (1b) Festlegen des Präemptionsverhinderungszustands.
    • (2b) Entnehmen der Ressource aus der freien Liste.
    • (3b) Löschen des festgelegten Präemptionsverhinderungszustands.
    • (4b) Initialisieren der Ressource.
    • (5b) Festlegen des Präemptionsverhinderungszustands.
    • (6b) Einreihen der Ressource in die Ressourcenzuweisungsliste für die Prozesse.
    • (7b) Löschen des festgelegten Präemptionsverhinderungszustands.
  • Die vorstehend erwähnten Verarbeitungen können in Hinblick auf die einander ausschließende Steuerung oder Verwaltung sicher die notwendige Bedingung erfüllen. Abgesehen davon kann die Dauer des Präemptionsverhinderungsintervalls auf ca. 10 μs verringert werden, während bei der Ressourceninitialisierungsverarbeitung (4b) das Recht der Verwendung der CPU auf einen anderen Prozess übertragen werden kann. Demgemäß kann das Echtzeit-Ansprechverhalten des Systems verbessert werden. Leider kann sich jedoch ein Problem ergeben, wenn der Prozess, der die Ressourceninitialisierungsverarbeitung (4b) ausführt, im Laufe der Ausführung dieser Verarbeitung zwangsweise von außen beendet wird.
  • Generell sind die meisten Computersysteme mit einer Funktion zum Unterbrechen der Prozessausführung von außen versehen, um das zu lange Laufen eines Programms zu verhindern. Wenn demgemäß der die vorstehend erwähnten Verarbeitungen ausführende Prozess durch einen anderen Prozess zwangsweise beendet wird, indem auf die vorstehend erwähnte Funktion des zwangsweisen Beendens zurückgegriffen wird, kann die durch die Verarbeitung (4b) initialisierte Ressource zu einer freien Ressource werden, die zu keiner der Verwaltungslisten gehört. Dadurch kann sich eine Situation ergeben, in der das Betriebssystem die Ressource nicht wiederherstellen kann, wenn der Prozess beendet wird, was wiederum bedeutet, dass die Ressource, die von dem zwangsweise beendeten Prozess verwendet wird, für immer unbenutzbar wird. Um dieses Problem zu vermeiden, kann ein Verfahren zum Initialisieren der Ressource in dem Zustand, in dem die Ressource in die freie Liste oder die Ressourcenzuweisungsliste eingereiht wird, entwickelt werden. In diesem Fall ist die Dauer des Präemptionsverhinderungsintervalls jedoch im Wesentlichen gleich jener der Präemptionsverhinderungsperiode, welche die gesamte vorstehend beschriebene Verarbeitung abdeckt. Als ein anderes Verfahren ist es auch vorstellbar, getrennt eine Liste zum Verwalten der initialisierten Ressourcen zu präparieren, wobei die Ressource, die der Verarbeitung (4b) unterzogen wird, in diese Liste eingereiht wird. Dieses Verfahren ist jedoch in der Hinsicht nachteilig, dass der mit der Initialisierungsverarbeitung verbundene Aufwand zunimmt, weil die Listenkettenänderungs-Verarbeitung mit einer erhöhten Häufigkeit ausgeführt werden muss.
  • Angesichts des vorstehend beschriebenen Stands der Technik hat der Erfinder der vorliegenden Anmeldung ein Prozessausführungsverfahren entwickelt, das unter Verwendung des Präemptionssteuerverfahrens in der Lage ist, die gemeinsame Ressource zu verarbeiten, ohne die periodische Ansteuerbarkeit der kontinuierlichen Medienverarbeitung nachteilig zu beeinflussen.
  • Dementsprechend besteht eine Aufgabe der vorliegenden Erfindung darin, ein Prozessausführungsverfahren zum Ausführen von Prozessen, welche eine gemeinsame Ressource in einem für eine kontinuierliche Medienverarbeitung vorgesehenen Computersystem verwenden, bereitzustellen. Diese wird durch das in Anspruch 1 definierte Verfahren gelöst. Anspruch 2 betrifft eine bevorzugte Ausführungsform der Erfindung.
  • Gemäß den Lehren der Erfindung wird durch den Prozess vor der Verwendung der gemeinsamen Ressource erklärt, dass der Prozess nicht zwangsweise beendet wird. Es sei bemerkt, dass in der folgenden Beschreibung der Ausdruck "der Prozess wird nicht abgebrochen" oder dergleichen verwendet wird, was bedeutet, dass der Prozess nicht zwangsweise beendet wird, und dass die Verhinderung, dass der Prozess zwangsweise beendet wird, als "Abbruchverhinderung" oder dergleichen ausgedrückt wird. Demgemäß kann "der Zustand, in dem verhindert wird, dass ein Prozess abgebrochen wird" als "Abbruchverhinderungszustand" oder dergleichen ausgedrückt werden. Zusätzlich wird der Prozess "präemptionsverhindert", was bedeutet, dass er vor einer Unterbrechung oder Aussetzung der von diesem Prozess ausgeführten Verarbeitung oder Aufgabe geschützt ist. Am Ende der Verwendung der gemeinsamen Ressource wird der Prozess aus dem Präemptionsverhinderungszustand gelöscht. Nach Abschluss aller Verarbeitungen für die gemeinsame Ressource wird durch den Prozess erklärt, dass er zwangsweise beendet werden kann, was als "Löschen des Prozesses aus dem Abbruchverhinderungszustand" oder einfach als "Löschen des Abbruchverhinderungszustands" oder dergleichen ausgedrückt wird. Ferner wird der Zeitraum oder das Intervall zwischen der Abbruchverhinderungserklärung und der Abbruchverhinderungszustands-Löscherklärung als "Abbruchverhinderungsintervall" bezeichnet. Wenn eine Anforderung für die zwangsweise Beendigung eines Prozesses während der Abbruchverhinderungsperiode oder des Abbruchverhinderungsintervalls ausgegeben wird, wird die Ausführung des Prozesses fortgesetzt, bis die während der Abbruchverhinderungsperiode auszuführende Verarbeitung abgeschlossen wurde. Wenn der Abbruchverhinderungszustand gelöscht wird, wird der Prozess zwangsweise beendet.
  • In einem bevorzugten Modus zum Ausführen der Erfindung wird im System ein einziger Prozess bereitgestellt, der zweckgebunden vorgesehen ist, um der Situation Rechnung zu tragen, dass die gemeinsame Ressource über eine längere Dauer von einem Prozess verwendet wird. Ferner ist zum Senden der Anforderungen zur Verwendung der gemeinsamen Ressource zu dem einzigen Prozess eine Warteschlange bereitgestellt. Der andere Prozess, der für die Ausführung der kontinuierlichen Medienverarbeitung vorgesehen ist, gibt eine Anforderung zur Verwendung der gemeinsamen Ressource an den einzigen zweckgebundenen Prozess aus, bevor mit der periodischen Ansteuerung begonnen wird, wobei nach Abschluss der Verarbeitung für die gemeinsame Ressource das periodische Ansteuern in Kraft gesetzt wird. Die vorstehend erwähnte Anforderung wird in der Warteschlange registriert. Durch Bereitstellen eines solchen zweckgebundenen Prozesses kann gewährleistet werden, dass stets nur ein Prozess in dem System die Verarbeitung für die gemeinsame Ressource ausführen kann. Demgemäß kann die Verarbeitung für die gemeinsame Ressource in dem Präemptionsermöglichungszustand ausgeführt werden, was wiederum bedeutet, dass die Verarbeitung für die gemeinsame Ressource parallel mit dem periodisch angesteuerten Prozess oder den periodisch angesteuerten Prozessen ausgeführt werden kann.
  • Durch Kombinationen der zwei vorstehend erwähnten Prozessausführungsverfahren können mehrere Prozesse, welche die gemeinsame Ressource verwenden, ausgeführt werden, ohne die in der Mehrfachverarbeitungsumgebung, in der mehrere Prozesse parallel zueinander ausgeführt werden können, periodisch angesteuerten Prozesse merklich zu beeinträchtigen.
  • Andererseits ergeben sich im Fall des Verfahrens, bei dem die Kennung als Schlüssel in die Hash-Funktion eingegeben oder dieser zugewiesen wird, um den Index "Index" der die Adresse der Ressource enthaltenden Ressourcenverwaltungsdaten, um auf die Ressource zuzugreifen, zu bestimmen, die nachstehend erwähnten Probleme bei der Ausführung dieser Verarbeitung, die eine große Datenmenge mit hoher Geschwindigkeit in Echtzeit verarbeiten muss, während wie im Fall der Multimedia-Datenverarbeitung in jedem vorbestimmten Intervall eine CPU-Zeit zugewiesen wird.
    • (1) Wenn mehrere Prozesse gleichzeitig auf eine Dateneinheit zugreifen, findet eine Kollision der Hash-Werte bei dem Zugriffsverfahren unter Verwendung der Hash-Funktion statt, wodurch es notwendig wird, den Überlaufbereich zu suchen, während Zeigern gefolgt wird, bis die Kennung der gesuchten Ressource gefunden wurde.
  • Ferner ist es, wenn die Kennung gefunden wurde, notwendig, die Prozessverwaltungsdaten zu suchen, indem den Zeigern gefolgt wird, bis die Prozesskennung gefunden wurde, um zu prüfen, ob der Prozess, der versucht, auf die gemeinsame Ressource zuzugreifen, wirklich das Zugriffsrecht hat (d. h. das Recht, auf die Ressource zuzugreifen). Folglich nimmt der Zusatzaufwand bei der Verarbeitung erheblich zu, während die für den Speicherzugriff eingenommene Zeit zu lang wird, um für eine wirksame Wiedergabe der Daten verwendbar zu sein.
    • (2) In dem System, in dem die Benutzeranwendung die Ressource entsperrt, muss das Betriebssystem den Zeigern aller Prozessverwaltungsdaten folgen, um die Kennung des die Ressource verwendenden Prozesses zu erhalten und die gefundenen Prozessverwaltungsdaten freizugeben, während es den einzelnen Prozessen mitteilt, dass die Ressource nicht verwendet werden kann. Während des Zeitraums für die vorstehend erwähnte Suche und für die Ausführung der anschließenden Verarbeitungen werden alle Zugriffe von den Benutzeranwendungen auf die Ressource verhindert oder unterbunden. Folglich nimmt in dem Fall, in dem die Ressourcenzuweisungsaufhebungsverarbeitung stattfindet, und in dem System, in dem mehrere in Echtzeit zu verarbeitende Prozesse existieren, der Zusatzaufwand beim Suchen der Prozesse, welche die Ressource, deren Zuweisung aufzuheben ist, gemeinsam verwenden, und beim Ausführen der anschließenden Zuweisungsaufhebungsverarbeitung erheblich zu. In diesem Fall ist die Echtzeitverarbeitung sehr schwierig zu verwirklichen oder wird unmöglich gemacht.
  • Angesichts des vorstehend Erwähnten ist es wünschenswert, ein Zugriffsverfahren bereitzustellen, das in der Lage ist, den Zusatzaufwand bei der Übersetzung zwischen der Kennung und der Adresse zu verringern, während die Zugriffsrechts-Steuerfunktion des herkömmlichen Verfahrens beibehalten wird, und die Zeit oder die Periode zu verringern, während derer der Zugriff auf die gemeinsame Ressource zum Ausführen der Prozessbeendigungsverarbeitung verhindert ist.
  • Zum Lösen des vorstehend Erwähnten wird dargelegt, dass eine Kennung, die aus Adressinformationen und Erzeugungsidentifikationsinformationen einer Ressource besteht, einer Ressource bei ihrer Erzeugung zugewiesen wird und gleichzeitig die Erzeugungsidentifikationsinformationen an einer ersten Stelle der Ressource gespeichert werden. Die Erzeugungsidentifikationsinformationen werden aus einer Kennung extrahiert, die als Argument eines von einer Benutzeranwendung ausgegebenen Systemaufrufs nach einem Zugriff auf die Ressource übertragen wird. Die extrahierten Erzeugungsidentifikationsinformationen werden mit den an der ersten Stelle der Ressource gespeicherten Erzeugungsidentifikationsinformationen verglichen. Der Zugriff auf die Ressource wird ermöglicht, wenn eine Übereinstimmung zwischen beiden Erzeugungsidentifikationsinformationen gefunden wird, während er verhindert wird, wenn eine Diskrepanz zwischen beiden Erzeugungsidentifikationsinformationen gefunden wird. Auf diese Weise kann das Zugriffsrecht auf die Ressource ausschließlich durch Vergleichen beider Erzeugungsidentifikationsinformationen gesteuert werden.
  • Die vorstehend erwähnten und andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden beim Lesen der folgenden Beschreibung der nur als Beispiel dienenden bevorzugten Ausführungsformen in Zusammenhang mit der anliegenden Zeichnung leichter verständlich werden.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Im Laufe der folgenden Beschreibung wird auf die Zeichnung Bezug genommen. Es zeigen:
  • 1 ein schematisches Diagramm zum Erläutern eines herkömmlichen Schemas zum Steuern des Zugriffsrechts auf eine gemeinsame Ressource in einem bereits bekannten Mehrprozessor-Computersystem,
  • 2A eine schematische Ansicht einer Struktur von Ressourcenverwaltungsdaten, die für die Ressourcenverwaltung in einem Computersystem verwendet werden,
  • 2B eine schematische Ansicht einer Struktur von Prozessverwaltungsdaten, die für die Prozessverwaltung in dem Computersystem verwendet werden,
  • 3 ein Flussdiagramm zum Erläutern einer herkömmlichen Ressourcenzuweisungsverarbeitung,
  • 4 ein Flussdiagramm zum Erläutern einer herkömmlichen Ressourcenzugriffsverarbeitung,
  • 5 ein Flussdiagramm zum Erläutern einer herkömmlichen Ressourcenzuweisungsaufhebungsverarbeitung,
  • 6 ein schematisches Diagramm einer Gruppe von Modulen und Daten, die zum Ausführen des Verfahrens gemäß der Ausführungsform der vorliegenden Erfindung benötigt werden,
  • 7 ein Flussdiagramm zum Erläutern einer Verarbeitungsprozedur, die gemäß der in 6 dargestellten Ausführungsform der Erfindung ausgeführt wird,
  • 8 ein Flussdiagramm zum Erläutern einer Verarbeitungsprozedur einer in 6 dargestellten Abbruchverhinderungsfunktion (21),
  • 9 ein Flussdiagramm zum Erläutern einer Verarbeitungsprozedur einer in 6 dargestellten Präemptionsverhinderungsfunktion (32),
  • 10 ein Flussdiagramm zum Erläutern einer Verarbeitungsprozedur einer in 6 dargestellten Präemptionsverhinderungs-Löschfunktion (33),
  • 11 ein Flussdiagramm zum Erläutern einer Verarbeitungsprozedur einer in 6 dargestellten Abbruchverhinderungs-Löschfunktion (22),
  • 12 ein schematisches Diagramm von Modulen, die beim Ausführen des Prozessausführungsverfahrens gemäß einer anderen Ausführungsform der Erfindung verwendet werden,
  • 13 ein Flussdiagramm zum Erläutern einer Verarbeitungsprozedur von in 12 dargestellten Prozessen (210212),
  • 14 ein Flussdiagramm zum Erläutern einer Verarbeitungsprozedur, die von einem in 12 dargestellten Verarbeitungsanforderungs-Benachrichtigungsmodul (300) ausgeführt wird,
  • 15 ein Flussdiagramm zum Erläutern einer Verarbeitungsprozedur, die von einem Serialisierungsprozessmodul (220) ausgeführt wird,
  • 16 ein Flussdiagramm zum Erläutern von Verarbeitungen, die von einem in 12 dargestellten Verarbeitungsabschluss-Benachrichtigungsmodul (310312) ausgeführt werden, die 17A, 17B und 17C schematische Ansichten von Hauptbestandteilen, die an der Steuerung oder Verwaltung des Zugriffsrechts teilnehmen,
  • 18 ein Flussdiagramm zum allgemeinen Erläutern eines Ablaufs der Ressourcenzugriffsverarbeitung,
  • 19 ein Flussdiagramm zum schematischen Erläutern einer Ressourcenzuweisungsverarbeitung,
  • 20 ein Flussdiagramm zum Erläutern einer Erzeugungsidentifikationsinformations-Erzeugungs-(make_idinf)-Verarbeitung,
  • 21 ein Flussdiagramm zum Erläutern einer Ressourcenbereichsreservierungs-(alloc_id)-Verarbeitung,
  • 22 ein Flussdiagramm zum Erläutern einer Kennungserzeugungs-(make_id)-Verarbeitung,
  • 23 ein Flussdiagramm zum Erläutern einer Ressourcenzugriffsverarbeitung und
  • 24 ein Flussdiagramm zum Erläutern einer Ressourcenzuweisungsaufhebungsverarbeitung.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Nun wird die vorliegende Erfindung detailliert mit Bezug auf gegenwärtig als bevorzugte oder typisch angesehene Ausführungsformen mit Bezug auf die Zeichnung beschrieben. In der folgenden Beschreibung bezeichnen gleiche Bezugszahlen in den verschiedenen Ansichten gleiche oder entsprechende Teile.
  • 6 zeigt schematisch einen Satz von Modulen und Daten, die zum Ausführen eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung notwendig sind.
  • In der Figur bezeichnet eine Bezugszahl 10 eine Prozessverwaltungstabelle 10 zum Steuern oder Verwalten von Prozessen. In der Prozessverwaltungstabelle 10 sind ein Abbruchanforderungs-Hinweiszeichen 11, ein Abbruchverhindert-Hinweiszeichen 12 und ein Zähler 13 zum Zählen verschachtelter Abbruchverhinderungen enthalten. Ferner bezeichnen eine Bezugszahl 20 ein Prozessverwaltungsmodul zum Steuern oder Verwalten von Prozessen, eine Bezugszahl 21 eine Schnittstellenfunktion zum Festlegen der Abbruchverhinderung, eine Bezugszahl 22 eine Schnittstellenfunktion zum Löschen der Abbruchverhinderung und eine Bezugszahl 200 einen Prozess, der die Verarbeitung für eine gemeinsame Ressource benötigt. Ferner bezeichnet eine Bezugszahl 40 eine Funktion, welche eine im Prozess 200 bereitgestellte gemeinsame Ressource verwendet und Arbeitsbereiche 23 und 37 enthält. Zusätzlich bezeichnet eine Bezugszahl 30 ein Präemptionssteuermodul, das auf den Lehren der in der japanischen Patentanmeldung 8-97997 offenbarten Erfindung beruht. Insbesondere weist das Präemptionssteuermodul 30 einen Abwickler 31, eine Präemptionsverhinderungsfunktion 32, eine Präemptionsverhinderungs-Löschfunktion 33, ein Abwicklungsanforderungs-Hinweiszeichen 34, ein Präemption-verhindert-Hinweiszeichen 35 und einen Zähler 36 zum Zählen der verschachtelten Präemptionsverhinderungen auf.
  • 7 ist ein Flussdiagramm zum Erläutern eines Ablaufs von Steuerungen für die Abbruchverhinderung und die Präemptionsverhinderung in einem Prozess zum Verwirklichen eines Merkmals der vorliegenden Erfindung. Wenn eine Verarbeitung in Bezug auf die gemeinsame Ressource auszuführen ist, verhindert die Funktion 40, die im Prozess 200 zum Ausführen der vorstehend erwähnten Verarbeitung enthalten ist, zunächst unter Verwendung der Abbruchverhinderungsfunktion 21, dass ihr eigener Prozess abgebrochen wird (Schritt 1300). Unmittelbar vor der Verwendung der gemeinsamen Ressource verhindert die Funktion 40 durch die Verwendung der im Präemptionssteuermodul 30 enthaltenen Präemptionsverhinderungsfunktion 32, dass ihr eigener Prozess unterbrochen wird (Schritt 1301), woraufhin die Verarbeitung, die die gemeinsame Ressource verwendet, ausgeführt wird (Schritt 1302). Nach Abschluss der Verarbeitung für die gemeinsame Ressource wird die verhinderte Präemption sofort mit Hilfe der im Präemptionssteuermodul 30 enthaltenen Präemptionsverhinderungs-Löschfunktion 33 aufgehoben oder gelöscht (Schritt 1303). An dieser Stelle sei erwähnt, dass die Einstellung des Präemptionsverhinderungsintervalls (oder des Präemptionsverhinderungsabschnitts angesichts des Steuerablaufs), das sich von der Präemptionsverhinderung bis zum Löschen der Präemptionsverhinderung erstreckt (entsprechend dem Abschnitt, der sich von Schritt 1301 bis Schritt 1303 erstreckt), auf eine Verarbeitung für die gemeinsame Ressource beschränkt ist, die innerhalb einer Zeit beendet wird, so dass kein nachteiliger Einfluss auf die Funktionsweise des periodischen Ansteuerns ausgeübt wird, beispielsweise innerhalb einer Zeit, die nicht länger ist als 10 einer Minimalzeit, die zum Verwalten des periodischen Ansteuerns benötigt wird. Während einer Periode, die der nachfolgenden Erklärung der Präemptionsverhinderung vorhergeht, gilt ein Präemptionsermöglichungszustand, in dem Verarbeitungen ausgeführt werden, die verhältnismäßig viel Zeit benötigen, wie eine Initialisierung der zugewiesenen Ressource oder dergleichen (Schritt 1304). Während dieser Periode kann die Ausführung des Prozesses 200 vorübergehend unterbrochen (oder ausgesetzt) werden, während zugelassen wird, dass andere Prozesse abgewickelt werden. Wenn eine Verarbeitung für die gemeinsame Ressource wieder notwendig wird, versetzt der Prozess 200 sich selbst noch einmal in den Präemptionsverhinderungszustand (Schritt 1305). Wenn die Verarbeitung für die gemeinsame Ressource an ein Ende gelangt (Schritt 1306), wird die Präemptionsverhinderung aufgehoben oder gelöscht (Schritt 1307). Nach Abschluss aller Verarbeitungen wird die Abbruchverhinderung schließlich gelöscht, indem auf die Verwendung der Abbruchverhinderungs-Löschfunktion 22 zurückgegriffen wird (Schritt 1308).
  • Im Fall des in 7 dargestellten Beispiels erscheint das Präemptionsverhinderungsintervall zwei Mal während der Periode von der Abbruchverhinderung bis zum Löschen der Abbruchverhinderung. Bei tatsächlichen Anwendungen kann die Anzahl solcher Präemptionsverhinderungsintervalle größer oder gleich drei sein.
  • 8 ist ein Flussdiagramm, in dem eine interne Verarbeitung der vorstehend mit Bezug auf 7 erwähnten Abbruchverhinderungsprozedur (1300) detailliert dargestellt ist. Die Ausführung der in 8 dargestellten Verarbeitung wird unter Verwendung der Abbruchverhinderungsfunktion 21 bewirkt. Hierzu prüft die Abbruchverhinderungsfunktion 21 zuerst, ob das Abbruch-verhindert-Hinweiszeichen 12, das in der Prozessverwaltungstabelle 10 enthalten ist, die den Prozess 200 verwaltet, im AUS-Zustand ist oder nicht (Schritt 1400). Wenn das Abbruch-verhindert-Hinweiszeichen 12 im AUS-Zustand ist, setzt die Abbruchverhinderungsfunktion 21 das Abbruch-verhindert-Hinweiszeichen 12 in den EIN-Zustand (Schritt 1401). Anschließend inkrementiert die Abbruchverhinderungsfunktion 21 den Wert des Zählers 13 um eins (Schritt 1402). Die Ausführung der in 8 dargestellten Prozedur ist unteilbar.
  • 9 ist ein Flussdiagramm, in dem die interne Verarbeitung der vorstehend mit Bezug auf 7 erwähnten Präemptionsverhinderungsprozedur (1301, 1305) detailliert dargestellt ist. Die in 9 dargestellte Verarbeitung wird durch die in 6 dargestellte Präemptionsverhinderungsfunktion 32 ausgeführt. Zuerst prüft die Präemptionsverhinderungsfunktion 32, ob das im Präemptionssteuermodul 30 enthaltene Präemption-verhindert-Hinweiszeichen 35 im AUS-Zustand ist oder nicht (Schritt 1500). Wenn das Präemption-verhindert-Hinweiszeichen 35 im AUS-Zustand ist, setzt die Präemptionsverhinderungsfunktion 32 das Präemption-verhindert-Hinweiszeichen 35 in den EIN-Zustand (Schritt 1501). Anschließend inkrementiert die Präemptionsverhinderungsfunktion 32 den Wert des Zählers 36 um eins (Schritt 1502). Die ganze in 9 dargestellte Prozedur wird unteilbar ausgeführt.
  • 10 ist ein Flussdiagramm, in dem die interne Verarbeitung der vorstehend mit Bezug auf 7 erwähnten Prozedur zum Löschen der Präemptionsverhinderung (1303, 1307) detailliert dargestellt ist. Die Ausführung der in 10 dargestellten Verarbeitung wird von der in 6 dargestellten Präemptionsverhinderungs-Löschfunktion 33 vorgenommen. Zuerst prüft die Präemptionsverhinderungs-Löschfunktion 33, ob der Verschachtelungswert (nachstehend beschrieben) der als erstes Argument übertragenen Funktion mit dem Wert des Zählers 36 übereinstimmt (Schritt 1600). Falls keine Übereinstimmung gefunden wird, wird eine Abnormitätsverarbeitung ausgeführt. Wenn andererseits eine Übereinstimmung gefunden wird, wird der Wert des in das Präemptionssteuermodul 30 aufgenommenen Zählers 36 um eins dekrementiert (Schritt 1601). Wenn der sich aus der Dekrementierung ergebende Wert des Zählers 36 positiv (plus) ist, wird die Verarbeitung intakt beendet (Schritt 1602). Wenn der Wert des Zählers 36 null oder negativ (minus) ist, wird das Präemption-verhindert-Hinweiszeichen dagegen in den AUS-Zustand versetzt (Schritt 1603). Anschließend wird das innerhalb des Präemptionssteuermoduls 30 gehaltene Abwicklungsanforderungs-Hinweiszeichen 34 geprüft (Schritt 1604). Wenn dieses Hinweiszeichen im AUS-Zustand ist, wird die Verarbeitung beendet. Wenn das Abwicklungsanforderungs-Hinweiszeichen 34 andererseits im EIN-Zustand ist, wird der Abwickler 31 aktiviert (Schritt 1605), um dadurch die Ausführung der Abwicklungsverarbeitung für den Prozess in Kraft zu setzen.
  • 11 ist ein Flussdiagramm, in dem die interne Verarbeitung der vorstehend mit Bezug auf 7 erwähnten Prozedur zum Löschen der Abbruchverhinderung (1308) detailliert dargestellt ist. Die in 11 dargestellte Verarbeitung wird mit Hilfe der in 6 dargestellten Abbruchverhinderungs-Löschfunktion 22 ausgeführt. Zuerst prüft die Abbruchverhinderungs-Löschfunktion 22, ob der als erstes Argument von der Funktion übertragene Verschachtelungswert (nachstehend beschrieben) mit dem Wert des Zählers 13 übereinstimmt (Schritt 1700). Falls keine Übereinstimmung gefunden wird, wird die Abnormitätsverarbeitung ausgeführt. Wenn andererseits die Übereinstimmung bestätigt wird, wird der Wert des Zählers 13, der in der den Prozess 200 verwaltenden Prozessverwaltungstabelle 10 enthalten ist, um eins dekrementiert (Schritt 1701). Wenn der sich aus der Dekrementierung ergebende Wert des Zählers 13 positiv (plus) ist, wird die Verarbeitung intakt beendet (Schritt 1702). Falls der Wert des Zählers 13 null oder negativ (minus) ist, wird das Abbruch-verhindert-Hinweiszeichen dagegen in den AUS-Zustand versetzt (Schritt 1703). Anschließend wird das in der Prozessverwaltungstabelle 10 enthaltene Abbruchanforderungs-Hinweiszeichen 11 geprüft (Schritt 1704). Wenn dieses Hinweiszeichen im AUS-Zustand ist, wird die Verarbeitung beendet. Wenn das Abbruch anforderungs-Hinweiszeichen 11 andererseits im EIN-Zustand ist, wird das Prozessverwaltungsmodul 20 aktiviert (Schritt 1705), um dadurch die Ausführung der Abbruchverarbeitung für den Prozess 200 in Kraft zu setzen.
  • Weiter aktiviert in dem Fall, in dem die in 11 dargestellte Verarbeitung im AUS-Zustand des Abbruchanforderungs-Hinweiszeichens 11 beendet wird, das Prozessverwaltungsmodul 20 den im Präemptionssteuermodul 30 enthaltenen Abwickler 31, um die Prozessneuabwicklungsverarbeitung auszuführen.
  • Mit Bezug auf 6 sei bemerkt, dass das Intervall oder die Periode, während derer das Abbruch-verhindert-Hinweiszeichen 12 im EIN-Zustand bleibt, d. h. die Periode von einem Zeitpunkt, zu dem die Abbruchverhinderungsfunktion 21 aufgerufen wird, um das Abbruch-verhindert-Hinweiszeichen 12 in den EIN-Zustand zu versetzen, bis zu einem Zeitpunkt, zu dem die Abbruchverhinderungs-Löschfunktion 22 aufgerufen wird, um das Abbruch-verhindert-Hinweiszeichen 12 in den AUS-Zustand zu versetzen, das Abbruchverhinderungsintervall darstellt. Das Abbruch-verhindert-Hinweiszeichen 12 befindet sich im AUS-Zustand, wenn der Prozess erzeugt oder generiert wird, und es wird nur dann in den EIN-Zustand versetzt, wenn die Abbruchverhinderungsfunktion 21 aufgerufen wird. In dem Fall, in dem die erzwungene Beendigung des Prozesses 200 während des Abbruchverhinderungsintervalls auftritt, während dessen das Abbruch-verhindert-Hinweiszeichen 12 in dem EIN-Zustand bleibt, der durch die vom Prozess 200 aufgerufene Abbruchverhinderungsfunktion 21 festgelegt wurde, führt das Prozessverwaltungsmodul 20 nur die Verarbeitung für das Versetzen des Abbruchanforderungs-Hinweiszeichens 11 in den EIN-Zustand aus, während die Fortsetzung der Verarbeitung des Prozesses 200 erlaubt ist. Die erzwungene Beendigung des Prozesses 200 wird in Kraft gesetzt, wenn das Abbruchverhindert-Hinweiszeichen 12 durch die vom Prozess 200 aufgerufene Abbruchverhinderungs-Löschfunktion 22 in den AUS-Zustand versetzt wurde.
  • Weiter sei mit Bezug auf 6 bemerkt, dass das Intervall oder die Periode, während derer das Präemptionverhindert-Hinweiszeichen 35 im EIN-Zustand bleibt, d. h. die Periode von einem Zeitpunkt, zu dem die Präemptionsverhinderungsfunktion 32 aufgerufen wird, um das Präemptionverhindert-Hinweiszeichen 35 in den EIN-Zustand zu versetzen, bis zu einem Zeitpunkt, zu dem die Präemptionsverhinderungs-Löschfunktion 33 aufgerufen wird, um das Präemptionverhindert-Hinweiszeichen 35 in den AUS-Zustand zu versetzen, das Präemptionsverhinderungsintervall darstellt. Das Präemption-verhindert-Hinweiszeichen 35 befindet sich im AUS-Zustand, wenn das System aktiviert ist, und es wird nur dann in den EIN-Zustand versetzt, wenn die Präemptionsverhinderungsfunktion 32 aufgerufen wird. In dem Fall, in dem die Abwicklungsanforderung für den anderen Prozess bzw. die anderen Prozesse während des Intervalls auftritt, in dem das Präemption-verhindert-Hinweiszeichen 35 im EIN-Zustand bleibt, der durch die vom Prozess 200 aufgerufene Präemptionsverhinderungsfunktion 32 festgelegt wurde, führt der Abwickler 31 nur die Verarbeitung zum Versetzen des Abwicklungsanforderungs-Hinweiszeichens 34 in den EIN-Zustand aus, während die Fortsetzung der Verarbeitung des Prozesses 200 ohne Abwicklung des anderen Prozesses bzw. der anderen Prozesse erlaubt wird. Wenn das Präemption-verhindert-Hinweiszeichen 35 durch die vom Prozess 200 aufgerufene Präemptionsverhinderungs-Löschfunktion 33 in den AUS-Zustand versetzt wird, versetzt der Abwickler 31 das Abwicklungsanforderungs-Hinweiszeichen in den AUS-Zustand und unterbricht die Ausführung des Prozesses 200, während die Abwicklung anderer Prozesse erlaubt wird.
  • Mit Bezug auf 7 sei bemerkt, dass in dem Intervall oder Abschnitt, der sich von Schritt 1301 bis Schritt 1303 erstreckt, und in dem Intervall oder Abschnitt, der sich von Schritt 1305 bis Schritt 1307 erstreckt, die Präemption verhindert ist, was wiederum bedeutet, dass das Recht zur Verwendung der CPU (Zentralverarbeitungseinheit) nie auf andere Prozesse übertragen wird. Daher kann nur der laufende Prozess die gemeinsame Ressource verwenden. Mit anderen Worten wird jeder andere Prozess daran gehindert, die gemeinsame Ressource zu verwenden, wodurch die exklusive Kontrolle oder Verwaltung der Ressource verwirklicht werden kann, wodurch es möglich wird, die kontinuierliche Medien-Mehrfachverarbeitung unter Verwendung der gemeinsamen Ressource auszuführen. Weil zusätzlich der Abbruch während des die Schritte 1300 bis 1308 überspannenden Intervalls verhindert wird, wird jeder Prozess, der die Ressource reserviert hat, durch die erzwungene Beendigung abgebrochen. Demgemäß wird sicher verhindert, dass die Ressource in einen Zustand gelangt, in dem sie während eines unbestimmten Zeitraums nicht verwendet werden kann.
  • Die Abbruchverhinderung sowie die Löschung der Abbruchverhinderung werden durch das nachstehend erwähnte Medium der Schnittstellen bewirkt.
    <Funktionsname>
    abort_disable (*Niveau)
    <Argument>
    Niveau: Die Tiefe der durch ein Paar der nun berücksichtigten momentanen Funktion und der Funktion "abort_enable" gebildeten Verschachtelung wird zurückgegeben.
    <Erläuterung>
  • Die nun betrachtete Funktion kann bewirken, dass der gegenwärtig ausgeführte Prozess in den Abbruchverhinderungszustand übergeht. Diese Funktion und die Funktion "abort_enable" können während des Abschnitts oder der Periode, die den Übergang in den Abbruchverhinderungszustand ansprechend auf die Ausgabe dieser Funktion und die Wiederherstellung in den Abbruchermöglichungszustand ansprechend auf die Ausgabe der Funktion "abort_enable" umspannt, in einem Paar ausgegeben werden. Dies bedeutet, dass das Paar aus der nun betrachteten Funktion und der Funktion "abort_enable" verschachtelt werden kann. Die nun betrachtete Funktion und die innerhalb der Verschachtelung ausgegebene Funktion "abort_enable" vollführen keinen Zustandsübergang zwischen dem Abbruchverhinderungszustand und dem Abbruchermöglichungszustand. Das Argument "Niveau" spiegelt die Tiefe dieses Verschachtelungszustands wider.
    <Funktionsname>
    abort_enable (Niveau)
    <Argument>
    Niveau: Das Niveau der Verschachtelung, das von der Funktion "abort_disable", welche das mit der momentanen Funktion zu paarende Gegenstück bildet, zurückgegeben wird, wird festgelegt.
    <Erläuterung>
  • Die betrachtete Funktion kann bewirken, dass der gegenwärtig ausgeführte Prozess in den Abbruchermöglichungszustand wiederhergestellt wird. Die nun betrachtete Funktion (d. h. "abort_enable") und die Funktion "abort_disable" können während des Abschnitts oder der Periode, die den Übergang in den Abbruchverhinderungszustand ansprechend auf die Ausgabe der Funktion "abort_disable" und die Wiederherstellung in den Abbruchermöglichungszustand ansprechend auf die Ausgabe der momentanen Funktion umspannt, in einem Paar ausgegeben werden. Dies bedeutet, dass das Paar aus der Funktion "abort_disable" und der nun betrachteten Funktion "abort_enable" verschachtelt werden kann. Die Funktion "abort_disable" und die innerhalb der Verschachtelung ausgegebene nun betrachtete Funktion vollführen keinen Zustandsübergang zwischen dem Abbruchverhinderungszustand und dem Abbruchermöglichungszustand. Das Argument "Niveau" bezeichnet die Tiefe dieser Verschachtelung, d. h. den Wert von "Niveau" infolge des Ausgebens des Funktionsgegenstücks "abort_disable". Dieser Wert wird auch vom Betriebssystem gehalten. Demgemäß tritt eine Diskrepanz zwischen diesem Wert und der durch das Argument spezifizierten Tiefe der Verschachtelung, nämlich die so genannte Fehlerrückgabe, auf.
  • Wenn die im Prozess 200 enthaltene Funktion 40 die Abbruchverhinderungsfunktion 21 verwendet, speichert die Funktion 40 in ihrem eigenen Arbeitsbereich 23 die von der Abbruchverhinderungsfunktion 21 zurückgegebene aktuelle Tiefe der Verschachtelung. Zum Ausgeben der Abbruchverhinderungs-Löschfunktion 22 wird der im Arbeitsbereich 23 gespeicherte Wert als das Argument der Funktion 40 festgelegt oder spezifiziert. Die Abbruchverhinderungs-Löschfunktion dient dazu, den vorstehend erwähnten Wert mit der aktuellen Tiefe der Verschachtelung zu vergleichen, um die Fehlerrückgabe in Kraft zu setzen, es sei denn, dass eine Übereinstimmung zwischen beiden vorstehend erwähnten Werten gefunden wird. Durch diese Funktion ist es möglich, leicht einen Programmierungsfehler zu erkennen, der darin besteht, dass die Abbruchverhinderungs-Löschfunktion, die das Gegenstück zu der Abbruchverhinderungsfunktion in einem Paar bilden soll, nicht vorhanden ist.
  • Die Präemptionsverhinderungsverarbeitung und die Präemptionsverhinderungs-Löschverarbeitung können unter Verwendung der in der vorstehend erwähnten japanischen Patentanmeldung 8-97997 offenbarten Präemptionsverhinderungs-Löschschnittstelle ausgeführt werden. Insbesondere werden die folgenden Schnittstellen verwendet:
    <Funktionsname>
    preempt_disable (*Niveau)
    <Argument>
    Niveau: Die Tiefe der durch ein Paar der nun betrachteten momentanen Funktion (d. h. "preempt_disable") und der Funktion "preempt_enable" gebildeten Verschachtelung wird zurückgegeben.
    <Erläuterung>
  • Die nun betrachtete Funktion bewirkt, dass der gegenwärtig ausgeführte Prozess in den Präemptionsverhinderungszustand übergeht. Diese Funktion "preempt_disable" und die Funktion "preempt_enable" können während des Abschnitts oder Intervalls zwischen dem Übergang in den Präemptionsverhinderungszustand ansprechend auf die Ausgabe dieser Funktion und der Wiederherstellung in den Präemptions ermöglichungszustand ansprechend auf die Ausgabe der Funktion "preempt_enable" in einem Paar ausgegeben werden. Dies bedeutet, dass das Paar aus der nun betrachteten Funktion und der Funktion "preempt_enable" verschachtelt werden kann. Die nun betrachtete Funktion und die innerhalb der Verschachtelung ausgegebene Funktion "preempt_enable" vollführen keinen Zustandsübergang zwischen dem Präemptionsverhinderungszustand und dem Präemptionsermöglichungszustand. Das Argument "Niveau" spiegelt die Tiefe dieser Verschachtelung wider.
    <Funktionsname>
    preempt_enable (Niveau)
    <Argument>
    Niveau: Das Niveau der Verschachtelung, das von der Funktion "preempt_disable", welche das Gegenstück des Paars mit der momentanen Funktion bildet, zurückgegeben wird, wird festgelegt.
    <Erläuterung>
  • Die betrachtete Funktion kann bewirken, dass der gegenwärtig ausgeführte Prozess in den Präemptionsermöglichungszustand zurückgeführt wird. Die Funktion "preempt_disable" und diese Funktion können während des Intervalls oder der Periode, die den Übergang in den Präemptionsverhinderungszustand ansprechend auf die Ausgabe der Funktion "preempt_disable" und die Wiederherstellung in den Präemptionsermöglichungszustand ansprechend auf die Ausgabe dieser Funktion umspannt, in einem Paar ausgegeben werden. Dies bedeutet, dass das Paar aus der Funktion "preempt_disable" und der betrachteten Funktion verschachtelt werden kann. Die Funktion "preempt_disable" und die innerhalb der Verschachtelung ausgegebene nun betrachtete Funktion vollführen keinen Zustandsübergang zwischen dem Präemptionsverhinderungszustand und dem Präemptionsermöglichungszustand. Das Argument "Niveau" bezeichnet die Tiefe dieser Verschachtelung, d. h. den durch die Ausgabe des Funktionsgegenstücks "preempt_disable" erhaltenen Wert von "Niveau".
  • Die Tiefe der Verschachtelung wird auch vom Betriebssystem gehalten. Demgemäß tritt eine Diskrepanz zwischen diesem Wert und der durch das Argument spezifizierten Tiefe der Verschachtelung, nämlich die so genannte Fehlerrückgabe, auf.
  • Wenn die im Prozess 200 enthaltene Funktion 40 die Präemptionsverhinderungsfunktion 32 verwendet, speichert die Funktion 40 in ihrem eigenen Arbeitsbereich 37 die von der Präemptionsverhinderungsfunktion 32 zurückgegebene aktuelle Tiefe der Verschachtelung. Zum Ausgeben der Präemptionsverhinderungs-Löschfunktion 33 wird der im Arbeitsbereich 23 gespeicherte Wert als das Argument der Funktion 40 festgelegt oder spezifiziert. Die Präemptionsverhinderungs-Löschfunktion dient dazu, den vorstehend erwähnten Wert mit der aktuellen Tiefe der Verschachtelung zu vergleichen, um die Fehlerrückgabe in Kraft zu setzen, es sei denn, dass eine Übereinstimmung zwischen beiden vorstehend erwähnten Werten gefunden wird. Durch diese Funktion kann ein Programmierfehler leicht erkannt werden, der darin besteht, dass die Präemptionsverhinderungs-Löschfunktion, die das Gegenstück zu der Präemptionsverhinderungsfunktion in einem Paar bilden soll, nicht vorhanden ist.
  • Als nächstes wird eine Ausführungsform der Erfindung beschrieben, die ein Verfahren zum Ausführen eines Prozesses unter Verwendung einer gemeinsamen Ressource in einem Fall betrifft, in dem die gemeinsame Ressource während einer längeren Dauer verwendet wird.
  • Beim Prozessausführungsverfahren gemäß der vorliegenden Ausführungsform der Erfindung führt ein periodisch angesteuerter Prozess eine Verarbeitung zum Reservieren der Ressource nach Bedarf durch die Verwendung des nachstehend beschriebenen Prozessausführungsverfahrens in einem nicht periodisch angesteuerten Zustand vor Beginn der periodischen Ansteuerung aus. Nach Abschluss der vorstehend erwähnten Verarbeitung beginnt der Prozess periodisch angesteuert zu werden. Sobald mit dem periodischen Ansteuern begonnen wurde, wird keine Verarbeitung zum Reservieren der Ressource in dem nachstehend beschriebenen Prozessausführungsverfahren ausgeführt.
  • 12 zeigt Module, die für das Ausführen des Prozessausführungsverfahrens gemäß der vorliegenden Ausführungsform der Erfindung benötigt werden.
  • In 12 bezeichnen Bezugszahlen 210 bis 212 jeweils jene Prozesse, die die Verwendung der gemeinsamen Ressource fordern, und eine Bezugszahl 220 bezeichnet den einzigen Prozess, der berechtigt ist, die Verarbeitung für eine spezifische gemeinsame Ressource auszuführen. Dieser Prozess 220 wird nachstehend als Serialisierungsprozess bezeichnet. Der Serialisierungsprozess 220 ist innerhalb des Systems vorhanden. Eine Bezugszahl 300 bezeichnet ein Verarbeitungsanforderungs-Benachrichtigungsmodul, um den Serialisierungsprozess 220 über die jeweiligen von den Prozessen 210 bis 212 ausgegebenen Verarbeitungsanforderungen zu benachrichtigen. Entsprechend dem Serialisierungsprozess 220 ist das einzige Verarbeitungsanforderungs-Benachrichtigungsmodul 300 wie im Fall des Prozesses 220 innerhalb des Systems bereitgestellt und ständig darin vorhanden. Bezugszahlen 310 bis 312 bezeichnen jeweils Verarbeitungsabschluss-Benachrichtigungsmodule zum Übertragen der Verarbeitungsabschlussnachricht vom Serialisierungsprozess 220 zu den Prozessen 210 bis 212, wobei die Verarbeitungsabschluss-Benachrichtigungsmodule 310 bis 312 den Prozessen 210 bis 212 jeweils nach ihrer Erzeugung oder nach Ausgeben der Verarbeitungsanforderung davon zugewiesen werden. Das Verarbeitungsanforderungs-Benachrichtigungsmodul 300 und die Verarbeitungsabschluss-Benachrichtigungsmodule 310 bis 312 haben jeweils interne Warteschlangen 400 und 410 bis 412.
  • Als nächstes wird die in dem in 12 dargestellten System ausgeführte Verarbeitung mit Bezug auf die in den 13 bis 16 dargestellten Flussdiagramme beschrieben.
  • 13 ist ein Flussdiagramm zur Erläuterung einer Verarbeitung, die von jedem der Prozesse 210 bis 212, welche die Verarbeitung für die gemeinsame Ressource benötigen, ausgeführt wird. Insbesondere gibt jeder der Prozesse 210 bis 212 eine Verarbeitungsanforderungsnachricht an das Verarbeitungsanforderungs-Benachrichtigungsmodul 300 aus, um die Verarbeitung des Serialisierungsprozesses 220 anzufordern, der in der Lage ist, auf die gemeinsame Ressource zuzugreifen (Schritt 1800). Der Prozess 210 oder 211 oder 212, der die Verarbeitungsanforderung ausgegeben hat, wird sofort in den Zustand versetzt, der auf den Empfang der Verarbeitungsabschlussnachricht von dem zugeordneten der Verarbeitungsabschluss-Benachrichtigungsmodule 310 bis 312 wartet, nachdem die Verarbeitungsanforderungsnachricht abgeschlossen wurde. Wenn der Verarbeitungsabschluss von dem Verarbeitungsabschluss-Benachrichtigungsmodul 310 oder 311 oder 312 mitgeteilt wird (Schritt 1801), ruft der Prozess 210 oder 211 oder 212 die Verarbeitungsabschlussnachricht aus der Warteschlange 410 oder 411 oder 412 ab, die in dem zugeordneten der Verarbeitungsabschluss-Benachrichtigungsmodule 310 bis 312 bereitgestellt ist (Schritt 1802), woraufhin die Verarbeitung für die von einem der Prozesse 210 bis 212 angeforderte gemeinsame Ressource beendet wird.
  • 14 ist ein Flussdiagramm zur Erläuterung der vom Verarbeitungsanforderungs-Benachrichtigungsmodul 300 ausgeführten Verarbeitung. Zuerst sei erwähnt, dass das Verarbeitungsanforderungs-Benachrichtigungsmodul 300 ständig in dem für den Empfang der Verarbeitungsanforderungsnachricht bereiten Zustand ist. Nach dem Empfang der Verarbeitungsanforderungsnachricht (Schritt 1900) gibt das Verarbeitungsanforderungs-Benachrichtigungsmodul 300 die Verarbeitungsanforderungsnachricht in der Reihenfolge des Empfangs der Nachricht in die Warteschlange 400 (Schritt 1901), woraufhin das Verarbeitungsanforderungs-Benachrichtigungsmodul 300 den Serialisierungsprozess 220 informiert, dass die Verarbeitungsanforderung ausgegeben wurde.
  • 15 ist ein Flussdiagramm zum Erläutern der vom Serialisierungsprozess 220, der der einzige Prozess ist, der in der Lage ist, die Verarbeitung für die gemeinsame Ressource auszuführen, ausgeführten Verarbeitung. Ähnlich dem Verarbeitungsanforderungs-Benachrichtigungsmodul 300 befindet sich der Serialisierungsprozess 220 ständig in dem Zustand, in dem er auf den Empfang der Verarbeitungsanforderungsnachricht wartet. Nach dem Empfang der Informationen in Bezug auf die Ausgabe einer Verarbeitungsanforderung vom Verarbeitungsanforderungs-Benachrichtigungsmodul 300 (Schritt 2000) ruft der Serialisierungsprozess 220 die Verarbeitungsanforderung aus der Warteschlange 400 im Verarbeitungsanforderungs-Benachrichtigungsmodul 300 ab oder empfängt diese (Schritt 2001), um die Verarbeitung an der gemeinsamen Ressource oder für diese in Übereinstimmung mit der Anforderung auszuführen (Schritt 2002). Nach Abschluss der Verarbeitung für die gemeinsame Ressource teilt der Serialisierungsprozess 220 den Verarbeitungsabschluss und das Ergebnis der Verarbeitung einem der Verarbeitungsabschluss-Benachrichtigungsmodule 310 bis 312 mit, das einem der Prozesse 210 bis 212 zugeordnet ist, der die entsprechende Verarbeitungsanforderung ausgegeben hat (Schritt 2003). Inzwischen prüft der Serialisierungsprozess 220, ob die nächste Verarbeitungsanforderung in die Warteschlange gegeben wurde. Falls dies der Fall ist, führt der Serialisierungsprozess 220 die Verarbeitung für die gemeinsame Ressource in Übereinstimmung mit dieser Verarbeitungsanforderung aus. Andernfalls nimmt der Serialisierungsprozess 220 den Zustand wieder auf, der für den Empfang oder die Akzeptanz der nachfolgenden oder nächsten Verarbeitungsanforderung bereit ist (Schritt 2000).
  • 16 ist ein Flussdiagramm zur Erläuterung der vom Verarbeitungsabschluss-Benachrichtigungsmodul 310 oder 311 oder 312 ausgeführten Verarbeitung. Jedes der Verarbeitungsabschluss-Benachrichtigungsmodule 310, 311 und 312 ist in den Zustand versetzt, in dem es auf die Nachricht wartet, welche über den Verarbeitungsabschluss gleichzeitig mit dem Ausgeben der Verarbeitungsanforderung von dem zugeordneten der Prozesse 210 bis 212 informiert. Nach dem Empfang des Verarbeitungsabschlusses vom Serialisierungsprozess 220 (Schritt 2100) gibt das Verarbeitungsabschluss-Benachrichtigungsmodul die Verarbeitungsabschlussnachricht und das Ergebnis der Verarbeitung in die zugeordnete der Warteschlangen 410 bis 412 (Schritt 2101), woraufhin das Verarbeitungsabschluss-Benachrichtigungsmodul 310 oder 311 oder 312 die Nachricht, die den Verarbeitungsabschluss angibt, an den relevanten der Prozesse 210 bis 212, der die Verarbeitungsanforderung ausgegeben hat, ausgibt (Schritt 2102).
  • Im Fall des in 12 dargestellten Systems wird angenommen, dass drei Prozesse 210, 211 und 212 existieren, welche die Verarbeitung für die gemeinsame Ressource fordern. Es ist jedoch selbstverständlich, dass die Inhalte der Verarbeitungen selbst dann im Wesentlichen unveränderlich sind, wenn die Anzahl der Prozesse, welche die die gemeinsame Ressource betreffende Verarbeitung fordern, kleiner oder größer als drei ist.
  • An dieser Stelle sei erwähnt, dass der Serialisierungsprozess 220 in dem in 12 dargestellten System konstant im Präemptionsermöglichungszustand arbeitet.
  • Ferner sei wiederum erwähnt, dass der Prozess 210, 211 oder 212 die vorstehend erwähnten Ressourcenreservierungsverarbeitungen ausführt (13), bevor die periodische Ansteuerung davon eingeleitet wird. Mit anderen Worten reserviert der Prozess (210, 211, 212) die Ressourcendaten in dem für das periodische Ansteuern irrelevanten Zustand, der erst eingeleitet wird, nachdem die Ressource durch die vorstehend beschriebene Verarbeitung reserviert wurde.
  • Durch die Verwendung des Prozessausführungsverfahrens auf der Grundlage des vorstehend beschriebenen Serialisierungsprozesses braucht die exklusive Steuerung (d. h. die Steuerung oder Verwaltung des wechselseitigen Ausschlusses) nicht ausgeführt zu werden, weil es nur einen Prozess, nämlich den Serialisierungsprozess, gibt, der die Verarbeitung direkt an der gemeinsamen Ressource und für diese ausführen kann. Demgemäß kann durch die Anordnung, bei der die Verarbeitung für die gemeinsame Ressource durch den präemptionsermöglichten unabhängigen Prozess ausgeführt wird, der der Verarbeitung für die gemeinsame Ressource zugewiesen ist, die Prozessausführung erreicht werden, ohne die Funktionsweise beim periodischen Ansteuern (oder die periodische Ansteuerbarkeit) anderer Prozesse zu beeinflussen, die an der kontinuierlichen Medienverarbeitung teilnehmen.
  • Wie anhand der vorstehenden Beschreibung ersichtlich ist, kann eine gemeinsame Ressource von den einzelnen Prozessen, die an der kontinuierlichen Medienverarbeitung oder dergleichen beteiligt sind, gemeinsam verwendet werden, ohne dass die periodische Ansteuerbarkeit der Prozesse in der Mehrfachverarbeitungsumgebung, in der die gemeinsame Ressource verwendet wird, beeinflusst wird.
  • Als nächstes wird ein Zugriffsverfahren gemäß einer anderen Ausführungsform der vorliegenden Erfindung beschrieben.
  • §1. Konfiguration
  • Hauptbestandteile oder Module, die an einer Zugriffsrechtssteuerung teilnehmen, werden mit Bezug auf die 17A, 17B und 17C beschrieben.
  • Eine in 17A dargestellte Ressourcenkennung 600 ist ein Argument mit 64 Bits, das in dem von der Benutzeranwendung ausgegebenen Systemaufruf zur Verwendung beim Zugriff auf die Ressource enthalten ist. Von dem 64-Bit-Argument werden die ersten 32 Bits zum Identifizieren einer Anfangs- oder Ausgangsadresse 601 einer Ressource 608 verwendet, während die letzten 32 Bits Erzeugungsidentifikationsinformationen 602 bilden. Die Ressourcenkennung 600 wird nach der Erzeugung der Ressource erzeugt und verwendet, um auf die Ressource zuzugreifen, bis die Ressource freigegeben oder entfernt wurde.
  • Ein in 17B dargestellter Ressourcenerzeugungszähler 603 wird für jeden der Prozesse nach seiner Erzeugung erzeugt und dient als ein Zähler zum Aufzeichnen der Häufigkeit, mit der die Ressource erzeugt wird. Der Zählwert 604 des Ressourcenerzeugungszählers 603 wird auf den Anfangswert null gesetzt und bei jeder Erzeugung der Ressource um eins inkrementiert.
  • In 17C dargestellte Erzeugungsidentifikationsinformationen 605 enthalten die ersten 16 Bits, welche einen Zählwert 606 des Ressourcenerzeugungszählers darstellen, wobei die letzten 16 Bits eine Prozesskennung 607 darstellen.
  • Nachstehend wird die Ressource, welche die Erzeugungsidentifikationsinformationen 609 an einer ersten Stelle oder Anfangsstelle enthält, als die Ressource 608 bezeichnet.
  • §2. Kurzbeschreibung der Ressourcenzugriffsverarbeitung der Benutzeranwendung
  • 18 ist ein Flussdiagramm, das einen Programmablauf zum Ausführen der durch das Verfahren gemäß der vorliegenden Ausführungsform der Erfindung ausgeführten Ressourcenzugriffsverarbeitung zeigt, wie nachstehend schrittweise beschrieben wird.
    • (1) In Schritt 2200 gibt eine Benutzeranwendung einen Systemaufruf, der eine Prozesserzeugungsverarbeitung anfordert, an das Betriebssystem aus, das darauf durch Erzeugung eines Ressourcenerzeugungszählers 603 für den erzeugten Prozess antwortet.
    • (2) In Schritt 2201 gibt die Benutzeranwendung an das Betriebssystem einen Systemaufruf für die Ressourcenzuweisungsverarbeitung aus.
    • (3) In Schritt 2202 gibt die Benutzeranwendung an das Betriebssystem einen Systemaufruf aus, der eine Zugriffsverarbeitung auf die in Schritt 2201 zugewiesene Ressource anfordert.
    • (4) In Schritt 2203 gibt die Benutzeranwendung an das Betriebssystem einen Systemaufruf aus, der eine Zuweisungsaufhebungsverarbeitung der in Schritt 2201 zugewiesenen Ressource anfordert.
  • Nachfolgend wird die Verarbeitung für jeden der vorstehend erwähnten Systemaufrufe detailliert beschrieben.
  • §2.1. Ressourcenzuweisungsverarbeitung
  • 19 zeigt ein Flussdiagramm zum Erläutern des in 18 dargestellten Ressourcenzuweisungsverarbeitungsschritts 2201. Der Ressourcenerzeugungszähler wird um eins inkrementiert (Schritt 2300 in 19), woraufhin die Erzeugungsidentifikationsinformations-Erzeugungs- oder Erstellungsverarbeitung "make_idinf" ausgeführt wird (Schritt 2301), der dann Schritt 2302 folgt, in dem eine Ressourcenbereichszuweisungs-(oder Speicherbereichsreservierungs)-Verarbeitung "alloc_mem" ausgeführt wird, woraufhin Schritt 2303 zum Erzeugen einer Kennung "make_id" ausgeführt wird. Anschließend werden die Erzeugungsidentifikationsinformationen an den ersten 32 Bits des zurückgegebenen Ressourcenbereichs gespeichert (Schritt 2304).
  • §2.1.1. Erzeugungsidentifikationsinformations-Erzeugungs-(make_idinf)-Verarbeitung
  • 20 zeigt ein Flussdiagramm zum Erläutern der Erzeugungsidentifikationsinformations-Erzeugungsverarbeitung in dem in 19 dargestellten Schritt 2301. Nachfolgend wird diese Verarbeitung als "make_idinf"-Verarbeitung bezeichnet. Die Erzeugungsidentifikationsinformationen werden durch ein Paar aus dem Ressourcenerzeugungs-Zählwert und der Prozesskennung des für die Ressourcenerzeugung vorgesehenen Prozesses erzeugt. Mit Bezug auf 20 sei bemerkt, dass die Prozesskennung zuerst erhalten wird (Schritt 2400), woraufhin der Ressourcenerzeugungs-Zählwert in die ersten 16 Bits gegeben wird, während eine erzeugte Zufallszahl in den letzten 16 Bits gespeichert wird, um dadurch die 32-Bit-Erzeugungsidentifikationsinformationen zu erzeugen (Schritt 2401). Es werden die erzeugten Erzeugungsidentifikationsinformationen zurückgegeben (Schritt 2402).
  • §2.1.2. Ressourcenbereichsreservierungs-(Speicherzuweisungs)(alloc_mem)-Verarbeitung
  • 21 zeigt ein Flussdiagramm zum Erläutern der Ressourcenreservierungs-(oder Zuweisungs)-Verarbeitung in dem in 19 dargestellten Schritt 2302. Diese Verarbeitung wird auch als "alloc_mem"-Verarbeitung bezeichnet. Weil der Ressourcenbereich aus einem Erzeugungsidentifikationsinformationsbereich und einem Ressourcenbereich besteht, wird die Ressourcenbereichsgröße, zu der die Erzeugungsidentifikationsinformations-Datengröße von 32 Bits addiert ist, bestimmt (Schritt 2500), woraufhin der Ressourcenbereich mit der bestimmten Größe zugewiesen wird (Schritt 2501). Anschließend wird die erste Adresse des Ressourcenbereichs (Speicherbereichs) zurückgegeben (Schritt 2502).
  • §2.1.3. Kennungserzeugungs-(make_id)-Verarbeitung
  • 22 zeigt ein Flussdiagramm zum Erläutern der Kennungserzeugungsverarbeitung in dem in 19 dargestellten Schritt 2303. Nachstehend wird diese Verarbeitung auch als "make_id"-Verarbeitung bezeichnet. Die Kennung besteht aus einem Paar aus der Ressourcenadresse und den Erzeugungsidentifikationsinformationen. Die Adresse der bei der Ressourcenbereichszuweisungs- oder "alloc_mem"-Verarbeitung (Schritt 2302) reservierten Ressource wird an den ersten 32 Bits angeordnet, während die bei der Erzeugungsidentifikationsinformationserzeugungs-"make_id"-Verarbeitung (Schritt 2301) erzeugten Erzeugungsidentifikationsinformationen an den letzten 32 Bits angeordnet werden, wodurch die Kennung mit 64 Bits erzeugt wird (Schritt 2600). Die erzeugte Kennung wird als das Argument zur Verwendung beim Vornehmen eines Zugriffs auf die Ressource zurückgegeben (Schritt 2601).
  • §2.2. Ressourcenzugriffsverarbeitung
  • 23 zeigt ein Flussdiagramm zum Erläutern einer Ressourcenzugriffsverarbeitung entsprechend Schritt 2202 in
  • 18. Mit Bezug auf 23 sei bemerkt, dass die ersten 32 Bits der als Argument des von der Benutzeranwendung ausgegebenen Systemaufrufs empfangenen Kennung extrahiert werden, um dadurch die Ressourcenadresse zu definieren, während die letzten 32 Bits zum Definieren der Erzeugungsidentifikationsinformationen S1 extrahiert werden (Schritt 2700). Anschließend werden die ersten 32 Bits auf der Grundlage der Ressourcenadresse aus der Ressource ausgelesen, um die Erzeugungsidentifikationsinformationen S2, d. h. die "read_mem"-Informationen zu definieren (Schritt 2701), woraufhin die extrahierten Erzeugungsidentifikationsinformationen S1 und S2 miteinander verglichen werden (Schritt 2702). Wenn die Vergleichsergebnisse nicht übereinstimmen, wird der Zugriff auf die Ressource nicht ausgeführt, und es wird eine Fehlermeldung zurückgegeben (Schritt 2703). Wenn die vorstehend erwähnten Vergleichsergebnisse andererseits übereinstimmen, wird die Zugriffsverarbeitung auf die Ressource ausgeführt (Schritt 2704).
  • §2.3. Ressourcenzuweisungsaufhebungsverarbeitung
  • 24 ist ein Flussdiagramm zum Erläutern einer Ressourcenzuweisungsaufhebungsverarbeitung.
  • Ähnlich der Ressourcenzugriffsverarbeitung (Schritt 2202 in 18) werden bei der Ressourcenzuweisungsaufhebungsverarbeitung (Schritt 2203 in 18) die ersten 32 Bits der als Argument des von der Benutzeranwendung ausgegebenen Systemaufrufs empfangenen Kennung extrahiert, um die Ressourcenadresse zu definieren, während die letzten 32 Bits extrahiert werden, um die Erzeugungsidentifikationsinformationen S1 zu definieren (Schritt 2800). Anschließend werden die ersten 32 Bits aus der Ressource ausgelesen, um die Erzeugungsidentifikationsinformations-S2-"read_mem"-Verarbeitung zu definieren (Schritt 2801). Dann werden die vorstehend erwähnten Erzeugungsidentifikationsinformationen S1 und S2 miteinander verglichen (Schritt 2802). Wenn die Vergleichsergebnisse nicht übereinstimmen, wird die Ressourcenzuweisung nicht aufgehoben, und es wird eine entsprechende Fehlermeldung zurückgegeben (Schritt 2803). Wenn die vorstehend erwähnten Vergleichsergebnisse andererseits übereinstimmen, wird die Ressourcenzuweisungsaufhebungsverarbeitung ausgeführt (Schritt 2804).
  • Durch die vorstehend beschriebenen Verfahren können die nachstehend erwähnten vorteilhaften Wirkungen erhalten werden.
    • (1) Wie anhand der Beschreibung in Bezug auf die Ressourcenzugriffsverarbeitung (§2.2.) offensichtlich ist, ist die Adresse zum Zugreifen auf die Ressource in der Kennung enthalten, die das Argument des von der Benutzeranwendung an das Betriebssystem ausgegebenen Systemaufrufs ist. Demgemäß ist es möglich, durch die Verwendung der Kennung an Stelle der Hash-Funktion für die Übersetzung zwischen der Kennung und der Adresse auf die Ressource zuzugreifen. Folglich kann der Zusatzaufwand bei der Verwendung der Hash-Funktion verringert werden.
    • (2) Es sei angenommen, dass ein Prozess A und ein Prozess B eine Ressource gemeinsam verwenden und dass der Prozess A einen Systemaufruf zum Aufheben der Zuweisung der Ressource X ausgegeben hat. In diesem Fall sucht beim herkömmlichen System das Betriebssystem die in den Ressourcenverwaltungsdaten enthaltenen Kennungen, indem es den Zeigern, beginnend bei dem durch die Verwendung der Hash-Funktion abgeleiteten Index, folgt, um dadurch die Adresse der Ressource, deren Zuweisung aufzuheben ist, zu bestimmen. Ferner werden andere Prozesse gesucht, die die Ressource X gemeinsam verwenden, um alle gefundenen Prozessverwaltungsdaten freizugeben und eine Nachricht auszugeben, die angibt, dass die Ressource X ungültig ist. In der Zwischenzeit unterbindet oder verhindert das Betriebssystem alle Zugriffe von den Benutzeranwendungen auf die gemeinsame Ressource.
  • Dagegen kann gemäß den Verfahren der Erfindung die Adresse der Ressource erhalten werden, um die Ressource zu entsperren, ohne dass es notwendig wäre, den Zeigern zu folgen, um die Adresse der Ressource zu erhalten, weil die Adresse bereits in der Kennung der Ressource X enthalten ist, deren Zuweisung aufzuheben ist. Zusätzlich ist anhand der vorhergehenden Beschreibung in Bezug auf die Ressourcenzuweisungsaufhebungsverarbeitung (§2.3.) verständlich, dass das Betriebssystem das Ressourcenzugriffsrecht auf der Grundlage nur des Ergebnisses des Vergleichs zwischen den Erzeugungsidentifikationsinformationen S1, die in der der Ressource X zugewiesenen Kennung enthalten sind, und den Erzeugungsidentifikationsinformationen S2, die in den ersten Bits der Ressource X enthalten sind, steuert oder verwaltet. Demgemäß besteht die dem Betriebssystem auferlegte Aufgabe nur in der Aufhebung der Zuweisung der Ressource X.
  • Auf diese Weise kann die Dauer des Zustands, in dem der Zugriff auf die Ressource verhindert ist und der zwischen den aufeinander folgenden Prozessabschlussverarbeitungen auftritt, nur auf die Zeit verringert werden, die an der Aufhebung der Zuweisung der Ressource X beteiligt ist.
    • (3) In Zusammenhang mit der vorstehend beschriebenen Ressourcenzuweisungsaufhebungsverarbeitung wird wiederum angenommen, dass ein Prozess C eine Ressource Y erzeugt und der erzeugten Ressource Y die Adresse zuweist, die der Ressource X in dem Zustand zugewiesen wurde, in dem die Ressource X nicht zugewiesen oder freigegeben ist. In diesem Zustand gibt das Betriebssystem an den Prozess B keine Informationen und keine Nachricht aus, wodurch angegeben wird, dass die Zuweisung der Ressource X aufgehoben wurde. Folglich kann eine Situation auftreten, in der der Prozess B versucht, auf der Grundlage der in der Kennung des Prozesses B enthaltenen Adressinformationen auf die Ressource Y zuzugreifen. Weil die Kennung jedoch nicht nur die Adressinformationen, sondern auch die Erzeugungsidentifikationsinformationen enthält und weil die Erzeugungsidentifikationsinformationen zwischen der der Ressource X zugewiesenen Kennung und der der Ressource Y zugewiesenen Kennung verschieden sind, kann der Prozess B, der versucht, auf die Ressource Y mit seiner eigenen Kennung zuzugreifen, nicht auf die Ressource Y zugreifen. Auf diese Weise kann ein illegaler Zugriff sicher unterbunden oder verhindert werden.
  • §3. Andere Ausführungsformen
  • Viele Merkmale und Vorteile der vorliegenden Erfindung sind anhand der detaillierten Beschreibung offensichtlich. Weil zahlreiche Modifikationen und Kombinationen Fachleuten leicht einfallen werden, soll die Erfindung nicht auf die erläuterte und beschriebene Konstruktion und Arbeitsweise beschränkt sein. Modifikationen der vorstehend beschriebenen Ausführungsformen werden nachstehend erwähnt.
  • §3.1. System, das einen Systemtakt verwendet
  • Beim Hochfahren des Systems wird ein 32-Bit-Systemtakt erzeugt, um die verstrichene Zeit auf einer 10-μs-Basis festzuhalten.
  • Wenn eine Ressource erzeugt wird, wird der Wert des Systemtakts als die Erzeugungsidentifikationsinformationen abgerufen, die dann an einer ersten Adresse der Ressource gespeichert werden. Eine Kennung mit 64 Bits wird erzeugt, welche aus 32 MSBs (höherwertigen Bits), die der Adresse der Ressource entsprechen, und 32 LSBs (niederwertigen Bits), die den Erzeugungsidentifikationsinformationen entsprechen, bestehen.
  • Um auf die Ressource zuzugreifen, werden die Erzeugungsidentifikationsinformationen aus der als Argument des Systemaufrufs von der Benutzeranwendung zum Betriebssystem übertragenen Kennung extrahiert, woraufhin die extrahierten Erzeugungsidentifikationsinformationen mit den an der ersten oder Anfangsadresse der Ressource gespeicherten Erzeugungsidentifikationsinformationen verglichen werden. Wenn diese Vergleichsergebnisse übereinstimmen, wird der Zugriff auf die Ressource ermöglicht, d. h. zugelassen. Wenn der Vergleich dagegen eine Diskrepanz zeigt, wird der Zugriff auf die Ressource verhindert oder unterbunden, wobei eine Fehlermeldung zurückgegeben wird.
  • §3.2. System, das einen Zähler verwendet
  • Wenn das System aktiviert wird, wird ein einziger 32-Bit-Zähler in dem System erzeugt, um die Häufigkeit zu zählen, mit der Ressourcen erzeugt werden, und es wird ein Anfangswert "0" als Erzeugungsidentifikationsinformationen in den Zähler eingegeben.
  • Nach der Erzeugung einer Ressource werden die vorstehend erwähnten Erzeugungsidentifikationsinformationen um eins inkrementiert und an der Anfangsadresse oder ersten Adresse der Ressource gespeichert. Anschließend wird eine 64-Bit-Kennung erzeugt, die der Adresse der Ressource entsprechende höherwertige 32 Bits und den Erzeugungsidentifikationsinformationen entsprechende niederwertige 32 Bits aufweist.
  • Zum Zugriff auf die Ressource wird die Ressourcenzugriffsverarbeitung unter Verwendung der vorstehend erwähnten Kennung ähnlich der in Abschnitt §3.1. beschriebenen Verarbeitung ausgeführt.
  • Ferner ermöglichen die vorstehend mit Bezug auf die 17A bis 23 beschriebenen Ressourcenzugriffsverfahren das Strukturieren eines sicheren Systems, das den ungültigen Zugriff auf die gemeinsame Ressource unterbindet oder verhindert, indem es das Zugriffsverfahren auf die in 7 dargestellten Verarbeitungsschritte 1302 und 1306 anwendet. Dieses Verfahren zum Zugriff auf eine gemeinsame Ressource wird nachstehend beschrieben.
  • Für die Zuweisung der gemeinsamen Ressource wird die in 19 dargestellte Verarbeitung ausgeführt, um die Zuweisung der gemeinsamen Ressource zu bewirken. Zu dieser Zeit wird die der gemeinsamen Ressource zugewiesene Kennung festgehalten, um die Gültigkeit der gemeinsamen Ressource unter Verwendung dieser Kennung nach dem Zugriff auf die gemeinsame Ressource zu prüfen.
  • Als nächstes wird ein Verfahren zum Zugriff auf eine gemeinsame Ressource beschrieben.
  • Wenn die in 7 dargestellten Verarbeitungen 1302 und 1306 ausgeführt werden, um die Verarbeitung zum Zugriff auf die gemeinsame Ressource auszuführen, wird die in 23 dargestellte Verarbeitung zum Setzen des Zugriffs auf die gemeinsame Ressource ausgeführt. Zuerst werden, bevor auf die gemeinsame Ressource zugegriffen wird, die in der Kennung gespeicherten Erzeugungsidentifikationsinformationen (602 in 17A) mit den Erzeugungsidentifikationsinformationen (609 in 17A) der gemeinsamen Ressource verglichen (Schritt 2702 in 23).
  • Wenn eine Übereinstimmung zwischen beiden Erzeugungsidentifikationsinformationen festgestellt wird, wird entschieden, dass die Kennung der gemeinsamen Ressource gültig ist, d. h. dass die in der Kennung enthaltene Ressourcenadresse (601 in 17A) gültig ist. Dementsprechend wird auf die gemeinsame Ressource unter Verwendung der Ressourcenadresse zugegriffen, um die Verarbeitung für die gemeinsame Ressource auszuführen.
  • Wenn dagegen eine Diskrepanz zwischen den beiden vorstehend erwähnten Erzeugungsidentifikationsinformationen gefunden wird, bedeutet dies, dass die Kennung der gemeinsamen Ressource ungültig ist. Insbesondere bedeutet dies, beispielsweise unter der Annahme, dass eine Diskrepanz der Erzeugungsidentifikationsinformationen in dem in 7 dargestellten Verarbeitungsschritt 1306 auftritt, dass die Zuweisung der gemeinsamen Ressource aus irgendeinem Grund während des Präemptionsermöglichungsintervalls zwischen der Aufhebung des Präemptionsverhinderungszustands (Schritt 1303 in 7) anschließend an den Abschluss der in 7 dargestellten Verarbeitung 1302 und der nächsten Präemptionsverhinderung (Schritt 1305 in 7) aufgehoben wird. Demgemäß ist die in der Kennung enthaltene Adresse der Ressource (gemeinsamen Ressource) ungültig. Folglich wird der Zugriff auf die gemeinsame Ressource unterbunden und eine Fehlerverarbeitung (Schritt 2703 in 23) ausgeführt. Bei der Fehlerverarbeitung kann die Präemptionsverhinderung oder -unterbindung und/oder die Abbruchverhinderung nach Bedarf gelöscht werden.
  • Infolge des vorstehend beschriebenen Verarbeitungsverfahrens kann die außerhalb des Präemptionsverhinderungsintervalls ausgeführte Aufhebung der Zuweisung der gemeinsamen Ressource erfasst werden. Abgesehen davon kann der Zugriff auf die ungültige Ressource, der einhergehend mit der vorstehend erwähnten Aufhebung der Zuweisung der gemeinsamen Ressource auftreten kann, verhindert werden, wodurch die Ressource vor einer Zerstörung geschützt wird. Auf diese Weise ist es möglich, ein System zu strukturieren, das in der Lage ist, die gemeinsame Ressource selbst dann mit erhöhter Sicherheit zu verarbeiten, wenn das Präemptionsermöglichungsintervall im Intervall oder Abschnitt zur Verarbeitung der gemeinsamen Ressource festgelegt ist.
  • Wie nun anhand der vorstehenden Beschreibung verständlich sein wird, kann gemäß den hier dargelegten Lehren der Erfindung der Zusatzaufwand bei der Übersetzung zwischen der Adresse und der Kennung sowie bei der Suche zum Prüfen des Vorhandenseins/Nichtvorhandenseins des Zugriffsrechts verringert werden, wobei die Zugriffsleistung entsprechend erhöht wird. Abgesehen davon kann das Intervall oder der Abschnitt, in dem der Zugriff auf die Ressource nach Abschluss des Prozesses verhindert ist, verkürzt werden. Zusätzlich kann die Ressource vor einer Zerstörung infolge eines unzulässigen Zugriffs auf die Ressource von einem Prozess, der kein Zugriffsrecht auf die Ressource hat, geschützt werden.

Claims (2)

  1. Computerbetriebenes Verfahren zum Ausführen eines gegebenen einer Vielzahl an Prozessen (200, 210 bis 212), während eine gemeinsame Ressource (608) verwendet wird, auf die die Prozesse zugreifen, wobei das Verfahren die folgenden Schritte in dieser Reihenfolge aufweist: a) Verhindern eines Abbruchs (1300) des gegebenen einen Prozesses, indem er in einen abbruchsverhindernden Zustand gesetzt wird, b) Verhindern einer Präemption (1301) des gegebenen einen Prozesses, indem er in einen präemptionsverhindernden Zustand gesetzt wird, c) Bearbeiten (1302) der gemeinsamen Ressource durch den gegebenen einen Prozess, d) Entlassen (1303) des gegebenen einen Prozesses aus dem präemptionsverhindernden Zustand, um seine Präemption freizugeben, e) Verhindern einer Präemption (1305) des gegebenen einen Prozesses, indem er in den präemptionsverhindernden Zustand gesetzt wird, und weiteres Bearbeiten (1306) der gemeinsamen Ressource, f) Entlassen (1307) des gegebenen einen Prozesses aus dem präemptionsverhindernden Zustand, um seine Präemption freizugeben, g) Entlassen (1308) des gegebenen einen Prozesses aus dem abbruchsverhindernden Zustand, um seinen Abbruch freizugeben, und h) Ausführen einer erzwungenen Beendigung des gegebenen einen Prozesses entsprechend einer Anforderung, die in der Zeitspanne gegeben wurde, in der jener sich im abbruchsverhindernden Zustand befand.
  2. Verfahren nach Anspruch 1, wobei zur Registrierung von Anforderungen zur Verwendung der gemeinsamen Ressource (608), die von den Prozessen (200, 210 bis 212) abgegeben werden, eine erste Warteschlange (400) vorgesehen ist, zur Entgegennahme einer Bearbeitungsanforderung für die gemeinsame Ressource aus der ersten Warteschlange (400) und zum Ausführen der Bearbeitung der gemeinsamen Ressource entsprechend der entgegengenommenen Anforderung ein Serialisierungsprozess (220) vorgesehen ist, zum Registrieren von Nachrichten aus dem Serialisierungsprozess (220) an denjenigen Prozess (200, 210 bis 212), der die vom Serialisierungsprozess entgegengenommene Anforderung abgegeben hat, eine zweite Warteschlange (410 bis 412) vorgesehen ist, wobei die Nachrichten ein Beenden der Bearbeitung der gemeinsamen Ressource angeben, und die Prozesse in einer Multiprozess-Umgebung periodisch angesteuert werden, während keine Verarbeitung zum Reservieren der gemeinsamen Ressource ausgeführt wird.
DE69738646T 1996-08-28 1997-08-20 Verfahren zur Ausführung eines Prozesses und Betriebsmittelzugriffsverfahren in einem Computer-System Expired - Lifetime DE69738646T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP22640496A JP3724075B2 (ja) 1996-08-28 1996-08-28 プロセスの実行方法
JP22640496 1996-08-28
JP8326499A JPH10171669A (ja) 1996-12-06 1996-12-06 計算機資源アクセス方法
JP32649996 1996-12-06

Publications (2)

Publication Number Publication Date
DE69738646D1 DE69738646D1 (de) 2008-06-05
DE69738646T2 true DE69738646T2 (de) 2008-11-13

Family

ID=26527153

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69738646T Expired - Lifetime DE69738646T2 (de) 1996-08-28 1997-08-20 Verfahren zur Ausführung eines Prozesses und Betriebsmittelzugriffsverfahren in einem Computer-System

Country Status (4)

Country Link
US (2) US6253225B1 (de)
EP (1) EP0834806B1 (de)
CA (1) CA2213371C (de)
DE (1) DE69738646T2 (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19835177A1 (de) * 1998-08-04 2000-02-10 Alcatel Sa Verfahren, Module und Vermittlungsstelle zum Kennzeichnen von Prozessen sowie von deren Daten und Betriebsmitteln
US7143421B2 (en) * 1998-09-09 2006-11-28 Microsoft Corporation Highly componentized system architecture with a demand-loading namespace and programming model
US7409694B2 (en) * 1998-09-09 2008-08-05 Microsoft Corporation Highly componentized system architecture with loadable virtual memory manager
US8434099B2 (en) 1998-09-09 2013-04-30 Microsoft Corporation Efficient linking and loading for late binding and platform retargeting
US6952827B1 (en) * 1998-11-13 2005-10-04 Cray Inc. User program and operating system interface in a multithreaded environment
EP1037147A1 (de) * 1999-03-15 2000-09-20 BRITISH TELECOMMUNICATIONS public limited company Planung von Betriebsmitteln
US6587904B1 (en) * 1999-11-05 2003-07-01 Apple Computer, Inc. Method and apparatus for preventing loops in a full-duplex bus
US6789132B2 (en) * 2000-02-09 2004-09-07 Seagate Technology Llc Modular disc drive architecture
EP1311943A2 (de) * 2000-03-31 2003-05-21 BRITISH TELECOMMUNICATIONS public limited company Verfahren und werkzeug zur betriebsmittelbildung
EP1215577B1 (de) * 2000-08-21 2012-02-22 Texas Instruments Incorporated Auf ID Aufgaben basierende Fehlerverwaltung und -beseitigung
US7225219B2 (en) * 2000-11-29 2007-05-29 Broadspider Networks, Inc. Distributed caching architecture for computer networks
US7603448B2 (en) 2000-12-15 2009-10-13 Wind River Systems, Inc. System and method for managing client processes
US7191443B2 (en) * 2001-01-25 2007-03-13 Matsushita Electric Industrial Co., Ltd. Digital device, task management method and program therefor
US20020133530A1 (en) * 2001-03-15 2002-09-19 Maarten Koning Method for resource control including resource stealing
US6966062B2 (en) * 2001-04-20 2005-11-15 International Business Machines Corporation Method and apparatus for allocating use of an access device between host and guest operating systems
US7523203B1 (en) * 2001-05-07 2009-04-21 Cisco Technology, Inc. Shared distribution media resources in a communication network
US6966033B1 (en) * 2001-09-28 2005-11-15 Emc Corporation Methods and apparatus for graphically managing resources
GB2387931A (en) * 2002-04-25 2003-10-29 Livedevices Ltd Reduced-overhead context-saving in static priority scheduled operating systems
US7448036B2 (en) 2002-05-02 2008-11-04 International Business Machines Corporation System and method for thread scheduling with weak preemption policy
WO2004001597A2 (en) * 2002-06-20 2003-12-31 Matsushita Electric Industrial Co., Ltd. Multitask control device and music data reproduction device
US8275910B1 (en) 2003-07-02 2012-09-25 Apple Inc. Source packet bridge
US20050102675A1 (en) * 2003-11-10 2005-05-12 Parkyn Nicholas D. Method for managing execution of a process based on available services
GB2408361B (en) * 2003-11-21 2007-07-25 Symbian Ltd Allocation of resources in a computing device
US7237135B1 (en) * 2003-12-29 2007-06-26 Apple Inc. Cyclemaster synchronization in a distributed bridge
GB0407150D0 (en) * 2004-03-30 2004-05-05 British Telecomm Distributed computer
US7707585B2 (en) * 2004-11-05 2010-04-27 International Business Machines Corporation Method, system, and program product for monitoring message flow in a message queuing system
US7393278B2 (en) * 2005-01-14 2008-07-01 Id Interactive, Llc Slot machine game that allows player to purchase reel re-spins
US7752367B2 (en) * 2005-12-22 2010-07-06 International Business Machines Corporation File-based access control for shared hardware devices
JP4874165B2 (ja) * 2006-07-07 2012-02-15 ルネサスエレクトロニクス株式会社 マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法
US7895185B2 (en) * 2006-09-28 2011-02-22 International Business Machines Corporation Row-identifier list processing management
US9165419B2 (en) * 2006-10-23 2015-10-20 Etasse Limited Slot machine bonus game providing awards for manual dexterity
US8702493B2 (en) * 2007-11-09 2014-04-22 Etasse Limited Slot machine game with award based on another machine
US8141084B2 (en) * 2008-04-07 2012-03-20 International Business Machines Corporation Managing preemption in a parallel computing system
US20090286586A1 (en) * 2008-05-16 2009-11-19 Jorge Heymann Icon Selection Bonus Game with Replaceable Icons
US8296776B2 (en) * 2008-06-06 2012-10-23 Apple Inc. Efficient mechanism for terminating applications
US9520031B2 (en) * 2008-07-07 2016-12-13 Etasse Limited Slot machine game with symbol lock-in
US20100011367A1 (en) * 2008-07-11 2010-01-14 Gm Global Technology Operations, Inc. Methods and systems for allocating a resource of a vehicle among a plurality of uses for the resource
CN102301368B (zh) * 2009-02-06 2014-01-22 国际商业机器公司 用于保持数据完整性的设备
WO2011001209A1 (en) * 2009-06-29 2011-01-06 Nokia Corporation Resource allocation in a computing device
US8688880B2 (en) * 2010-06-23 2014-04-01 International Business Machines Corporation Centralized serialization of requests in a multiprocessor system
TWI472910B (zh) * 2012-04-24 2015-02-11 Wistron Neweb Corp 節省系統資源之方法及運用其方法之作業系統
US8806504B2 (en) * 2012-05-23 2014-08-12 Red Hat, Inc. Leveraging performance of resource aggressive applications
US9164793B2 (en) * 2012-12-21 2015-10-20 Microsoft Technology Licensing, Llc Prioritized lock requests to reduce blocking
EP2881858B1 (de) * 2013-12-09 2016-04-06 dSPACE digital signal processing and control engineering GmbH Verfahren zur Änderung der Software im Speicher eines elektronischen Steuergerätes
US9396044B2 (en) * 2014-04-25 2016-07-19 Sony Corporation Memory efficient thread-level speculation
US10367813B2 (en) * 2016-09-30 2019-07-30 Mcafee, Llc Distributed authentication with thresholds in IoT devices
CN115016631B (zh) * 2021-11-22 2023-07-18 荣耀终端有限公司 进程调度方法和终端设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226161A (en) * 1987-08-21 1993-07-06 Wang Laboratories, Inc. Integration of data between typed data structures by mutual direct invocation between data managers corresponding to data types
US4787083A (en) * 1987-09-30 1988-11-22 Nitsuko Limited Bus-method communication network system capable of seizing transmission right by using timer means at each station
JPH02195453A (ja) * 1989-01-25 1990-08-02 Toshiba Corp ファイルアクセス制御方式
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
US5247675A (en) * 1991-08-09 1993-09-21 International Business Machines Corporation Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system
DE69230462T2 (de) * 1991-11-19 2000-08-03 Sun Microsystems Inc Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln
US5428761A (en) * 1992-03-12 1995-06-27 Digital Equipment Corporation System for achieving atomic non-sequential multi-word operations in shared memory
US5515538A (en) * 1992-05-29 1996-05-07 Sun Microsystems, Inc. Apparatus and method for interrupt handling in a multi-threaded operating system kernel
US5553267A (en) * 1992-07-01 1996-09-03 Digital Equipment Corporation Method and apparatus for coordinating access to and modifying multiple element data objects in a shared memory
US5428525A (en) * 1992-07-01 1995-06-27 Cappelaere; Patrice G. Computer system and method for signal control prioritizing and scheduling
US5414848A (en) * 1993-04-01 1995-05-09 Intel Corporation Method and apparatus for sharing a common routine stored in a single virtual machine with other virtual machines operating in a preemptive muli-tasking computer system
US5586318A (en) * 1993-12-23 1996-12-17 Microsoft Corporation Method and system for managing ownership of a released synchronization mechanism
US5586289A (en) * 1994-04-15 1996-12-17 David Sarnoff Research Center, Inc. Method and apparatus for accessing local storage within a parallel processing computer
US5566177A (en) * 1994-10-09 1996-10-15 International Business Machines Corporation Priority-based arbitrator on a token-based communication medium
US5802590A (en) * 1994-12-13 1998-09-01 Microsoft Corporation Method and system for providing secure access to computer resources
US5925096A (en) * 1994-12-30 1999-07-20 Intel Corporation Method and apparatus for localized preemption in an otherwise synchronous, non-preemptive computing environment
US5963142A (en) * 1995-03-03 1999-10-05 Compaq Computer Corporation Security control for personal computer
JP3549608B2 (ja) * 1995-04-04 2004-08-04 富士通株式会社 識別子による階層構造データの構造判定方法および装置
US5790770A (en) * 1995-07-19 1998-08-04 Fujitsu Network Communications, Inc. Method and apparatus for reducing information loss in a communications network
US5812844A (en) * 1995-12-07 1998-09-22 Microsoft Corporation Method and system for scheduling the execution of threads using optional time-specific scheduling constraints

Also Published As

Publication number Publication date
EP0834806A2 (de) 1998-04-08
US6253225B1 (en) 2001-06-26
CA2213371A1 (en) 1998-02-28
EP0834806B1 (de) 2008-04-23
CA2213371C (en) 2003-01-28
EP0834806A3 (de) 2005-07-06
US6848102B2 (en) 2005-01-25
US20020049802A1 (en) 2002-04-25
DE69738646D1 (de) 2008-06-05

Similar Documents

Publication Publication Date Title
DE69738646T2 (de) Verfahren zur Ausführung eines Prozesses und Betriebsmittelzugriffsverfahren in einem Computer-System
DE102013022299B3 (de) Schutz globaler Register in einem Multithreaded-Prozessor
DE3689569T2 (de) Verfahren zur Systemdateiensicherung und Datenverarbeitungseinheit zu dessen Durchführung.
DE60130420T2 (de) Vorrichtung und Verfahren zur Aufrechterhaltung einer verknüpften Liste
DE3851049T2 (de) Ein Sicherheitswegmechanismus für ein Betriebssystem.
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE69107506T2 (de) Verfahren und Vorrichtung zur Gleichzeitigkeitssteuerung von gemeinsamen Datenaktualisierungen und Abfragen.
DE69029759T2 (de) Flexible Schnittstelle für Beglaubigungsdienste in einem verteilten Datenverarbeitungssystem
DE112005002402B4 (de) Hybride Hardware-/Software-Implementierung eines Transaktionsspeicherzugriffs
DE69636688T2 (de) Verfahren und Gerät zur automatischen Verwaltung von gleichzeitigem Zugriff auf gemeinsame Betriebsmittel in einer Multifaden-Programmierbetriebsumgebung
DE2755897C2 (de)
EP0519109B1 (de) Zugriffskontrolle in Rechnernetzen
DE3750938T2 (de) Multiprozessorsystem.
DE69731998T2 (de) Informationsverarbeitungsvorrichtung und Verfahren
DE69913984T2 (de) Verteiltes transaktionales verarbeitungssystem und verfahren
DE2629459C2 (de)
DE60127857T2 (de) Sicherheitsverfahren mit deterministischer echtzeit-ausführung von multitask-anwendungen des steuer- und befehlstyps mit fehlereingrenzung
DE4033336A1 (de) Verfahren zum erzeugen einer ausfallmeldung und mechanismus fuer ausfallmeldung
DE68924810T2 (de) Zeitgeberkanal für die Verwendung in einem Mehrkanal-Zeitsystem.
DE69831301T2 (de) Statusbasierte Objektübergangsteuerung und attributbasierte Verriegelung
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE68924992T2 (de) Symmetrische Steuerungsanordnung für Multiverarbeitung.
DE69931685T2 (de) Verfahren und Gerät zum Implementieren von schnellen Subclass- und Subtyp-Überprüfungen
DE2801518A1 (de) Datenverarbeitungssystem mit speicher-schutzeinrichtung
EP0799441B1 (de) Verfahren zur steuerung von technischen vorgängen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition