DE68915937T2 - Reduzierung von prozessorblockierungseffekten. - Google Patents

Reduzierung von prozessorblockierungseffekten.

Info

Publication number
DE68915937T2
DE68915937T2 DE68915937T DE68915937T DE68915937T2 DE 68915937 T2 DE68915937 T2 DE 68915937T2 DE 68915937 T DE68915937 T DE 68915937T DE 68915937 T DE68915937 T DE 68915937T DE 68915937 T2 DE68915937 T2 DE 68915937T2
Authority
DE
Germany
Prior art keywords
processor
priority value
value
priority
blocked
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 - Fee Related
Application number
DE68915937T
Other languages
English (en)
Other versions
DE68915937D1 (de
Inventor
Stuart Farnham
Rodney Gamache
Michael Harvey
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE68915937D1 publication Critical patent/DE68915937D1/de
Application granted granted Critical
Publication of DE68915937T2 publication Critical patent/DE68915937T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Description

    Hintergrund der Erfindung
  • Die Erfindung betrifft die Steuerung des Bestands an zur Ausführung durch einen Prozessor verfügbaren Aufgaben, wenn die Arbeit des Prozessors durch einen Konflikt mit einem anderen Prozessor vorübergehend blockiert worden ist.
  • Eine solche Blockierung kann beispielsweise vorkommen, wenn ein Prozessor versucht, in einen kritischen Code-Bereich einzutreten, in dem der andere Prozessor gerade arbeitet. (Kritische Bereiche werden festgelegt, um Daten, die in einem gemeinsamen Speicher gespeichert sind, vor kollidierenden Zugriffen durch zwei oder mehr Prozessoren zu schützen.) Normalerweise wird der kritische Bereich durch ein Kennzeichenbit im gemeinsamen Speicher geschützt, das gesetzt wird, wenn ein Prozessor gerade in diesem Bereich arbeitet, und das ansonsten aufgehoben wird. Ein Prozesser überprüft immer erst das Kennzeichenbit, bevor er in den Bereich eintritt, und wenn ein gesetztes Kennzeichenbit vorliegt, wartet er, bis der andere Prozessor den Bereich verlassen hat.
  • In manchen Systemen wird der wartende Prozessor zur Arbeit an anderen Aufgaben herangezogen, bis der kritische Bereich frei wird. Eine Umschaltung auf andere Aufgaben beansprucht Zeit, weil aktuelle Kontextinformationen gespeichert und jedesmal dann wiederhergestellt werden müssen, wenn eine weitere Aufgabe erledigt wird.
  • Eine andere bekannte Vorgehensweise nutzt die Tatsache aus, daß in manchen Computern (z. B. im VAX von Digital Equipment Corporation) jeder Aufgabe eine von beispielsweise 32 Unterbrechungsprioritätsstufen zugeordnet ist, wobei diese Aufgaben nach ihrer relativen Dringlichkeit und dem relativen Overhead, den ihre Ausführung verursacht, eingeordnet sind. Wenn ein Prozessor daran gehindert wird, in einem kritischen Bereich mit einer gegebenen Unterbrechungsprioritätsstufe zu arbeiten, kann der blockierte Prozessor im allgemeinen nur solche Aufgaben mit höherer Unterbrechungsprioritätsstufe bedienen. Im IBM Technical Disclosure Bulletin, Band 26, Nr. 6, November 1983 mit dem Titel "Suspension Locking In A Multilever Multiprocessor" (S. 2820) ist ein System beschrieben, bei dem ein Prozessor, der gerade an der Aufgabe mit der höchsten Prioritätstufe arbeitet, die ihm zur Verfügung steht, sich anderen Aufgaben mit niedrigerer Prioritätsstufe widmen kann, wenn er durch einen anderen Prozessor blockiert wird.
  • Zusammenfassung der Erfindung
  • Ein allgemeines Merkmal der Erfindung besteht darin, daß der Bestand oder Vorrat an zur Verfügung stehenden Aufgaben, die vom blockierten Prozessor ausgeführt werden können, während er wartet, vergrößert werden kann, und zwar durch eine vorübergehende Absenkung der Unterbrechungspriorität auf eine Minimalstufe, oberhalb der es diesem Prozessor erlaubt ist, Aufgaben zur Ausführung entgegenzunehmen.
  • Bevorzugte Ausführungsbeispiele der Erfindung weisen die folgenden Merkmale auf. Wenn ein Konflikt entsteht, indem ein Prozessor nicht in einen kritischen Code-Bereich zugelassen wird, in dem gerade ein anderer Prozessor arbeitet, wird die Prioritätsstufe des blockierten Prozessors unter die Prioritätsstufe des kritischen Bereichs abgesenkt, allerdings weder unter eine vorgegebene Prioritätsstufe (die auf dem Kontext-Schaltungs-Overhead basiert, der für die verschiedenen Prioritätsstufen notwendig ist), noch unter die Prioritätsstufe, die der blockierte Prozessor vor dem Entstehen des Konflikts hatte.
  • Folglich ist der Prozessor dazu in der Lage, andere Aufgaben durchzuführen, während er auf das Ende des Konflikts wartet, und zwar ohne daß ein unnötig großer Kontext-Schaltungs-Overhead entsteht, und ohne daß ihm Aufgaben mit einer Prioritätsstufe zugewiesen werden, die unter der ursprünglichen Prioritätsstufe des blockierten Prozessors liegen. Diese Idee ist leicht zu realisieren und flexibel in der Anwendung.
  • Weitere Vorteile und Merkmale werden aus der folgenden Beschreibung eines bevorzugten Ausführungsbeispieles sowie aus den Ansprüchen deutlich.
  • Beschreibung eines bevorzugten Ausführungsbeispieles
  • Zunächst werden die Zeichnungen kurz beschrieben.
  • Fig. 1 ist ein Blockschaltbild eines Teils eines Mehrfachprozessor-Computers.
  • Fig. 2 ist ein Diagramm von Unterbrechungsprioritätsstufen.
  • Fig. 3 ist ein Flußdiagramm, das die Einstellung der minimalen Unterbrechungsprioritätsstufe für einen Prozessor zeigt.
  • Aufbau
  • In Fig. 1 ist gezeigt daß sich in einem symmetrischen Mehrfachprozessor(SMP)- System 10 eine Reihe (N) von Prozessoren 11(1) bis 11(N) über einen Bus 14 einen gemeinsamen Speicher 12 teilen. Im Speicher 12 sind unter anderem Daten 16, eine Synchronisations-Prioritätstabelle 18 und ein Betriebssystem- und Anwendungs-Code 20 (einschließlich der kritischen Bereiche 22, verschiedener Unterbrechungs-Aufgaben 24 und einer Semaphor-Routine 26) gespeichert.
  • Jeder Eintrag 28 in der Synchronisations-Prioritätstabelle entspricht einem der kritischen Bereiche und dient dazu, den Eintritt von mehr als einem Prozessor in den jeweiligen kritischen Bereich zu verhindern. Ein Kennzeichenbit-Datenfeld 30 (FL) zeigt an, ob in dem kritischen Bereich gerade ein Prozessor arbeitet. Wenn dies der Fall ist, wird dieser Prozessor im PROC-ID-Datenfeld (= Prozessor-Identifizierungs-Datenfeld) 32 identifiziert. Ein Synchronisations-Prioritätsstufen(SPL)- Datenfeld 34 enthält einen Wert, der der Unterbrechungsprioritätsstufe des kritischen Bereichs entspricht, die im Zusammenhang mit dem Tabelleneintrag steht.
  • Wie in Fig. 2 gezeigt, gibt es in dem VAX 32 mögliche Unterbrechungsprioritätsstufen 36. Die unteren sechzehn Stufen sind Software-Unterbrechungen 38, während die oberen sechzehn Stufen Hardware-Unterbrechungen 40 sind, die beispielsweise Dienstanforderungen von Anwenderprogrammen beinhalten. Wenn ein Prozessor auf eine Unterbrechung bei Stufe 3 oder höher reagiert, ist bei der Kontextumschaltung nur die Speicherung des Programmzählers (PC) und des Programmzustands-Langworts (PSL) notwendig. Eine Reaktion auf eine Unterbrechungs- Aufgabe unter Stufe 3 erfordert jedoch die Speicherung aller Register.
  • Bei einer gegebenen Unterbrechungsprioritätsstufe, z. B. Stufe 27, kann es eine ganze Reihe von kritischen Bereichen 42 geben. In der Synchronisations- Prioritätstabelle wird das SPL-Datenfeld für einen gegebenen Eintrag auf die Unterbrechungsprioritätsstufe des entsprechenden kritischen Bereichs gesetzt.
  • Es wird nun nochmals auf Fig. 1 Bezug genommen. Jeder Prozessor weist ein Hardware-Register 44 auf, das einen SPL-Wert für diesen Prozessor enthält. Ein Prozessor kann keine Aufgabe durchführen, deren Prioritätsstufe unter seiner aktuellen SPL liegt.
  • Arbeitsweise
  • Wenn ein Prozessor im Begriff ist, in einen kritischen Bereich einzutreten, wird er angewiesen, die Semaphor-Routine 26 auszuführen.
  • Es wird nun auf Fig. 3 Bezug genommen. Zunächst speichert (50) die Semaphor- Routine die SPL des Prozessors, überprüft dann den Eintrag 28 der Synchronisations-Prioritätstabelle, der dem kritischen Bereich entspricht und setzt (52) die SPL des Prozessors auf die Unterbrechungsprioritätsstufe, die in dem SPL-Datenfeld des Tabelleneintrags vorhanden ist. Anschließend überprüft und setzt (54) die Semaphor-Routine das Kennzeichenbit-Datenfeld. Wenn das Kennzeichenbit vorher nicht gesetzt worden ist, dann war der kritische Bereich nicht besetzt und steht nun nur diesem Prozessor zur Verfügung. Anschließend wird die ID des Prozessors in das PROC-ID-Datenfeld eingegeben (56) und der Prozessor wird angewiesen, in den kritischen Bereich (60) einzutreten. Am Ende des kritischen Bereichs wird das Kennzeichenbit aufgehoben (62), wodurch der kritische Bereich anderen Prozessoren potentiell zur Verfügung steht.
  • Wenn die Semaphor-Routine andererseits den Bereich besetzt vorfindet, senkt (66) sie die SPL des Prozessors auf eine neue SPL ab, die über den ersten drei SPLs oder über der ursprünglichen SPL des Prozessors liegt (d. h. über der in Schritt 50 gespeicherten SPL). Es steht dem Prozessor dann frei, auf Unterbrechungen von Aufgaben anzusprechen, deren Unterbrechungsprioritätsstufe höher ist als die neue SPL, auch wenn sie (möglicherweise) unterhalb des kritischen Bereichs liegen. Nach der Ausführung (68) jeder Unterbrechungs-Aufgabe kehrt der Prozessor zur Semaphor-Routine zurück, die wieder damit fortfährt, das Kennzeichenbit (70) zu überprüfen. Wenn der kritische Bereich besetzt bleibt, steht es dem Prozessor wiederum frei, eine andere Unterbrechungs-Aufgabe auszuführen (68). Andernfalls setzt die Semaphor-Routine die SPL des Prozessors wieder auf die SPL des Tabelleneintrags (52) und fährt mit Schritt 54 fort.
  • Die Absenkung der SPL des Prozessors vergrößert den Bestand an möglichen Aufgaben, die er ausführen darf, anstatt den Bestand an Aufgaben, deren Unterbrechungsprioritätsstufe höher ist als die SPL des kritischen Bereichs, zu begrenzen, und zwar ohne daß die großen Kontextumschaltungs-Overhead-Kosten für Aufgaben entstehen, deren Unterbrechungsprioritätsstufe 2 oder niedriger ist.
  • Indem die SPL nicht unter ihren ursprünglichen Wert abgesenkt wird, wird gewährleistet, daß der Prozessor nicht zu Service-Aufgaben unterhalb der Stufe herangezogen wird, die dem Prozessor zugewiesen worden war, bevor er den kritischen Bereich erreichte.
  • Andere Ausführungsbeispiele liegen im Bereich der nachfolgenden Ansprüche. Es können beispielsweise andere Schemata verwendet werden, um die Prioritätsstufe zu bestimmen, auf die die SPL des Prozessors abgesenkt wird, wenn der Prozessor blockiert wird.

Claims (6)

1. Verfahren zum Steuern des Bestandes an zur Ausführung durch einen Prozessor (11) verfügbaren Aufgaben, wenn die Arbeit des Prozessors (11) in einem Multiprozessorsystem (10) durch einen Konflikt mit einem anderen Prozessor (11) vorübergehend blockiert worden ist, wobei das Verfahren folgendes aufweist:
- die Anordnung der Aufgaben in einer Prioritätsfolge (36);
- die Aufrechterhaltung eines aktuellen Prioritätswertes für jeden Prozessor (11), wobei dieser Wert das niedrigste Prioritätsniveau von Aufgaben angibt, die der Prozessor gegenwärtig durchführen darf;
- die Speicherung (50) des aktuellen Prioritätswertes als ursprünglichen Prioritätswert, bevor der Prozessor (11) in einen kritischen Bereich (22) eintritt;
- die Anhebung des aktuellen Prioritätswertes des Prozessors (11) auf einen Prioritätswert, der mit dem kritischen Bereich (22) assoziiert ist; und,
- wenn der Prozessor (11) durch einen Konflikt mit einem anderen Prozessor (11) blockiert worden ist, das Absenken (66) des angehobenen Prioritätswertes des blockierten Prozessors (11) auf einen neuen Prioritätswert, wobei der neue Prioritätswert nicht niedriger ist als der gespeicherte ursprüngliche Prioritätswert.
2. Verfahren nach Anspruch 1, wobei der Prioritätswert des blockierten Prozessors vorübergehend auf einen Wert abgesenkt wird, der im Vergleich zwischen dem gespeicherten ursprünglichen Prioritätswert und einem vorgegebenen Wert der größere dieser beiden Werte ist.
3. Verfahren nach Anspruch 2, wobei der vorgegebene Wert auf der Basis des Overheads für die Kontextumschaltung bestimmt wird, der von Aufgaben mit unterschiedlichen Prioritätswerten verlangt wird.
4. Verfahren nach Anspruch 1, wobei der kritische Bereich (22) einen Prioritätswert besitzt, der über dem Prioritätswert des blockierten Prozessors vor der Blockierung liegt, und wobei der Prioritätswert des blockierten Prozessors vorübergehend auf einen Wert angehoben wird, der niedriger ist als der Prioritätswert des kritischen Bereichs.
5. Vorrichtung zum Steuern des Bestands an zur Ausführung durch einen Prozessor (11) verfügbaren Aufgaben, wenn die Arbeit des Prozessors (11) in einem Multiprozessorsystem (10) durch einen Konflikt mit einem anderen Prozessor (11) vorübergehend blockiert worden ist, wobei die Vorrichtung folgendes aufweist:
- eine Einrichtung zum Anordnen der Aufgaben in einer Prioritätsfolge (36);
- eine Einrichtung zum Aufrechterhalten eines aktuellen Prioritätswertes (44) für jeden Prozessor (11), wobei dieser Wert das niedrigste Prioritätsniveau von Aufgaben angibt, die der Prozessor gegenwärtig durchführen darf;
- eine Einrichtung zum Speichern (50) des aktuellen Prioritätswertes als ursprünglichen Prioritätswert, bevor ein Prozessor (11) in einen kritischen Bereich (22) eintritt;
- eine Einrichtung zum Anheben des aktuellen Prioritätswertes des Prozessors (11) auf einen Prioritätswert, der mit dem kritischen Bereich (22) assoziiert ist; und
- eine Einrichtung zum Absenken (66) des angehobenen Prioritätswertes des blockierten Prozessors (11) auf einen neuen Prioritätswert, wenn der Prozessor (11) durch einen Konflikt mit einem anderen Prozessor (11) blockiert worden ist, wobei der neue Prioritätswert nicht niedriger ist als der gespeicherte ursprüngliche Prioritätswert.
6. Vorrichtung nach Anspruch 5, wobei die Einrichtung zum Absenken eine Einrichtung umfaßt, um den Prioritätswert vorübergehend auf einen Wert abzusenken, der im Vergleich zwischen dem gespeicherten ursprünglichen Wert und einem vorgegebenen Wert der größere dieser beiden Werte ist.
DE68915937T 1988-04-14 1989-04-14 Reduzierung von prozessorblockierungseffekten. Expired - Fee Related DE68915937T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US18163788A 1988-04-14 1988-04-14
PCT/US1989/001586 WO1989009964A1 (en) 1988-04-14 1989-04-14 Reducing the effect of processor blocking

Publications (2)

Publication Number Publication Date
DE68915937D1 DE68915937D1 (de) 1994-07-14
DE68915937T2 true DE68915937T2 (de) 1995-01-05

Family

ID=22665135

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68915937T Expired - Fee Related DE68915937T2 (de) 1988-04-14 1989-04-14 Reduzierung von prozessorblockierungseffekten.

Country Status (5)

Country Link
EP (1) EP0367816B1 (de)
JP (1) JP2676034B2 (de)
CA (1) CA1321033C (de)
DE (1) DE68915937T2 (de)
WO (1) WO1989009964A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP5397546B2 (ja) * 2010-07-27 2014-01-22 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
JP5621896B2 (ja) * 2013-10-24 2014-11-12 富士通株式会社 マルチプロセッサシステム、制御プログラム、および制御方法

Also Published As

Publication number Publication date
JPH02501515A (ja) 1990-05-24
DE68915937D1 (de) 1994-07-14
EP0367816A1 (de) 1990-05-16
WO1989009964A1 (en) 1989-10-19
EP0367816B1 (de) 1994-06-08
JP2676034B2 (ja) 1997-11-12
CA1321033C (en) 1993-08-03

Similar Documents

Publication Publication Date Title
DE69803304T2 (de) Hardwareunterstütztes verfahren zum kontextwechsel
DE69230462T2 (de) Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln
DE2629459C2 (de)
DE3687724T2 (de) Digitalprozessorsteuerung.
DE69609608T2 (de) Vorrichtung und verfahren zur unterbrechungszuweisung
DE3131341C2 (de)
DE3751164T2 (de) Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten.
DE69839194T2 (de) Gerät und verfahren zum initieren hardwarevorrangsmanagement durch softwarekontrollierten registerzugriff
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
EP0011685B1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
DE2054068A1 (de) Mit Programmverschachtelung arbei tendes Datenverarbeitungssystem zur gleichzeitigen Verarbeitung mehrerer Programme
EP0635784A1 (de) Multiprozessorsystem
DE2414311C2 (de) Speicherschutzeinrichtung
DE1774870C3 (de) Einrichtung zur Adressierung einer Speicherzelle eines Speichers in einer Datenverarbeitungsanlage
DE68928759T2 (de) Rechner mit intelligentem Speichersystem und zugehöriges Verfahren
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE2164793A1 (de) Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit
DE2101949A1 (de) Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage
DE69233282T2 (de) Datenverarbeitungsvorrichtung
DE3545937A1 (de) Mikroprozessor
DE2617127A1 (de) Mehrfachprogramm-datenverarbeitungssystem
DE68915937T2 (de) Reduzierung von prozessorblockierungseffekten.
DE3789912T2 (de) System und Verfahren zur Bildverarbeitung.
DE3410497A1 (de) Rechneranordnung
EP0057755B1 (de) Mikrorechnersystem zum raschen Auffinden von Kennzeichenblöcken

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN

8339 Ceased/non-payment of the annual fee