DE60020817T2 - Ablaufsteuerung für Betriebsmittel - Google Patents

Ablaufsteuerung für Betriebsmittel Download PDF

Info

Publication number
DE60020817T2
DE60020817T2 DE60020817T DE60020817T DE60020817T2 DE 60020817 T2 DE60020817 T2 DE 60020817T2 DE 60020817 T DE60020817 T DE 60020817T DE 60020817 T DE60020817 T DE 60020817T DE 60020817 T2 DE60020817 T2 DE 60020817T2
Authority
DE
Germany
Prior art keywords
access
resource
reservation
request
cpu
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
DE60020817T
Other languages
English (en)
Other versions
DE60020817D1 (de
Inventor
Giles Daniel Lancaster WADDINGTON
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.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
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 EP99301952A external-priority patent/EP1037146A1/de
Application filed by British Telecommunications PLC filed Critical British Telecommunications PLC
Publication of DE60020817D1 publication Critical patent/DE60020817D1/de
Application granted granted Critical
Publication of DE60020817T2 publication Critical patent/DE60020817T2/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5014Reservation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Acyclic And Carbocyclic Compounds In Medicinal Compositions (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf die Betriebsmittel-Ablaufsteuerung in einem Computer.
  • Universelle Betriebssysteme auf der Unternehmensebene, sowohl für Arbeitsplatzrechner als auch für Server, sind herkömmlich für die effiziente Verwendung der Betriebsmittel konstruiert. Die Anwendungen nutzen einen gemeinsamen Satz der Betriebsmittel gemeinsam, die anfangs entsprechend ihrer Priorität und dann in einer fair gewichteten Weise geplant werden. Die Ergebnisse dieses Zugangs sind sowohl eine effiziente als auch eine faire Verteilung der Betriebsmittel auf die Anwendungen auf der Benutzerebene. Bestimmte Anwendungen jedoch, insbesondere Multimedia-Verarbeitungsanwendungen, sind inhärent empfindlich gegen die Verfügbarkeit der Betriebsmittel. Im Ergebnis führt die Verwendung prioritätsgestützter Betriebsmittel-Verbandspolitiken oft dazu, dass derartigen Anwendungen die Erfüllung ihrer Verarbeitungsziele misslingt.
  • US 5.812.844 offenbart ein Verfahren der CPU-Ablaufsteuerung unter Verwendung der Ablaufsteuerung, bei der der früheste Termin zuerst geplant wird, für die Teilprozesse. Es gibt jedoch keine Idee der Betriebsmittelzulassung in dieser Erfindung, wobei deshalb die Garantien nur nach bestem Bemühen (Best Effort) sind, wobei die Ablaufsteuerung nur auf einer einzelnen Ebene, basierend auf Teilprozessen erfolgt. Die von der Prozesspriorität und/oder Dringlichkeit abhängige Ablaufsteuerung ist nicht enthalten. EP-A-O 789 638 offenbart einen weiteren Zugang zur CPU-Ablaufsteuerung, in dem eine Anzahl von Prozessen als eine Gruppe vorhanden ist. Die Gruppe wird dann wieder 'geplant', indem ihre Priorität vergrößert wird, obwohl die Ablaufsteuerung nicht garantieren kann, dass ein Prozess innerhalb einer Gruppe geplant wird.
  • Üblicherweise ist für den Prozess der Ablaufsteuerung in der Stufe, in der dem Prozess der Zugriff auf ein Betriebsmittel gewährt wird, eine relativ komplexe Verarbeitung erforderlich. Die vorliegende Erfindung ermöglicht eine Verringerung der Komplexität der Verarbeitung in der Stufe der Gewährung des Zugriffs, indem sie für eine Reservierung der Betriebsmittel im Voraus sorgt.
  • Gemäß der vorliegenden Erfindung wird ein Verfahren für das Management der Betriebsmittelverwendung in einem Computer geschaffen, wie es im Anspruch 1 dargelegt ist. Das Verfahren umfasst die folgenden Schritte: Ausführen eines ersten Prozesses, um eine Reservierung für den Zugriff auf ein Betriebsmittel in Abhängigkeit von einer Betriebsmittelanforderungskommunikation von einem Anwendungsprozess vorzunehmen; Ausführen eines zweiten Prozesses, um Anforderungen für einen Zugriff auf das Betriebsmittel von dem Anwendungsprozess in Abhängigkeit von der Reservierung zu gewähren; Erzeugen eines Ablaufsteuerungsmittels, das ein oder mehrere Verfahren besitzt, um Reservierungsanforderungen für mehrere verschiedene Betriebsmittel zu verarbeiten, und eine betriebsmittelspezifische Reservierungsverarbeitung beginnt; Erzeugen eines Reservierungsmittels, das ein oder mehrere Verfahren besitzt, um Reservierungen für den Zugriff auf ein Betriebsmittel vorzunehmen; wobei der Anwendungsprozess ein Verfahren des Ablaufsteuerungsmittels aufruft, wobei das Verfahren eine erste Betriebsmittelzugriffsanforderungsdefinition als einen Parameter verwendet; wobei das Verfahren des Ablaufsteuerungsmittels ein Reservierungsverfahren des Reservierungsmittels aufruft, um eine Reservierung für den Anwendungsprozess vorzunehmen, wobei das Reservierungsverfahren eine zweite Betriebsmittelzugriffsanforderungsdefinition als einen Parame ter verwendet; Ausführen eines betriebsmittelspezifischen Ablaufsteuerungsprozesses, um den Zugriff auf ein Betriebsmittel in Abhängigkeit von der durch das Reservierungsmittel vorgenommenen Reservierung zu gewähren; und Verwenden des Betriebsmittels für die Zwecke des Anwendungsprozesses. Die Reservierungsanforderung kann durch eine Anwendung per se oder durch einen Unterprozess oder eine Komponente von ihr ausgeführt werden. Außerdem kann der Zugriff auf irgendeinen Prozess einer Anwendung oder für eine spezielle Untereinheit der Anwendung gewährt werden, für die die Reservierungsanforderung vorgenommen worden ist.
  • Das Vornehmen von Reservierungen und das Gewähren von Zugriff auf Anwendungsebene unterstützt die Ausführungsformen der vorliegenden Erfindung, die vorgesehen ist, um mit Vermächtnis-Code zu arbeiten. Wo jedoch alle Anwendungen für ein Betriebssystem geschrieben sind, das ein Ablaufsteuerungsverfahren gemäß der vorliegenden Erfindung verwendet, sind eine Reservierung und Zugriffsgewährung auf Komponenten- oder Teilprozess-Ebene bevorzugt.
  • Vorzugsweise übersetzt das Verfahren des Ablaufsteuerungsmittels die erste Betriebsmittelanforderungsdefinition in eine zweite Betriebsmittelanforderungsdefinition. Der Vorteil dessen ist, dass die Betriebsmittelanforderung durch einen Programmierer in einer von der Hardware unabhängigen Weise definiert werden kann, und dass das Ablaufsteuerungs-Objekt für eine spezielle Plattform diese vom Programmierer erzeugte Betriebsmittelanforderung in einer potentiell nichtlinearen Weise auf der Grundlage der Eigenschaften der speziellen Plattform übersetzen kann.
  • Ein Verfahren gemäß der vorliegenden Erfindung kann auf die Zu weisung von CPU-Zeit, den Zugriff auf Massenspeichervorrichtungen, z. B. Festplattenlaufwerke, optische Plattenlaufwerke und dergleichen, und das Speichermanagement angewendet werden.
  • Vorzugsweise umfasst in dem Fall des Zugriffs auf einen Massenspeicher der erste Prozess des Zuweisen einer oder mehrerer "Lotterielos"-Nummern für diese Anwendung oder einen Prozess von ihr in Abhängigkeit von der zweiten Betriebsmittelzugriffsanforderungsdefinition und das Speichern der Anforderung für den Zugriff auf eine Massenspeichervorrichtung von den Anwendungsprozessen; das Erzeugen einer im Wesentlichen zufälligen Lotterielosnummer; und, falls der Lotterielosnummer kein Anwendungsprozess zugewiesen worden ist, Weiterleiten der gespeicherten Anforderung zu einem Massenspeichervorrichtungs-Ansteuerungsprozess für den Zugriff von einem Anwendungsprozess, der anhand eines vorgegebenen Prioritätensetzungskriteriums ausgewählt wird, und andernfalls Weiterleiten einer gespeicherten Anforderung für den Zugriff von einem Anwendungsprozess, dem die Lotterielosnummer zugewiesen wurde, zu einem Massenspeichervorrichtungs-Treiberprozess.
  • Die Mehrheit der Mehrprozessbetriebs-Betriebssysteme, einschließlich Windows NT, Unix und Linux, verwenden einen als Round-Robin bekannten Ablaufsteuerungsalgorithmus. Am Ende eines Zeitschlitzes oder wenn ein Teilprozess seine Zeitscheibe aufgehoben hat, startet der Abwickler den ersten Teilprozess, der in der Warteschlange mit der höchsten Priorität wartet (einige Warteschlangen sind leer). Es werden zusätzliche Techniken verwendet, um das Verhungern zu verhindern, indem die Priorität lang wartender Teilprozesse dynamisch vergrößert wird.
  • Es wird außerdem ein Verfahren für die Ablaufsteuerung des Zugriffs auf eine CPU geschaffen, das in einem Verfahren für das Management der Betriebsmittelverwendung in einem Computer gemäß der vorliegenden Erfindung implementiert sein kann, wobei das Verfahren die folgenden Schritte umfasst: Erzeugen eines eindimensionales Reservierungsanforderungsmusters; Mischen des Reservierungsanforderungsmusters mit einem eindimensionalen CPU-Zugriffssteuerungsmuster, das leere CPU-Zugriffszeitschlitze sowie reservierte CPU-Zugriffszeitschlitze repräsentiert, ohne das Reservierungsanforderungsmuster oder die reservierten CPU-Zeitgriffsschlitze in dem Reservierungsanforderungsmuster wesentlich zu stören.
  • Das Reservierungsanforderungsmuster kann kürzer als das CPU-Zugriffssteuerungsmuster sein, wobei in diesem Fall das Reservierungsanforderungsmuster effektiv durch die Wiederholung des Mischprozesses erweitert wird. Vorzugsweise umfasst der Mischungsschritt das Verschieben eines nicht leeren Zeitschlitzelements des Reservierungsanforderungsmusters oder des CPU-Zugriffssteuerungsmusters in der Weise, dass die Muster gemischt werden können, ohne dass irgendeines der reservierten CPU-Zugriffszeitschlitz-Elemente gelöscht oder überschrieben wird. Noch bevorzugter wird das verschobene, nicht leere Zeitschlitzelement um einen Betrag verschoben, der in dem Zeitschlitzelement definiert ist. In jedem Element können sowohl Vorwärts- als auch Rückwärts-Verschiebungen oder Verschiebungsgrenzen enthalten sein.
  • Es wird ein Verfahren für das Gewähren des Zugriffs auf eine CPU geschaffen, das in einem Verfahren für das Management der Betriebsmittelverwendung in einem Computer gemäß der vorliegenden Erfindung implementiert sein kann, wobei das Verfahren umfasst: Erzeugen eines eindimensionalen CPU-Zugriffssteuerungsmusters, bei dem jedes Element mit einer Menge der CPU-Zugriffszeit in Beziehung steht; und am Ende eines Betrags der CPU-Zugriffszeit:
    Gewähren eines Zugriffs auf irgendeinen der anstehenden Prozesse, der eine Priorität hat, die größer als ein vorgegebener Pegel ist; und dann, falls das nächste Musterelement leer ist, Gewähren des Zugriffs auf einen anstehenden Prozess, der ein vorgegebenes Prioritätensetzungskriterium (z. B. Round-Robin-Kriterium) erfüllt, andernfalls Gewähren des Zugriffs auf einen Prozess, der in dem Musterelement identifiziert wird.
  • Vorzugsweise wird nach einem Eintrag für den Prozess in irgendeiner von mehreren Warteschlangen mit verschiedener Priorität gesucht, wobei der Zugriff in Bezug auf den Eintrag für den Prozess mit der höchsten Priorität gewährt wird. Alternativ wird der Zugriff auf den in dem Musterelement identifizierten Prozess gewährt, wenn keine belegte Prozesswarteschlange vorhanden ist, deren Priorität höher als jene der Warteschlange ist, in der der Prozess vorhanden ist. Vorzugsweise wird ein eindimensionales CPU-Zugriffssteuerungsmuster durch ein Verfahren für die Ablaufsteuerung des Zugriffs auf eine CPU gemäß der vorliegenden Erfindung erzeugt.
  • Nun werden Ausführungsformen der vorliegenden Erfindung beispielhaft unter Bezugnahme auf die beigefügte Zeichnung beschrieben, worin:
  • 1 ein Blockschaltplan eines universellen Computers ist;
  • 2 ein Blockschaltplan der Software-Komponenten ist, die in einem Computer verkörpert sind, der die Betriebsmittel-Ablaufsteue rung gemäß der vorliegenden Erfindung verwendet;
  • 3 einen Teil eines Verfahrens für die Reservierung von CPU-Zeit gemäß der vorliegenden Erfindung veranschaulicht;
  • 4 ein Ablaufplan ist, der den Betrieb der sekundären Ablaufsteuerung der CPU nach 2 veranschaulicht; und
  • 5 ein Ablaufplan ist, der eine alternative Weise des Betriebs der CPU-Ablaufsteuerung nach 2 veranschaulicht.
  • In 1 umfasst ein universeller Computer eine CPU 1, einen RAM 2, einen ROM 3, eine Videoschnittstellenkarte 4, einen Festplattenlaufwerks-Controller 5, eine Tastaturschnittstelle 6 und eine Mausschnittstelle 7, die alle durch einen kombinierten Daten- und Adressenbus 8 miteinander verbunden sind. Ein Videomonitor 9 ist mit dem Ausgang der Videoschnittstellenkarte 4 verbunden. Ein Festplattenlaufwerk 10 ist mit dem Festplattenlaufwerks-Controller 5 verbunden. Eine Tastatur 11 ist mit dem Eingang der Tastaturschnittstelle 6 verbunden, während eine Maus 12 mit dem Eingang der Mausschnittstelle 7 verbunden ist.
  • Der universelle Computer arbeitet unter der Steuerung eines Mehrprozessbetriebs-Betriebssystems. Das Betriebssystem kann ein bekanntes Betriebssystem, wie z. B. Windows NT, Unix oder Linux, aber mit modifizierter Betriebsmittel-Ablaufsteuerung, damit sie arbeitet, wie im Folgenden beschrieben wird, sein.
  • Um die gemeinsame Benutzung der Betriebsmittel bereitzustellen, umfasst in 2 das Betriebssystem eine Abwicklerkomponente 11, eine primäre Ablaufsteuerungs-Komponente 12, eine CPU-Reservierungskomponente 13, eine Festplattenlaufwerks-Reservierungskomponente 14, eine Speicherreservierungskomponente 15, eine sekundäre CPU-Ablaufsteuerung 16, eine sekundäre Festplattenlaufwerks-Ablaufsteuerung 17 und einen Speicherausgleichsmanager 19.
  • Die Abwicklerkomponente 11 hält Warteschlangen von Teilprozessen aufrecht, die die Bearbeitung durch die CPU 1 erwarten. Ein Teilprozess kann einen Prioritätswert zwischen 0 und 31 besitzen, wobei 31 die höchste Priorität ist, wobei die Abwicklerkomponente 11 für jede Priorität eine separate Warteschlange aufrechterhält. Folglich befinden sich alle Teilprozesse mit der Priorität 0 in einer Warteschlange, befinden sich alle Teilprozesse mit der Priorität 1 in einer weiteren Warteschlange usw. Innerhalb jeder Warteschlange werden neue Teilprozesse zum Ende der Warteschlange hinzugefügt, die nach einem FIFO-Prinzip arbeitet.
  • Die sekundäre CPU-Ablaufsteuerung 16 ist dafür verantwortlich, den Teilprozessen in einer Weise, die im Folgenden ausführlicher beschrieben wird, Zugriff auf die CPU 1 zu gewähren. Die sekundäre Festplattenlaufwerks-Ablaufsteuerung 17 führt eine Lotterie aus, um den Zugriff auf das Festplattenlaufwerk 10 zu bestimmen.
  • Die primäre Ablaufsteuerung 12 übersetzt die abstrakten Betriebsmittelreservierungsanforderungen auf hoher Ebene, die durch die oder zugunsten der Anwendungskomponenten 22 ausgeführt werden, in eine Form, die für die Verwendung durch die Reservierungskomponenten 13, 14, 15 geeignet ist. Die Reservierungskomponenten 13, 14, 15 versuchen, die angeforderten Betriebsmittel zu reservieren.
  • Eine garantierte Dienstanwendung 21 für die Verwendung mit der vorliegenden Ausführungsform setzt sich aus mehreren Komponenten 22 zusammen, die eine Instanz bilden, wie es notwendig ist. Jede Komponente 22 umfasst wenigstens einen Teilprozess 23. Der Konstrukteur 24 jeder Komponente 22 enthält eine Prozedur, die die CPU-, Festplattenlaufwerks- und Speicherreservierungsverfahren der primären Ablaufsteuerung 12 aufruft. Die Komponente 22 gibt ihr Niveau des Bedarfs an einem Betriebsmittel durch das Weiterleiten der Prozess-ID der Anwendung (die für die Anwendung 21 eindeutig ist) und einer Angabe der erforderlichen Menge des Betriebsmittels als Parameter, wenn die Reservierungsverfahren aufgerufen werden, und optional einer Dauer für die Reservierung an. Alternativ kann die Anwendung 21 selbst oder eine Management-Entität eine Reservierung zugunsten der garantierten Dienstanwendung 21 vornehmen. Eine Best-Effort-Dienstanwendung 25 setzt sich aus mehreren Komponenten 26 zusammen, die eine Instanz bilden, wie es notwendig ist. Die Komponenten 26 der Best-Effort-Dienstanwendung führen keine Betriebsmittelreservierungen aus oder besitzen keine für sie vorgenommenen Reservierungen.
  • Es wird nun der Fall eine Anforderung für CPU-Zeit betrachtet, wobei, wenn das CPU-Reservierungsverfahren der primären Ablaufsteuerung 12 durch den Konstrukteur 24 einer Anwendungskomponente aufgerufen wird, das CPU-Reservierungsverfahren einen Prozentsatz der Betriebsmittelzeit, der als ein Reservierungsparameter empfangen wird, in eine Komponenten-"Signatur" abbildet. Die Komponentensignatur umfasst eine eindimensionale Anordnung aus bis zu 256 Elementen, wobei jedes Element ein Datensatz ist, der Felder für die Prozess-ID der Anwendung für die Komponente 22, eine Reservierungs-ID, die Vorwärtsflexibilität und die Rückwärtsfle xibilität umfasst. Anfangs sind die Felder der Elemente der Anordnung leer. Die Felder der ausgewählten Elemente der Anordnung werden dann unter Verwendung der Parameter des durch die Komponente 22 ausgeführten Aufrufs gefüllt. Falls z. B. der Wert des Prozentsatzes im Aufruf 10 % beträgt, wird jedes zehnte Element der Anordnung gefüllt, während jedes fünfte Element der Anordnung gefüllt wird, wenn der Wert des Prozentsatzes 20 % beträgt. Diese Abbildung zielt im Allgemeinen darauf, die am feinsten granulierte mögliche Reservierungssignatur zu erreichen.
  • Sobald die Komponentensignatur vervollständigt worden ist, wird auf Anforderung durch die primäre Ablaufsteuerung 12 eine Instanz der CPU-Reservierungskomponente 13 gebildet. Wenn eine Instanz der CPU-Reservierungskomponente 13 gebildet wird, leitet die primäre Ablaufsteuerung 12 die Komponentensignatur, die Anwendungs- und die Reservierungs-IDs und irgendeine Dauer über einen Verfahrensaufruf zur CPU-Reservierungskomponente 13 weiter.
  • Die CPU-Reservierungskomponente 13 versucht dann, die Komponentensignatur in eine Kopie 31 einer Master-Signatur 32 zu mischen. Die Komponentensignatur wird kopiert, um die vollen Längen der Signaturanordnungen 31, 32 zu füllen, die durch die CPU-Reservierungskomponente 13 und die sekundäre CPU-Ablaufsteuerung 16 verwendet werden. Eine Reservierungssignatur von 25 % wird z. B. auf eine 1-in-4-Schlitz-Signatur abgebildet, die 64-mal wiederholt wird. Falls sich irgendwelche Elemente der Komponentensignatur mit vorhandenen Reservierungen überschneiden (siehe 3), versucht die CPU-Reservierungskomponente 13, die sich überschneidenden Elemente der Komponentensignatur entsprechend ihrer Werte der Vorwärts- und Rückwärtsflexibilität zu verlegen und die sich über schneidenden Elemente der Kopie 31 der Master-Signatur 32 entsprechend ihrer Vorwärts- und Rückwärtsflexibilitäten zu verlegen, bis die Komponentensignatur in die Kopie 31 der Master-Signatur 32 passt. Falls dies nicht erreicht werden kann, wird eine Ausnahme verursacht und über die primäre Ablaufsteuerung 12 zurück zur Komponente 22 übertragen. Falls die Mischung erreicht wird, wird die Master-Signatur 32 entsprechend der modifizierten Kopie 31 aktualisiert, wobei diese Informationen zurück zur primären Ablaufsteuerung 12 übertragen werden. Die primäre Ablaufsteuerung 12 schickt dann die Reservierungs-ID zur aufrufenden Komponente 22 zurück.
  • Die CPU-Reservierungskomponente 13 erhält immer wenigstens eine vorgegebene minimale Anzahl von Elementen der Master-Signatur 32 aufrecht, die für den Satz der Best-Effort-Anwendungen 25 frei sind. Jedes Element der Master-Signatur 32 entspricht einer Zeitscheibe für den CPU-Zugriff, z. B. 20 ms. Die CPU-Reservierungskomponente 13 löscht automatisch Reservierungen, die mit einem Parameter der Dauer angefordert worden sind, der zeitlich abgelaufen ist.
  • Die sekundäre CPU-Ablaufsteuerung 16 verwendet die Master-Signatur 32 zyklisch, um die CPU-Zeit den Komponenten 22 zuzuweisen. Die Verwendung der zugewiesenen CPU-Zeit durch die Teilprozesse 32 innerhalb einer Komponente 22 liegt in der Verantwortlichkeit des Anwendungsprogrammierers.
  • Die auf der Priorität basierende Ablaufsteuerung wird verwendet, um die Teilprozesse 23 zu planen, die Teilprozesse mit sehr hoher Priorität (über dem Prioritätsniveau 15) sind, die für die Integrität des Systems wesentlich sind. Dies bedeutet, dass die Teilprozesse 23, die zeitkritischen Aufgaben des Betriebssystems zugeordnet sind, dem Prozess der Reservierung und der Zulassung nicht unterzogen werden, wie oben beschrieben worden ist. Die Master-Signatur 32 wird spezifisch für die Prioritätsniveaus 0–15 verwendet. Der Grund für diesen Zugang ist, die Unterstützung für Vermächtnis-Code des Betriebssystems und Dienste, die für die Stabilität des Systems wesentlich sind, möglich zu machen.
  • Die sekundäre CPU-Ablaufsteuerung 16 verwendet den Standard-Round-Robin-Ablaufsteuerungsalgorithmus für die Teilprozesse mit einer Priorität, die größer als 15 ist. Im Allgemeinen erfordern diese Teilprozesse keine vollständige Zeitscheibe, wobei sie deshalb hinsichtlich der CPU-Zugriffszeit vernachlässigbar sind.
  • In 4 führt die sekundäre CPU-Ablaufsteuerung 16 wiederholt den folgenden Prozess aus. Die sekundäre CPU-Ablaufsteuerung 16 bestimmt, ob im Abwickler 11 ein neuer Teilprozess anstehend ist (Schritt s1). Falls ein neuer Teilprozess anstehend ist, bestimmt die sekundäre CPU-Ablaufsteuerung 16, ob gegenwärtig ein Teilprozess ausgeführt wird (Schritt s2). Falls gegenwärtig ein Teilprozess ausgeführt wird, bestimmt sie, ob der neue anstehende Prozess eine höhere Priorität als der ablaufende Teilprozess besitzt (in diesem Kontext besitzt ein Teilprozess eines garantierten Dienstes "Priorität" gegenüber einem Teilprozess eines Best-Effort-Dienstes mit derselben Priorität) (Schritt s3). Falls die Priorität des neuen Teilprozesses höher ist, reißt die sekundäre CPU-Ablaufsteuerung 16 den ablaufenden Teilprozess an sich, fertigt den neuen Teilprozess ab und legt den an sich gerissenen Teilprozess an den Kopf der Warteschlange seines Prioritätsniveaus im Abwickler 11 (Schritt s4).
  • Falls im Schritt s1 ein neuer Teilprozess nicht bereit ist oder im Schritt s2 kein Teilprozess abläuft, bestimmt die sekundäre CPU-Ablaufsteuerung 16, ob die aktuelle Zeitscheibe abgelaufen ist (Schritt s5). Wenn die aktuelle Zeitscheibe nicht abgelaufen ist, dann kehrt der Prozess zum Schritt s1 zurück, andernfalls fertigt er den Teilprozess (Schritt s7) am Kopf der Abwickler-Warteschlange für die höchste Priorität, die größer als 15 ist, ab (Schritt s6).
  • Falls im Schritt s6 keine Teilprozesse mit Prioritäten größer als 15 anstehend sind, inspiziert die sekundäre CPU-Ablaufsteuerung 16 das nächste Element der Master-Signatur (Schritt s8). Falls das Element leer ist, fertigt die sekundäre CPU-Ablaufsteuerung 16 den Teilprozess von der Spitze der Warteschlange mit der höchsten Priorität ab, die nicht leer ist (Schritt s9). Falls das Element nicht leer ist, sucht die sekundäre CPU-Ablaufsteuerung 16 in der belegten Warteschlange mit der höchsten Priorität im Abwickler 11 nach einem Teilprozess, der zu der Anwendung gehört und der durch das Element der Master-Signatur identifiziert wird (Schritt s10). Wenn einer gefunden wird, dann wird er abgefertigt (Schritt s11), andernfalls wird der Teilprozess von der Spitze der Warteschlange abgefertigt (Schritt s12), wobei die sekundäre CPU-Ablaufsteuerung 16 versucht, die Reservierung zu verlegen (Schritt s13). Diese dynamische Schlitzverschiebung kann nur bis zum Betrag des nächsten Schlitzes, der durch dieselbe garantierte Dienstanwendung 21 reserviert ist, ausgeführt werden. Die Reservierung wird in ihre richtige Position für den nächsten Zyklus durch die Master-Signatur und falls die Master-Signatur durch die CPU-Reservierungskomponente 13 aktualisiert wird zurückgeführt.
  • Es sollte angegeben werden, dass die Best-Effort-Dienstanwendung 25 die Möglichkeit besitzt, dass ihre Teilprozesse 26 abgefertigt werden, wann immer ein Teilprozess eines garantierten Dienstes in den Schritten s8 und s10 nicht bedient werden kann.
  • Wenn eine Komponente 22 der garantierten Dienstanwendung 21 zerstört wird, kann ihr Zerstörer 27 ein Reservierungsannullierungsverfahren der primären Ablaufsteuerung 12 aufrufen, wobei er die Reservierungs-ID als einen Parameter weiterleitet. Die primäre Ablaufsteuerung 12 ruft dann ein Annullierungsverfahren der CPU-Reservierungskomponente 13 auf, das die Schlitzreservierungen der aufrufenden Komponente aus der Kopie 31 der Master-Signatur 32 entfernt und dann die Master-Signatur 32 aktualisiert.
  • Es wird nun der Fall des Plattenzugriffs betrachtet, wobei ein IRP (E/A-Anforderungspaket) eine eingekapselte Anforderung ist, die die Verarbeitungsanforderungen definiert, einschließlich des Typs der auszuführen Operation (Lesen und Schreiben), der Anzahl der zu manipulieren Bytes, der Synchronie der Anforderung usw.
  • Der Konstrukteur 24 einer Komponente 22 enthält eine Prozedur, um die garantierte Dienstanwendung 21 für den Plattenzugriff zu registrieren. Dieser Prozess ruft ein Plattenzugriffs-Reservierungsverfahren der primären Ablaufsteuerung 12 mit einem Bedarfsniveau-Indikator, normalerweise einem Prozentsatz, als einen Parameter auf. Die primäre Ablaufsteuerung 12 ruft dann ein Plattenzugriffs-Reservierungsverfahren der Festplattenlaufwerks-Reservierungskomponente 14 mit dem Bedarfsniveau-Indikator als einen Parameter auf. Dann weist die Festplattenlaufwerks-Reservierungskomponente 14 eine Anzahl von "Lotterielosen" der Anwendung 21, die die Komponente 22 enthält, in Abhängigkeit vom Bedarfniveau-Indikator zu. Die Anzahl der ausgegebenen Lotterielose kann vergrößert werden, wie der Bedarfniveau-Indikator vergrößert wird. Die Komponente 22 kann eine abstrakte Reservierung hinsichtlich einer Klassenkennung anfordern, die die primäre Ablaufsteuerung 12 verwenden kann, um auf eine ständige Nachschlagetabelle Bezug zu nehmen, die den geeigneten Bedarfniveau-Indikator abbildet.
  • Wenn ein Teilprozess 23, der zu einer garantierten Dienstanwendung 21 gehört, den Plattenzugriff erfordert, sendet er ein IRP an einen E/A-Manager 20 des Betriebssystems, das dann über die Dateisystemkomponente 30 des Betriebssystems zur sekundären Festplatten-Ablaufsteuerung 17 weitergeleitet wird. Die Dateisystemkomponente 30 des Betriebssystems vergrößert die Granularität der Zugriffsanforderung, z. B. von einer Anforderung für einen großen Datenblock zu vielen kleinen Datenblöcken. Wenn das IRP die sekundäre Festplatten-Ablaufsteuerung 17 erreicht, wird es entsprechend der Prozess-ID der garantierten Dienstanwendung in eine Warteanordnung gesetzt. Die sekundäre Festplattenlaufwerks-Ablaufsteuerung 17 führt eine Lotterie aus, indem sie zufällig "Los"-Nummern erzeugt. Falls die gewinnende Anwendung ein IRP in der Warteanordnung besitzt, wird der gewinnenden Anwendung 21 der Plattenzugriff gewährt, wobei das längste wartende IRP für die gewinnende Anwendung zum physikalischen Plattenlaufwerks-Ansteuerungsprozess 32 weitergeleitet wird. Wenn es keinen gewinnenden Losinhaber gibt oder der gewinnenden Losinhaber kein IRP besitzt, das für die Bearbeitung bereit ist, dann wird ein alternatives IRP über ein einfaches zyklisches Auswahlschema geplant, das die IRPs von der Best-Effort-Dienstanwendung 25 enthält.
  • Wenn eine Komponente 22 der garantierten Dienstanwendung 21 zerstört wird, bestimmt ihr Zerstörer 27, ob sie die einzige Instanz einer Komponente 22 der Anwendung 21 ist. Falls sie die letzte derartige Instanz ist, ruft er ein Verfahren zur Annullierung des Plattenzugriffs der primären Ablaufsteuerung 12 auf, die wiederum ein Annullierungsverfahren der Festplattenlaufwerks-Reservierungskomponente 14 aufruft. Die Festplattenlaufwerks-Reservierungskomponente 14 hebt dann die Zuweisung der der Anwendung 21 zugewiesenen Lose auf.
  • Es wird nun der Fall des Speicherzugriffs betrachtet, wobei jede Anwendung 21, 25 ihren eigenen virtuellen Adressenraum aufrechterhält, der ein Satz von Speicheradressen ist, die für ihre Teilprozesse für die Verwendung verfügbar sind. Dieser Adressenraum ist viel größer als der RAM 2 des Computers. Wenn eine Komponente 22, 26 auf den virtuellen Speicher ihrer Anwendung Bezug nimmt, führt sie dies mit einem Zeiger aus, der von einem Manager für den virtuellen Speicher verwendet wird, um die Speicherstelle im RAM 2 zu bestimmen, auf die die virtuelle Adresse abgebildet wird. Einige Teile des Speichers können jedoch tatsächlich auf der Platte 10 oder in einem externen Speicher gespeichert sein. Dies bedeutet, dass Daten oder Code, auf die bzw. den selten zugegriffen wird, auf der Platte 10 gehalten werden, wobei folglich der RAM 2 für die bessere Verwendung zurückgehalten wird. Um dieses Schema zu unterstützen, wird das Management des Speichers in Blöcken mit fester Größe ausgeführt, die als "Seiten" bekannt sind, die normalerweise 4 Kb oder 8 Kb groß sind. Wenn eine Komponente 22 auf eine Adresse Bezug nimmt, deren Seite sich nicht im RAM 2 befindet, dann tritt ein Seitenfehler auf. Dies löst einen Prozess aus, der als "Seitenwechsel" bekannt ist, dessen Aufgabe es ist, die den Fehler verursachende Seite innerhalb der Seitendatei zu lokalisieren und dann die Seite in den RAM 2 zu laden. Wenn es nicht ausreichend Raum im RAM 2 gibt, dann muss eine Seite zuerst ausgelagert und in die Seitendatei geschrieben werden. Jeder Prozess erhält jedoch normalerweise eine minimale Anzahl von Seiten aufrecht, die im RAM 2 eingeschlossen sind, die als der "Arbeitssatz" bekannt sind.
  • Alle modernen Betriebssysteme schützen den Speicher im Allgemeinen in drei Formen: die physikalische Hardware verweigert jedem Teilprozess das Zugreifen auf den virtuellen Adressenraum von anderen Komponenten, zwischen den Betriebsarten wird eine Unterscheidung getroffen, die Kernbetriebsart (Ring 0), die den Teilprozessen Zugriff auf den Systemcode und die Daten erlaubt, und die Anwenderbetriebsart (Ring 3), die dies nicht tut, und es gibt einen seitengestützten Schutzmechanismus, in dem jede virtuelle Seite einen Satz von Merkern aufrechterhält, die den erlaubten Zugriffstyp bestimmen. Diese Mechanismen zielen jedoch darauf ab, die Speicherbetriebsmittel einer Komponente vor unerwünschter Störung durch andere unberechtigte Prozesse im System zu schützen. Sie verhindern nicht, dass ein Prozess mehr als seinen angemessenen Anteil des Speichers verbraucht.
  • Um das Verständnis des Zugangs der vorliegenden Erfindung zur Implementierung der Steuerung der Größe des Arbeitssatzes zu unterstützen, wird das Managementschema des Arbeitssatzes in Windows NT kurz beschrieben. Jeder Komponente werden, wenn sie erzeugt wird, zwei Schwellenwerte zugeordnet, eine minimale Größe des Arbeitssatzes und eine maximale Größe des Arbeitssatzes. Das Minimum definiert die kleinste Anzahl von Seiten, für die der Manager des virtuellen Speichers versucht, sie gleichzeitig im physikalischen Speicher eingeschlossen zu halten, während das Maximum einen Expansionsbereich definiert, der verwendet werden kann, falls die Komponente eine beträchtliche Anzahl von Seitenfehlern verursacht. Wenn der Arbeitssatz zu klein ist, dann zieht sich die Komponente eine große Anzahl von Seitenwechseloperationen zu, wobei sie sich folglich durch das kontinuierliche Auslagern von Seiten in den und aus dem externen Speicher einen beträchtlichen Organisationsaufwand zuzieht. Falls alternativ der Arbeitssatz zu groß ist, treten wenige Seitenfehler auf, aber der physikalische Speicher kann Code und/oder Daten halten, auf die selten Bezug genommen wird, wobei folglich der Gesamtwirkungsgrad verringert ist. In Windows NT stellt der Speichermanager (MM) die Arbeitssätze einmal in jeder Sekunde, in Reaktion auf Seiten-Einlese-Operationen oder wenn der freie Speicher unter einen gegebenen Schwellenwert fällt ein. Falls freier Speicher im Überfluss vorhanden ist, entfernt der MM Seiten, auf die selten Bezug genommen wird, nur aus den Arbeitssätzen der Komponenten, deren aktuelle Größe über einem gegebenen Minimum liegt, dies ist als aggressives Beschneiden bekannt. Falls jedoch freier Speicher knapp ist, kann der MM das Beschneiden von Seiten von jeder Komponente erzwingen, bis er eine angemessene Anzahl von Seiten erzeugt, sogar jenseits des minimalen Schwellenwertes. Selbstverständlich werden Komponenten, die ausgedehnte Arbeitssätze besitzen, gegenüber denjenigen bevorzugt beschnitten, die die minimale Größe des Arbeitssatzes besitzen.
  • In der vorliegenden Ausführungsform enthält der Konstrukteur 24 einer Komponente 22 eine Prozedur, um einen Arbeitssatz zu reservieren. Diese Prozedur ruft ein Speicherreservierungsverfahren der primären Ablaufsteuerung 12 auf, die wiederum ein Verfahren der Speicherreservierungskomponente 15 aufruft. Die Speicherreservierungskomponente 15 übersetzt diese Anforderung in die geeignete Expansion einer vorgegebenen minimalen Größe des Arbeitssatzes. Die minimale Größe des Arbeitssatzes regelt die Anzahl der Seiten, die eine Anwendung 21 gleichzeitig in den RAM 2 einschließen (oder anheften) kann. Folglich führt eine Komponente 22, die wünscht, einen Teil des Speichers zu reservieren, die Reservierungsanforderung über die primäre Ablaufsteuerung 12 zur Speicherreservierungskomponente 15 aus, die dann die Schwellenwerte des Arbeitssatzes dementsprechend vergrößert. Diese Einstellung wird durch die Aufrufe des Betriebssystems unterstützt. Es ist dann die Verantwortlichkeit der Komponente, die Seiten in den RAM 2 anzuheften, wie es erforderlich ist. Der Prozess des Anheftens wird auf der Grundlage des wer zuerst kommt, mahlt zuerst, arbitriert. Falls nicht ausreichend physikalische Seiten verfügbar sind, weist das Betriebssystem die Anforderung für das Anheften zurück, wobei deshalb erwartet wird, dass die Komponente 22 ihre reservierten Seiten unverzüglich nach der Zuweisung anheftet.
  • Wenn es nicht ausreichend freie physikalische Speicherbetriebsmittel gibt, dann versucht die Speicherreservierungskomponente 15, die Prozesse der Best-Effort-Dienstanwendungen 25 zu zwingen, die Seiten zurück in den Dateispeicher zu schreiben, bis ausreichend freie physikalische Seiten verfügbar sind. Wenn nicht ausreichend Raum geschaffen werden kann, dann wird die Reservierung zurückgewiesen. Wie bei den anderen Betriebsmittelmodulen ist ein Teil des RAM 2 für einen minimalen Best-Effort-Dienst reserviert. Dies wird durch das Aufrechterhalten einer Zählung der Gesamtzahl der physikalischen Seiten, die unter dem garantierten Dienst verwendet werden, und das Überprüfen dieser gegen einen Teil der physikalischen Gesamtseitenkapazität unterstützt. Es sollte außerdem angegeben werden, dass durch die potentielle Expansion des Arbeitssat zes außer dem Best-Effort-Dienst der 'Best-Effort'-Dienst streng ein minimaler garantierter Dienst ist (definiert durch das System, dem eine minimale Größe des Arbeitssatzes zugeordnet ist). Es wird angenommen, dass die Prozesse die primäre Ablaufsteuerung 12 nicht umgehen können und die Größe ihres eigenen Arbeitssatzes direkt ändern. Schließlich werden spezielle Überlegungen für die Seiten angestellt, die für die Zwecke des gemeinsam benutzten Speichers verwendet werden. Wenn irgendein Client einer gemeinsam benutzten Seite eine Reservierung ertragen hat, dann ist die Seite als reserviert klassifiziert, selbst wenn andere Clients keine Reservierung vorgenommen haben können.
  • Eine zweite Ausführungsform ist dieselbe wie die oben beschriebene erste Ausführungsform, mit Ausnahme der Art des Betriebs der sekundären CPU-Ablaufsteuerung 16. Der Betrieb der CPU-Ablaufsteuerung der zweiten Ausführungsform wird nun beschrieben.
  • In den 2 und 4 führt die sekundäre CPU-Ablaufsteuerung 16 wiederholt den folgenden Prozess aus. Die sekundäre CPU-Ablaufsteuerung 16 bestimmt, ob im Abwickler 11 ein neuer Teilprozess anstehend ist (Schritt s101). Falls ein neuer Teilprozess anstehend ist, bestimmt die sekundäre CPU-Ablaufsteuerung 16, ob gegenwärtig ein Teilprozess ausgeführt wird (Schritt s102). Falls gegenwärtig ein Teilprozess ausgeführt wird, bestimmt sie, ob der neue anstehende Teilprozess eine höhere Priorität als der ablaufende Teilprozess besitzt (in diesem Kontext besitzt ein Teilprozess eines garantierten Dienstes "Priorität" gegenüber einem Teilprozess eines Best-Effort-Dienstes mit derselben Priorität) (Schritt s103). Falls die Priorität des neuen Teilprozesses höher ist, reißt die sekundäre CPU-Ablaufsteuerung 16 den ablaufenden Teilprozess an sich, fertigt den neuen Teilprozess ab und legt den an sich gerissenen Teilprozess an den Kopf der Warteschlange seines Prioritätsniveaus im Abwickler 11 (Schritt s104).
  • Falls im Schritt s101 ein neuer Teilprozess nicht bereit ist oder im Schritt s102 kein Teilprozess ausgeführt wird, bestimmt die sekundäre CPU-Ablaufsteuerung 16, ob die aktuelle Zeitscheibe abgelaufen ist (Schritt s105). Wenn die aktuelle Zeitscheibe nicht abgelaufen ist, dann kehrt der Prozess zum Schritt s101 zurück, andernfalls fertigt er den Teilprozess (Schritt s107) am Kopf der Abwickler-Warteschlange für die höchste Priorität, die größer als 15 ist, ab (Schritt s106).
  • Falls im Schritt s106 keine Teilprozesse mit Prioritäten größer als 15 anstehend sind, inspiziert die sekundäre CPU-Ablaufsteuerung 16 das nächste Element der Master-Signatur (Schritt s108). Falls das Element leer ist, fertigt die sekundäre CPU-Ablaufsteuerung 16 den Teilprozess von der Spitze der Warteschlange mit der höchsten Priorität ab, die nicht leer ist (Schritt s109). Falls das Element nicht leer ist, sucht die sekundäre CPU-Ablaufsteuerung 16 in einer Warteschlange im Abwickler 11 nach einem Teilprozess, der zu der Anwendung gehört und der durch das Element der Master-Signatur identifiziert wird (Schritt s110), wobei sie von der Warteschlange mit der Priorität 15 zur Warteschlange mit der niedrigsten Priorität hin und vom Kopf jeder Warteschlange bis zu ihrem Ende sucht. Wenn einer gefunden wird, dann wird er abgefertigt (Schritt s111), andernfalls wird der Teilprozess von der Spitze der belegten Warteschlange mit der höchsten Priorität abgefertigt (Schritt s112), wobei die sekundäre CPU-Ablaufsteuerung 16 versucht, die Reservierung zu verlegen (Schritt s113). Diese dynamische Schlitzverschiebung kann nur bis zu dem Betrag des nächsten Schlitzes, der durch dieselbe garantierte Dienstanwendung 21 reserviert ist, ausgeführt werden. Die Reservierung wird in ihre richtige Position für den nächsten Zyklus durch die Master-Signatur und falls die Master-Signatur durch die CPU-Reservierungskomponente 13 aktualisiert wird zurückgeführt.
  • Es sollte angegeben werden, dass die Best-Effort-Dienstanwendung 25 die Möglichkeit besitzt, dass ihre Teilprozesse 96 abgefertigt werden, wann immer ein Teilprozess eines garantierten Dienstes in den Schritten s108 und s110 nicht bedient werden kann.
  • Die vorliegende Erfindung ist unter Bezugnahme auf Anwendungen beschrieben worden, die Komponenten umfassen, die wiederum einen oder mehrere Teilprozesse umfassen. Es ist klar, dass die vorliegende Erfindung nicht auf diese Situation eingeschränkt ist und in einem System implementiert sein kann, in dem die Anwendungsprogramme nicht unter Verwendung objektorientierter Sprachen aufgebaut sind.
  • Während die vorliegende Erfindung unter Bezugnahme auf den Zugriff auf eine CPU, eine Festplatte und einen Speicher beschrieben worden ist, ist klar, dass sie auf die Ablaufsteuerung des Zugriffs auf andere Betriebsmittel angewendet werden kann.
  • Es ist klar, dass der Begriff "Lotterielos" bildlich verwendet wird.

Claims (17)

  1. Verfahren für das Management der Betriebsmittelverwendung in einem Computer, wobei der Computer umfasst: ein Ablaufsteuerungsmittel (12), das ein oder mehrere Verfahren besitzt, um Reservierungsanforderungen für mehrere verschiedene Betriebsmittel (1, 2, 10) des Computers zu verarbeiten, wobei das Ablaufsteuerungsmittel so beschaffen ist, dass es eine betriebsmittelspezifische Reservierungsverarbeitung beginnt; und wenigstens ein Reservierungsmittel (13, 14, 15), das ein oder mehrere Verfahren besitzt, um Reservierungen für den Zugriff auf ein Betriebsmittel (1, 2, 10) des Computers vorzunehmen, wobei das Verfahren die folgenden Schritte umfasst: Ausführen eines ersten Prozesses, um eine Reservierung für den Zugriff auf ein Betriebsmittel in Abhängigkeit von einer Betriebsmittelanforderungskommunikation von einem Anwendungsprozess (21, 22) vorzunehmen, wobei der Anwendungsprozess (21, 22) ein Ablaufsteuerungsverfahren des Ablaufsteuerungsmittels (12) aufruft, wobei das Ablaufsteuerungsverfahren eine von der Hardware unabhängige erste Betriebsmittelzugriffsanforderungsdefinition als einen Parameter verwendet und ein Reservierungsverfahren des Reservierungsmittels (13, 14, 15) aufruft, um eine Reservierung für den Anwendungsprozess (21, 22) unter Verwendung einer von der Hardware abhängigen zweiten Betriebsmittelzugriffsanforderungsdefinition als einen Parameter vorzunehmen; Ausführen eines zweiten Prozesses, um Anforderungen für einen Zugriff auf das Betriebsmittel von dem Anwendungsprozess in Abhängigkeit von der Reservierung zu gewähren, umfassend das Ausführen eines betriebsmittelspezifischen Ablaufsteuerungsprozesses, um den Zugriff auf ein Betriebsmittel (1, 2, 10) in Abhängigkeit von der durch das Reservierungsmittel (13, 14, 15) vorgenommenen Reservierung, die durch das Ablaufsteuerungsmittel in dem ersten Prozess vor dem zweiten Prozess begonnen wird, zu gewähren; und Verwenden des Betriebsmittels (1, 2, 10) für die Zwecke des Anwendungsprozesses.
  2. Verfahren nach Anspruch 1, bei dem das Verfahren der Ablaufsteuerungsmittel (12) die von der Hardware unabhängige erste Betriebsmittelzugriffsanforderungsdefinition in eine von der Hardware abhängige zweite Betriebsmittelzugriffsanforderungsdefinition übersetzt.
  3. Verfahren nach Anspruch 2, bei dem das Ablaufsteuerungsmittel (12) durch eine Plattform unterstützt wird und das Verfahren des Ablaufsteuerungsmittels die von der Hardware unabhängige Betriebsmittelzugriffsanforderungsdefinition in eine zweite Betriebsmittelzugriffsanforderungsdefinition, die von den Eigenschaften der Plattform abhängt, übersetzt.
  4. Verfahren nach einem vorhergehenden Anspruch, bei dem die zweite Betriebsmittelzugriffsanforderungsdefinition eine Form hat, die für die Verwendung durch eine oder mehrere der folgenden Komponenten geeignet ist: eine CPU-Reservierungskomponente (13) des Computers; und eine Speicherreservierungskomponente (14, 15) des Computers.
  5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem das Betriebsmittel (1) eine CPU des Computers umfasst und das Ablaufsteuerungsmittel (12) so beschaffen sind, dass es einen Zugriff auf CPU-Zeit für den Anwendungsprozess (21, 22) unter Verwendung der zweiten Betriebsmittelanforderungsdefinition vor dem Schritt des Gewährens einer Anforderung für den Zugriff auf die CPU (1) reserviert.
  6. Verfahren nach Anspruch 5, bei dem die von der Hardware abhängige zweite Betriebsmittelanforderungsdefinition ein eindimensionales Reservierungsanforderungsmuster umfasst, das mit einem eindimensionalen CPU-Zugriffssteuerungsmuster gemischt ist und leere CPU-Zugriffszeitschlitze sowie reservierte CPU-Zugriffszeitschlitze repräsentiert, ohne das Reservierungsanforderungsmuster oder die reservierten CPU-Zeitgriffsschlitze in dem Reservierungsanforderungsmuster wesentlich zu stören.
  7. Verfahren nach Anspruch 6, bei dem der Mischungsschritt das Verschieben eines nicht leeren Zeitschlitzelements des Reservierungsanforderungsmusters oder des CPU-Zugriffssteuerungsmusters in der Weise, dass die Muster gemischt werden können, ohne dass irgendeines der reservierten CPU-Zugriffszeitschlitz-Elemente gelöscht oder überschrieben wird, umfasst.
  8. Verfahren nach Anspruch 7, bei dem das verschobene, nicht leere Zeitschlitzelement um einen Betrag verschoben wird, der in dem Zeitschlitzelement definiert ist.
  9. Verfahren nach einem der Ansprüche 5 bis 8, bei dem in dem eindimensionalen CPU-Zugriffssteuerungsmuster jedes Element mit einer Menge der CPU-Zugriffszeit in Beziehung steht und bei dem in dem Schritt des Ausführens des zweiten Prozesses, der eine Anforderung für den Zugriff auf das Betriebsmittel von dem Anwendungsprozess (21, 22) in Abhängigkeit von der Reservierung gewährt, der Schritt des Ausführens eines betriebsmittelspezifischen Ablaufsteuerungsprozesses für die Gewährung des Zugriffs auf ein Betriebsmittel (1) das Gewähren des Zugriffs auf die CPU durch Ausführen der folgenden Schritte umfasst: am Ende eines Betrags der CPU-Zugriffszeit: Gewähren eines Zugriffs auf irgendeinen der anstehenden Prozesse, der eine Priorität hat, die größer als ein vorgegebener Pegel ist; und dann falls das nächste Musterelement leer ist, Gewähren des Zugriffs auf einen anstehenden Prozess, der ein vorgegebenes Prioritätensetzungskriterium erfüllt, andernfalls Gewähren des Zugriffs auf einen Prozess, der in dem Musterelement identifiziert wird.
  10. Verfahren nach Anspruch 9, bei dem anstehende Prozesse Warteschlangen belegen, die verschiedene Prioritäten haben, und der Zugriff auf den in dem Musterelement identifizierten Prozess gewährt wird, wenn keine belegte Prozesswarteschlange vorhanden ist, deren Priorität höher als jene der Warteschlange ist, in der der Prozess vorhanden ist.
  11. Verfahren nach Anspruch 4, bei dem die Speicherreservierungskomponente (14, 15) eine Massenspeichervorrichtungs-Reservierungskomponente (14) des Computers umfasst.
  12. Verfahren nach Anspruch 11, bei dem das Betriebsmittel Speicher in der Massenspeichervorrichtung (10) umfasst und das Ablaufsteuerungsmittel (12) so beschaffen sind, dass sie Speicher für den Anwendungsprozess (20, 21) unter Verwendung der zweiten Betriebsmittelanforderungsdefinition vor dem Schritt des Gewährens einer Anforderung für einen Zugriff auf die Massenspeichervorrichtung (10) reservieren.
  13. Verfahren nach Anspruch 12, bei dem dann, wenn die Ablaufsteuerung eine Reservierung vornimmt, ein oder mehrere Betriebsmittel-Tokens dem Anwendungsprozess in Abhängigkeit von der zweiten Betriebsmittelzugriffsanforderungsdefinition zugewiesen werden und bei dem in dem zweiten Prozess der Schritt des Gewährens einer Anforderung für den Zugriff auf das Betriebsmittel der Schritt des Ausführens eines betriebsmittelspezifischen Ablaufsteuerungsprozesses für die Gewährung des Zugriffs auf ein Betriebsmittel in Abhängigkeit von der durch die Reservierungsmittel (13, 14, 15) vorgenommenen Reservierung umfasst: (i) Speichern von Anforderungen für den Zugriff auf eine Massenspeichervorrichtung von den Anwendungsprozessen; (ii) Erzeugen einer im Wesentlichen zufälligen Betriebsmitteltoken-Kennung; und (iii) falls kein Anwendungsprozess zugewiesen worden ist, Weiterleiten der gespeicherten Anforderung durch das identifizierte Betriebsmitteltoken zu einem Massenspeichervorrichtungs-Ansteuerungsprozess für den Zugriff von einem Anwendungsprozess, der anhand eines vorgegebenen Prioritätensetzungskriteriums ausgewählt wird, und andernfalls: Weiterleiten einer gespeicherten Anforderung für den Zugriff von einem Anwendungsprozess, dem das identifizierte Betriebsmitteltoken zugewiesen wurde, zu einem Massenspeichervorrichtungs-Treiberprozess durch das identifizierte Betriebsmittel-Token.
  14. Verfahren nach Anspruch 12, bei dem dann, wenn die Ablaufsteuerungsmittel eine Reservierung in dem ersten Prozess vornehmen, eine Gewichtungsfunktion, die dem Anwendungsprozess zugeordnet ist, bestimmt wird und bei dem in dem zweiten Prozess in dem Schritt des Gewährens einer Anforderung für den Zugriff auf das Betriebsmittel der Schritt des Ausführens eines betriebsmittelspezifischen Ablaufsteuerungsprozesses für die Gewährung eines Zugriffs auf ein Betriebsmittel in Abhängigkeit von der durch die Reservierungsmittel (13, 14, 15) vorgenommenen Reservierung das Ausführen der folgenden Schritte umfasst: (i) Speichern von Anforderungen für einen Zugriff auf eine Massenspeichervorrichtung von den Anwendungsprozessen; (ii) unter Verwendung eines stochastischen Prozesses entweder Auswählen eines Anwendungsprozesses mit einer Wahrscheinlichkeit, die durch den dem Anwendungsprozess zugeordnete Gewichtung bestimmt ist, und Weiterleiten der gespeicherten Anforderung für den Zugriff von dem ausgewählten Anwendungsprozess zu einem Massenspeichervorrichtungs-Treiberprozess oder Weiterleiten einer gespeicherten Anforderung für den Zugriff von dem Anwendungsprozess, der anhand eines vorgegebenen Prioritätensetzungskriteriums ausgewählt wird, zu einem Massenspeichervorrichtungs-Treiberprozess.
  15. Verfahren nach Anspruch 4, bei dem der Speicher einen Schreib-Lese-Speicher (2) umfasst und das Ablaufsteuerungsmittel (12) so beschaffen ist, dass es vor dem Schritt des Gewährens einer Anforderung für den Zugriff auf den Schreib-Lese-Speicher eine minimale Anzahl von Speicherblöcken in dem Schreib-Lese-Speicher reserviert.
  16. Computer, der so konfiguriert ist, dass er in Übereinstimmung mit einem Verfahren mit einem vorhergehenden Anspruch arbeitet.
  17. Datenträger, der Computercode enthält, der in einen Computer geladen werden kann, um das Verfahren nach einem der Ansprüche 1 bis 15 auszuführen.
DE60020817T 1999-03-15 2000-03-03 Ablaufsteuerung für Betriebsmittel Expired - Lifetime DE60020817T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP99301952 1999-03-15
EP99301952A EP1037146A1 (de) 1999-03-15 1999-03-15 Planung von Betriebsmitteln
EP99303936A EP1037147A1 (de) 1999-03-15 1999-05-20 Planung von Betriebsmitteln
EP99303936 1999-05-20
PCT/GB2000/000783 WO2000055732A2 (en) 1999-03-15 2000-03-03 Resource scheduling

Publications (2)

Publication Number Publication Date
DE60020817D1 DE60020817D1 (de) 2005-07-21
DE60020817T2 true DE60020817T2 (de) 2006-05-04

Family

ID=26153454

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60020817T Expired - Lifetime DE60020817T2 (de) 1999-03-15 2000-03-03 Ablaufsteuerung für Betriebsmittel

Country Status (6)

Country Link
US (1) US7219347B1 (de)
EP (2) EP1037147A1 (de)
AU (1) AU2927000A (de)
CA (1) CA2367982C (de)
DE (1) DE60020817T2 (de)
WO (1) WO2000055732A2 (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804251B1 (en) * 1998-11-12 2004-10-12 Broadcom Corporation System and method for multiplexing data from multiple sources
US7333495B2 (en) * 1999-10-27 2008-02-19 Broadcom Corporation Method for scheduling upstream communications
US6999414B2 (en) * 1999-10-27 2006-02-14 Broadcom Corporation System and method for combining requests for data bandwidth by a data provider for transmission of data over an asynchronous communication medium
US20030046394A1 (en) * 2000-11-03 2003-03-06 Steve Goddard System and method for an application space server cluster
CN1295610C (zh) 2002-03-25 2007-01-17 艾利森电话股份有限公司 用于动态管理服务器平台上的服务器应用的方法和设备
FI116166B (fi) * 2002-06-20 2005-09-30 Nokia Corp Menetelmä ja järjestelmä sovellusistuntojen suorittamiseksi elektroniikkalaitteessa, ja elektroniikkalaite
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US8296771B2 (en) * 2003-08-18 2012-10-23 Cray Inc. System and method for mapping between resource consumers and resource providers in a computing system
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
EP1847925B1 (de) * 2004-09-30 2018-11-21 Citrix Systems, Inc. Verfahren und Systeme für den Zugriff auf von einem Betriebssystem bereitgestellte Ressourcen über Anwendungsprogramme
US7853947B2 (en) 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US7406689B2 (en) * 2005-03-22 2008-07-29 International Business Machines Corporation Jobstream planner considering network contention & resource availability
US8028295B2 (en) 2005-09-30 2011-09-27 Intel Corporation Apparatus, system, and method for persistent user-level thread
US7779034B2 (en) 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US7661115B2 (en) * 2006-01-30 2010-02-09 International Business Machines Corporation Method, apparatus and program storage device for preserving locked pages in memory when in user mode
US7797692B1 (en) * 2006-05-12 2010-09-14 Google Inc. Estimating a dominant resource used by a computer program
US9588809B2 (en) * 2006-10-10 2017-03-07 Invistasking LLC Resource-based scheduler
US20080052397A1 (en) 2006-08-24 2008-02-28 Ramanathan Venkataraman Future locking of resources
US8024738B2 (en) * 2006-08-25 2011-09-20 International Business Machines Corporation Method and system for distributing unused processor cycles within a dispatch window
US8893130B2 (en) * 2007-03-26 2014-11-18 Raytheon Company Task scheduling method and system
US20090100435A1 (en) * 2007-10-11 2009-04-16 Microsoft Corporation Hierarchical reservation resource scheduling infrastructure
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US8151267B2 (en) * 2008-04-08 2012-04-03 Xerox Corporation Printing system scheduler methods and systems
US8086822B2 (en) 2008-05-30 2011-12-27 Vmware, Inc. In-place shadow tables for virtualization
CN101639792B (zh) * 2008-07-29 2016-04-06 阿里巴巴集团控股有限公司 一种并发数据处理方法、装置及一种电子记账系统
CN102282546B (zh) * 2008-11-10 2016-04-06 新思科技有限公司 资源控制
WO2010105060A1 (en) 2009-03-11 2010-09-16 Virage Logic Corp. Systems and methods for resource controlling
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US9081616B2 (en) * 2009-05-29 2015-07-14 Lexmark International Technology, SA System and method for adjusting a number of processing modules based on processing load
US20100306005A1 (en) * 2009-05-29 2010-12-02 Perceptive Software, Inc. Workflow Management System and Method
US20220045966A1 (en) * 2012-10-24 2022-02-10 Messageone, Inc. System and Method for Optimizing Resource Utilization in a Clustered or Cloud Environment
US11321118B2 (en) * 2012-10-24 2022-05-03 Messageone, Inc. System and method for controlled sharing of consumable resources in a computer cluster
US9491114B2 (en) 2012-10-24 2016-11-08 Messageone, Inc. System and method for optimizing resource utilization in a clustered or cloud environment
US9007947B2 (en) * 2013-02-25 2015-04-14 Telefonaktiebolaget L M Ericsson (Publ) Grant utilization based other cell interference estimation
US9569260B2 (en) 2013-05-31 2017-02-14 Microsoft Technology Licensing, Llc Efficient priority-aware thread scheduling
US9992304B2 (en) 2014-10-13 2018-06-05 At&T Intellectual Property I, L.P. Relocation of applications to optimize resource utilization
CN105808619B (zh) * 2014-12-31 2019-08-06 华为技术有限公司 基于影响分析的任务重做的方法、影响分析计算装置及一键重置装置
US9767285B2 (en) 2015-06-04 2017-09-19 Accenture Global Services Limited Process categorization using crowdsourcing
US9703961B2 (en) 2015-06-05 2017-07-11 Accenture Global Services Limited Process risk classification
US9798877B2 (en) * 2015-06-04 2017-10-24 Accenture Global Services Limited Security risk-based resource allocation
US10772114B2 (en) * 2015-10-20 2020-09-08 Telecom Italia S.P.A. Scheduling method and system
US10261911B2 (en) * 2016-09-08 2019-04-16 The Johns Hopkins University Apparatus and method for computational workflow management
CN108615184B (zh) * 2018-03-29 2020-12-18 创新先进技术有限公司 一种记账的方法及装置
US11995010B2 (en) * 2021-04-16 2024-05-28 Avago Technologies International Sales Pte. Limited Adaptor storage system of and method

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247677A (en) * 1992-05-22 1993-09-21 Apple Computer, Inc. Stochastic priority-based task scheduler
US5640595A (en) * 1993-06-29 1997-06-17 International Business Machines Corporation Multimedia resource reservation system with graphical interface for manual input of resource reservation value
US5581703A (en) * 1993-06-29 1996-12-03 International Business Machines Corporation Method and apparatus for reserving system resources to assure quality of service
US5487170A (en) * 1993-12-16 1996-01-23 International Business Machines Corporation Data processing system having dynamic priority task scheduling capabilities
US5778245A (en) * 1994-03-01 1998-07-07 Intel Corporation Method and apparatus for dynamic allocation of multiple buffers in a processor
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
US6003061A (en) * 1995-12-07 1999-12-14 Microsoft Corporation Method and system for scheduling the use of a computer system resource using a resource planner and a resource provider
EP0790557A2 (de) * 1996-02-14 1997-08-20 Matsushita Electric Industrial Co., Ltd. Taskverwaltungsgerät
CA2200929C (en) * 1996-03-28 2008-05-13 Tadashi Takeuchi Periodic process scheduling method
US5826082A (en) * 1996-07-01 1998-10-20 Sun Microsystems, Inc. Method for reserving resources
DE69738646T2 (de) * 1996-08-28 2008-11-13 Hitachi, Ltd. Verfahren zur Ausführung eines Prozesses und Betriebsmittelzugriffsverfahren in einem Computer-System
US5790851A (en) * 1997-04-15 1998-08-04 Oracle Corporation Method of sequencing lock call requests to an O/S to avoid spinlock contention within a multi-processor environment
US6292492B1 (en) * 1998-05-20 2001-09-18 Csi Zeitnet (A Cabletron Systems Company) Efficient method and apparatus for allocating memory space used for buffering cells received on several connections in an asynchronous transfer mode (ATM) switch

Also Published As

Publication number Publication date
EP1163580B1 (de) 2005-06-15
CA2367982C (en) 2008-07-29
AU2927000A (en) 2000-10-04
WO2000055732A2 (en) 2000-09-21
EP1037147A1 (de) 2000-09-20
WO2000055732A3 (en) 2000-12-28
DE60020817D1 (de) 2005-07-21
US7219347B1 (en) 2007-05-15
EP1163580A2 (de) 2001-12-19
CA2367982A1 (en) 2000-09-21

Similar Documents

Publication Publication Date Title
DE60020817T2 (de) Ablaufsteuerung für Betriebsmittel
DE69729822T2 (de) Echtzeit-Taskzuweiser
EP0333123B1 (de) Modular strukturiertes ISDN-Kommunikationssystem
DE69835121T2 (de) Betriebsmittelsablaufsteuerung
DE60005001T2 (de) Netzwerkablaufsteuerungverfahren und -system für echtzeitanwendungen sowie ein entsprechendes computerlesbares speichermedium
DE69930855T2 (de) Verfahren und vorrichtung zur durchführung einer deterministischen speicherzuordnungsantwort in einem computer-system
DE69636688T2 (de) Verfahren und Gerät zur automatischen Verwaltung von gleichzeitigem Zugriff auf gemeinsame Betriebsmittel in einer Multifaden-Programmierbetriebsumgebung
DE10212637B4 (de) Druckerprioritäts-Gebotsschema, Verfahren, Verfahren bei einem Netzwerkdrucksystem, Verfahren bei einer Netzwerkumgebung, Netzwerkdrucksystem, Drucker, Architektur, ein oder mehrere computerlesbare Medien und Graphikdruckmenü-Benutzerschnittstelle
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
DE602004004321T2 (de) Vorrichtung und Verfahren zur Echtzeitbeurteilung einer Netzverwaltungsregel
DE112010005096T5 (de) Verfahren und Vorrichtungen zum Bewerten der Ressourcen-Kapazität in einem System von virtuellen Containern
DE60316141T2 (de) Echtzeit-speicherbereichsnetzwerk
DE112007002201T5 (de) Quality-of-Service-Implementierung für Plattformressourcen
DE4033336A1 (de) Verfahren zum erzeugen einer ausfallmeldung und mechanismus fuer ausfallmeldung
DE69818135T2 (de) Verfahren zum Zugriff auf Datenbankinformation
DE102006019839A1 (de) Zeitbewusste Systeme
DE3606211A1 (de) Multiprozessor-computersystem
CA2053969C (en) Method and apparatus for controlling the deferred execution of user requests in a data processing system
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE19838055A1 (de) Kommunikationssystem
DE112005000705B4 (de) Konfiguration von Umleitungstabellen
DE102012203521A1 (de) Architektur mit zwei Vertrauenswürdigkeitsstufen
DE10340416B4 (de) System und Verfahren zum Beenden von Prozessen in einem verteilten Rechensystem
DE60303444T2 (de) Ablaufsteuerung unter verwendung von quantumwerten und defizitwerten
EP1298515A2 (de) Verfahren zur Steuerung des Zugriffs auf Ressourcen eines Datenverarbeitungssystems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition