DE3888554T2 - Verfahren zur Steuerung eines Computers zur Übertragung von Datenblöcken zwischen einem Massenspeicher und einem Speicher. - Google Patents
Verfahren zur Steuerung eines Computers zur Übertragung von Datenblöcken zwischen einem Massenspeicher und einem Speicher.Info
- Publication number
- DE3888554T2 DE3888554T2 DE3888554T DE3888554T DE3888554T2 DE 3888554 T2 DE3888554 T2 DE 3888554T2 DE 3888554 T DE3888554 T DE 3888554T DE 3888554 T DE3888554 T DE 3888554T DE 3888554 T2 DE3888554 T2 DE 3888554T2
- Authority
- DE
- Germany
- Prior art keywords
- pages
- blocks
- referenced
- main memory
- page
- 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
Links
- 238000000034 method Methods 0.000 title claims description 19
- 125000004122 cyclic group Chemical group 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 30
- 230000002452 interceptive effect Effects 0.000 description 25
- 230000008901 benefit Effects 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein Verfahren zur Steuerung eines Computers zur Übertragung von Datenblöcken zwischen einem Massenspeicher, so beispielsweise einem direkten Zugriffsspeicher (DASD) und einem Hauptspeichersystem.
- In großen Mainframe-Steuerprogrammen, besonders in solchen Programmen, in denen mehrere Berechnungsgrößen oder Aufgaben erstellt werden und gleichzeitig ablaufen können, ist die Speicherverwaltung eine erforderliche Funktion. Auch in einem großen Mainframe-Computersystem ist der reale Speicher mit hoher Wahrscheinlichkeit nicht ausreichend, um jede Aufgabe zu bedienen, die auf dem System zu einem gegebenen Zeitpunkt läuft. Aus diesem Grund verwenden Steuerprogramme für solche Mainframes einen Expedienten, der unter dem Begriff "Paging" bekannt ist.
- Beim Paging wird der Speicher in Einheiten fester Größe, sogenannten Seiten, verwaltet, die normalerweise 4 KBytes groß sind. Nur aktiven Seiten ist es gestattet, im Speicher zu bleiben, damit diese vom Prozessor verwendet werden können, während dieser auf dem Computersystem seine Aufgaben ausführt. Diejenigen Seiten, die gemäß den gegebenen Kriterien nicht regelmäßig referenziert werden, oder die eine bestimmte Zeit lang nicht mehr referenziert wurden, werden in den Speicher übertragen und machen so den Speicherbereich für eine Datenseite frei, die für eine Aufgabe benötigt wird, die die Ausführung durch den Prozessor erforderlich macht.
- Der Computer merkt sich, wo im Speicher sich die dorthin übertragene Seite tatsächlich befindet, so daß, wenn diese Seite für eine Aufgabe benötigt wird, die hinterher die Ausführung anfordert, diese aus dem Speicher hereingeladen und zurück in den Speicher gesetzt werden kann, um sie bei der Ausführung dieser Aufgabe zu verwenden.
- Auf dem bisherigen Stand der Technik wurde die Implementierung des Paging auf zwei Arten erzielt. Eine Art ist das Verfahren Local Least Recently Used ("LLRU"), bei der das Swapping zum Einsatz kommt. Dies beinhaltet die Bestimmung, welche Seiten eines einzelnen Benutzers während einer gegebenen unmittelbar vorhergehenden Zeitdauer an Computerzuweisung, oder einer Zeitscheibe, referenziert wurden, und die Gruppierung dieser "alten" Seiten in "Swap-Sätze" zur nachfolgenden Übertragung in den Speicher. Seiten, die während der gegebenen, unmittelbar vorhergehenden Zeitdauer oder Zeitscheibe nicht referenziert wurden, werden einzeln dem Paging unterzogen. Swap-Sätze werden zurück in den Speicher übertragen, wenn daraus eine beliebige Seite angefordert wird. Die Annahme besteht darin, daß zuvor in einer gegebenen Zeitscheibe alle Seiten referenziert wurden und daß daher die Wahrscheinlichkeit sehr hoch ist, daß diese wieder zusammen benötigt werden. Darüber hinaus ist die Übertragung von Seiten, oder Gruppen, effizienter als die Übertragung einzelner Seiten.
- Das andere Verfahren trägt die Bezeichnung Global Least Recently Used ("GLRU"). Dieses Verfahren umfaßt die Bestimmung, welche Seiten im Speicher in letzter Zeit im gesamten System referenziert wurden, ohne daß der Benutzer oder die Zeitscheibe berücksichtigt wird.
- Das Verfahren GLRU besitzt den Vorteil, daß es sehr einfach ist. Das heißt, es kümmert sich nicht um die Frage, was der besitzende Benutzer ist, und was sein Status ist. In ähnlicher Weise optimiert es die Verwendung des Speichers für das System als ganzes, indem es seine Entscheidungen nicht auf benutzerabhängige Entscheidungen basiert. Da das Verfahren anforderungsabhängig ist, das heißt, die Zeit, die es für die Suche nach unreferenzierten Seiten benötigt, um Platz für neue Seiten zu schaffen, ist von der tatsächlichen Nachfrage nach Seitenrahmen abhängig, fügt es zusätzliche Ressourcen proportional zu den Anforderungen durch das System hinzu. Die Geschwindigkeit, mit der die Seiten im Speicher überprüft werden, um festzustellen, ob diese erneut referenziert wurden (und somit zurückgehalten werden sollen), erhöht sich automatisch als eine Funktion der Anforderung.
- Das Verfahren GLRU ist jedoch so ausgelegt, daß es seine Seiten einzeln auswählt, so daß die Vorteile des physikalischen Swappings nicht zur Verfügung stehen. Das heißt, die Seiten werden nicht gruppiert, um sie zusammen aus dem Speicher zu holen und sie anschließend wieder dorthin abzulegen, nach einer Art effizienzorientiertem Schema, beispielsweise Verhältnis des Benutzers, und Verwendungswahrscheinlichkeit zusammen.
- Das Verfahren LLRU bietet problemlos die Vorteile des Swapping, da das System einen Benutzer auf einmal betrachtet, was zu einer benutzerabhängigen Organisation der Seiten in Swap- Sätzen führt. Einige Teile des Verfahrens LLRU sind jedoch nicht "anforderungsgesteuert". Das heißt, es fügt in seiner Planung zur Bildung von Swap-Sätzen relativ festgelegte zusätzliche Systemressourcen hinzu, unabhängig davon, ob die durch die Swap-Sätze dargestellten Rahmen tatsächlich benötigt werden, das heißt, ob die Seiten, die in diesen Rahmen resident sind, in den Speicher übertragen werden müssen, um Platz zu schaffen für eine Seite, die in den Hauptspeicher geladen werden muß. Des weiteren ist das Interval, in dem die Referenzentscheidung getroffen wird, nicht an die Systemanforderung oder die Erkennung des Programmverhaltens gebunden, die die erforderliche Zeit beeinflussen würde.
- Aus diesem Grund besteht Bedarf an einem verbesserten Verfahren für das Paging, um ein effizienteres System bereitzustellen, das die Anforderungen an die zusätzlichen Ressourcen, die durch ein solches System entstehen, minimiert.
- Gemäß der Erfindung wird ein Verfahren zur Steuerung eines Computersystems bereitgestellt, das einen Hauptspeicher, einen Massenspeicher, einen Prozessor und ein Steuersystem zur Steuerung der Ausführung von Aufgaben für eine Mehrzahl an Systemberechnungsgrößen, wobei dieses Verfahren den Schritt der Übertragung von Datenblöcken zwischen dem genannten Massenspeichermittel und dem genannten Hauptspeicher umfaßt, um für aktuelle Computersystemoperationen im genannten Hauptspeicher benötigte Datenblöcke aufrechtzuerhalten, sowie außerdem den folgenden Schritt: Identifikation von Datenblöcken im genannten Hauptspeicher, die nicht innerhalb einer vorbestimmten, vorhergehenden Zeitdauer im gesamten System referenziert wurden; charakterisiert durch die Gruppierung in Sätzen, bezogen auf die genannten Größen, derjenigen Datenblöcke aus den genannten identifizierten Blöcken, die durch eine entsprechende der genannten Größen referenziert wurden, seit sie zum letzten mal in den Hauptspeicher geladen wurden; und Übertragung dieser Blocksätze in den genannten Massenspeicher zur späteren Verwendung als Satz, wenn ein beliebiger der genannten Blöcke im genannten Satz im genannten Hauptspeicher für die Verwendung durch das Computersystem benötigt wird.
- Ein Ausführungsbeispiel der vorliegenden Erfindung wird nachfolgend beschrieben, wobei auf die beiliegenden Zeichnungen Bezug genommen wird:
- Fig. 1 ist eine Tabelle, die die Entscheidungen gemäß dem bisherigen Paging-Mechanismus Local Least Recently Used darstellt.
- Fig. 2 ist ein Blockdiagramm, das die Anordnung von Seiten, die für das Paging aus dem Speicher ausgewählt wurden, gemäß dem bisherigen Mechanismus Local Least Recently Used darstellt.
- Fig. 3 ist ein Flußdiagramm, das die bevorzugte Anordnung der vorliegenden Erfindung darstellt.
- Das bevorzugte Ausführungsbeispiel ist am leichtesten mit dem Hintergrund einer ausführlicheren Beschreibung von bisherigen Paging-Mechanismen verständlich, auf die oben bereits Bezug genommen wurde. Entsprechend folgt nun eine solche Hintergrundbeschreibung dieser Paging-Mechanismen.
- Fig. 1 ist eine Tabelle, die den Paging-Entscheidungsmechanismus für LLRU darstellt. Das Betriebssystem verwendet diese Entscheidungen, um Seiten aus dem Hauptspeicher zu entfernen, die inaktiv sind, um Platz im Hauptspeicher zuzuordnen. Der Mechanismus beruht auf einer Überprüfung der Seitenreferenzen, wobei eine Berechnungsgröße (wie beispielsweise ein Benutzer) auf einmal herangezogen wird. Zu Beginn einer Zuordnungsdauer an Computerressourcen, oder einer Zeitscheibe, werden alle residenten Seiten eines Benutzers als gegenwärtig nicht referenziert gekennzeichnet, so daß im Lauf der Zeit festgestellt werden kann, welche Seiten unreferenziert bleiben, und welche Seiten während dieser Zeitscheibe tatsächlich aktiv in Verwendung sind, das heißt, vor kurzem referenziert wurden.
- Die Spalte 1 in Fig. 1 kennzeichnet jede der neun Seiten eines einzelnen Benutzers. Die Seiten 1-5 sind zu Beginn einer Zeitscheibe resident, während die Seiten 6-9 zu einem Zeitpunkt nach Beginn, jedoch vor dem Ende dieser Zeitscheibe geholt werden. Die Spalte 2 zeigt den Status der Seiten 1-5 zu Beginn der Zeitscheibe an. Wie dargestellt ist, wurde jede als nicht referenziert gekennzeichnet, wie dies oben bereits erwähnt wurde. Die Spalte 3 zeigt den Status der Seiten 1-9 am Ende der Zeitscheibe sowie die Entscheidung bezüglich derjenigen Seiten gemäß LLRU. Die Seiten 1 und 2 wurden während der Zeitscheibe nicht referenziert. Sie werden zur Trimliste und anschließend sofort zur Flush-Liste gesendet, einem Zwischenschritt vor der einzelnen Auslagerung in den DASD-Speicher. Dies wird nachfolgend ausführlicher beschrieben.
- Diejenigen Seiten, die als am Ende der Zeitscheibe referenziert gekennzeichnet sind, in diesem Fall die Seiten 3, 4, 5, 7, 8 und 9, werden auf die "Arbeitssatz"-Liste gesetzt, die dann sofort in eine von zwei Swap-Warteschlangen (interaktiv oder nicht interaktiv) gesetzt wird. Seiten in den Swap-Warteschlangen neigen zu einer längeren Verweildauer im Speicher als die Seiten auf der Flush-Liste. Der Mechanismus, durch den dies auftritt, wird nachfolgend unter Verweis auf Fig. 2 beschrieben. Die Differenz in residenter Dauer ist der Beleg für die Tatsache, daß statistisch gesehen vor kurzem verwendete Seiten sehr wahrscheinlich auch weiterhin verwendet werden.
- Es ist zu beachten, daß eine Seite während einer Zeitscheibe in den den Hauptspeicher gestellt, während dieser Zeitscheibe jedoch nicht referenziert werden kann; die Seite kann als Bestandteil eines Swap-Satzes als Ergebnis dadurch, daß eine andere Seite in diesem Swap-Satz referenziert wurde, hereingeladen worden sein. Daher werden eine oder mehrere Seiten im Swap-Satz, die für den "Transport" bereitgestellt wurden, während dieser Zeitscheibe möglicherweise nicht referenziert.
- Fig. 2 ist ein Blockdiagramm, das die Pfade der Seiten darstellt, die gemäß dem Entscheidungsverfahren ausgewählt wurden, das oben im Zusammenhang mit Fig. 1 beschrieben wurde. In allen Fällen werden Seiten, die für die Verwendung im Hauptspeicher verfügbar gemacht wurden, aus der freien Liste 10 ausgewählt. Das Wiederauffüllen der freien Liste erfolgt von mehreren Quellen aus in einer bestimmten Reihenfolge. Die allererste Auswahl der Seiten zum Wiederauffüllen der freien Liste sind Seiten, die aus den Swap-Warteschlangen 12, 14 ausgewählt wurden, die dort seit einer verstrichenen Zeitdauer bereitgestellt waren, die länger ist als eine gegebene bei der Installation einstellbare Zeitgrenze. In diesem Beispiel wurde eine Zeitgrenze von 10 Sekunden für die interaktive Swap-Warteschlange 12 eingestellt, und für die nicht interaktive Swap-Warteschlange 14 wurden 2 Sekunden ausgewählt. Die Seiten in der interaktiven Swap-Warteschlange 12, die dort seit mehr als 10 Sekunden residieren, werden automatisch in die nicht interaktive Swap-Warteschlange 14 übertragen. Daher kommt die erste Auswahl der Seiten in Wirklichkeit von der nicht interaktiven Swap-Warteschlange. Die Quelle der ersten Auswahl ist durch die Linie 16 abgebildet. Die Swap-Warteschlangen 12, 14 werden von den Arbeitssatzlisten 34 bereitgestellt, die einzelnen Benutzern zugeordnet sind, wie bereits bekannt ist.
- Im Hintergrund werden die Benutzer durch den Systemplaner unter Verwendung bekannter Verfahren als "interaktiv" oder "nicht interaktiv" klassifiziert. Interaktive Benutzer sind normalerweise Maschinen, die von Personen betrieben werden, die an einem Terminal sitzen und auf eine relativ prompte Systemantwort warten. Ein nicht interaktiver Benutzer ist eine Maschine, die eine Aufgabe ausführt, von der bekannt ist, daß sie relativ viel Zeit in Anspruch nimmt; daher ist ein schnelles System weniger eine bedeutende Systemeigenschaft wie für einen interaktiven Benutzer.
- Es wird darauf hingewiesen, daß durch die Aufstellung separater Warteschlangen für interaktive und nicht interaktive Benutzer, wie im Fall der Warteschlangen 12 und 14 in Fig. 2, und durch die Aufstellung residenter zeitlicher Grenzen in der beschriebenen Weise die referenzierten Seiten, die zur Bildung des Swap-Satzes des interaktiven Benutzers ausgewählt wurden, länger resident im Speicher vorhanden sind als diejenigen von nicht interaktiven Benutzern. Dadurch wird die Arbeitsdauer des interaktiven Benutzers verkürzt, indem die Wahrscheinlichkeit, daß Seiten, die verwendet werden, in den DASD-Speicher ausgelagert werden, minimiert wird, wenn sie an der Tastatur mit einer "normalen" Geschwindigkeit arbeiten.
- Die Seiten der zweiten Auswahl zum Wiederauffüllen der freien Liste 10 sind diejenigen aus der Flush-Liste 18. Diese Seitenquelle besteht hauptsächlich aus unreferenzierten Seiten, die getrimmt wurden, wie dies in Verbindung mit Fig. 1 beschrieben wurde. Diese Seiten werden ebenfalls danach kategorisiert, ob sie von einem interaktiven gegen einen nicht interaktiven Benutzer getrimmt wurden, und zwar indem die Seiten des interaktiven Benutzers an das vordere Ende der Flush-Liste 18, und diejenigen des nicht interaktiven Benutzers an das hintere Ende der Flush-Liste 18 gesetzt werden. Dies ermöglicht eine geringfügige Erhöhung der Lebensdauer des Hauptspeichers für die unreferenzierten Seiten des interaktiven Benutzers.
- Die Seiten der dritten und vierten Wahl zum Wiederauffüllen der freien Liste 10 werden erst aufgerufen, nachdem die Flush- Liste 18 leer ist. Die Seiten der dritten Wahl sind die nicht interaktiven swapping-fähigen Seiten, die in der Reihenfolge des Alters ausgewählt werden, wobei die älteste Seite zuerst und die neueste Seite zuletzt herangezogen wird.
- Wenn die nicht interaktive Swap-Warteschlange 14 leer ist, wird die vierte Auswahl aufgerufen, die die interaktiv swapping-fähigen Seiten in Warteschlange 12 enthält. Diese werden ebenfalls in der Reihenfolge des Alters ausgewählt, wobei die älteste Seite zuerst und die neueste Seite zuletzt herangezogen. Auch hier wird die Präferenz, die Seiten der interaktiven Benutzer länger im Hauptspeicher zu halten, im Mechanismus implementiert.
- Die Seiten der fünften Auswahl zum Wiederauffüllen der freien Liste 10 sind die Seiten aus der Kerntabellenabtastung 26. Gelegentlich, beispielsweise in einer Notfallsituation, erzeugt keiner der zuvor beschriebenen Mechanismen eine ausreichende Anzahl an Seiten, um die freie Liste 10 wiederaufzufüllen. In diesem Fall wird jede "verfügbare" Seite für das Auffüllen der freien Liste 10 ausgewählt. Die
- hauptsächliche Ursache, die eine Seite "nicht verfügbar" macht, ist, daß diese für eine Eingabe-/Ausgabeoperation gesperrt ist. Eine solche Seite kann beispielsweise asynchron bewegte Daten aufweisen, die in die Seite oder von dieser Seite übertragen werden, und sie kann nicht aus dem Hauptspeicher genommen werden, bis die Eingabe-/Ausgabeoperation beendet ist.
- Abschließend ist es wichtig, darauf hinzuweisen, daß eine weitere Quelle für Seiten für die Flush-Liste 18 der verfügbare Seitenkollektor 30 ist. Manche Seiten fallen unter keine der oben beschriebenen Kategorien. Der verfügbare Seitenkollektor 30 ist ein Mechanismus, der all diejenigen Seiten ansammelt, die länger als etwa eine Minute unreferenziert geblieben sind. Diese werden dann in die Flush-Liste 18 gesetzt.
- Weitere Einzelheiten und Erläuterungen können den Handbüchern der IBM Virtual Machine/System Product High Performance Option, Version 4.2, entnommen werden. Siehe beispielsweise IBM Virtual Machine/System Product High Performance Option, System Logic and Problem Determination Guide - CP, Version 4.2, Dokumentnummer LY20-0897-6, das hiermit als Referenzguelle angegeben wird. Siehe insbesondere darin Seiten 135- 138. Siehe auch beispielsweise IBM Virtual Machine/System Product High Performance Option, System Programmer's Guide, Version 4.2, Dokumentnummer SC19-6224-6, das hiermit als Referenzquelle angegeben wird. Siehe insbesondere darin Kapitel 3. Beide diese Dokumente sind über die IBM Corporation, Mechanicsburg, Pennsylvania, erhältlich.
- Der obige Text beschreibt den bisherigen Mechanismus Local Least Recently Used, bei dem das Swapping verwendet wird. Das andere oben angeführte bisherige Verfahren ist das Verfahren Global Least Recently Used, bei dem das Swapping nicht verwendet wird. GLRU ist im Vergleich mit LLRU relativ einfach. Die Seiten im Hauptspeicher werden einfach durch den Kerntabellenabtastmechanismus eingelesen, der sich merkt, welche Seiten referenziert wurden und welche nicht. Während der Scanner alle Seiten im Hauptspeicher nacheinander und zyklisch einliest, wird jede Seite, die bei der Überprüfung als markiert erkannt wird, resident gemacht. Ist die Seite unreferenziert, kann sie entweder sofort in die freie Liste gesetzt werden, wenn die Information in dieser Seite in einer externen Speichereinrichtung bereits existiert, oder, wenn nicht, beispielsweise, weil die Seite geändert wurde, während sie im Speicher resident war, nachdem sie in den externen Speicher kopiert wurde. Wenn der Mechanismus feststellt, daß eine Seite referenziert ist und daher resident bleibt, stellt der Mechanismus das Referenzbit neu ein. Später, wenn die Abtastung umlaufend ist und zu dieser Seite zurückkehrt, wird erneut die Bestimmung durchgeführt, ob die Seite seit dem letzten mal, seit sie eingelesen wurde, referenziert wurde. Wenn die Seite referenziert wurde, ist sie noch immer aktiv und bleibt resident. Wenn sie jedoch seit dem letzten Abtasten unreferenziert war, ist eine Auswahl für das Wiederauffüllen der freien Liste möglich.
- Einer der Vorteile des Mechanismus GLRU ist seine Einfachheit. Er unterscheidet nicht zwischen Benutzerklassen oder zwischen Benutzer- und Systemseiten, und die installierende Person muß beispielsweise keine Zeitbegrenzungen für Warteschlangen-Residenzdauern eingeben. Die Zeitbegrenzung für Seiten, die für das Auffüllen der freien Liste ausgewählt wurden, ist eine strenge Funktion der Systembelastung. Werden keine Seiten für die freie Liste benötigt, weil die Belastung nicht sehr hoch ist, hält die Kerntabellenabtastung einfach an und es gibt dafür keine zusätzlichen Ressourcen. Mit steigender Belastung beeinflußt die Geschwindigkeit, mit der sich der Bedarf an Seiten erhöht, direkt die Geschwindigkeit der Kerntabellenabtastung, wodurch diese Seiten für die Übertragung in den Speicher verfügbar gemacht werden.
- Somit steht mit GLRU einerseits ein effizientes, anforderungsabhängiges Schema zur Verfügung, das bei der Auswahl von Seiten für das Auffüllen der freien Liste nur wenig zusätzliche Ressourcen benötigt. Verglichen mit LLRU besitzt GLRU nur geringfügig mehr zusätzliche Ressourcen. GLRU besitzt keine zusätzlichen Ressourcen bei Dingen wie der Bündelung von Seiten in den Arbeitssatzlisten. Es ist zu beachten, daß in LLRU diese Bündelung und Bewegung von Seiten für viele Seiten erfolgt, die nicht endgültig in die freie Liste gesetzt werden; wenn dies dennoch der Fall ist, werden sie reklamiert, bevor sie zur Verwendung durch neue Benutzer verfügbar gemacht werden. Auf diese Weise wird im Vergleich mit GLRU bei LLRU ein beträchtlicher Anteil an zusätzlichen Ressourcen verschwendet. Andererseits bietet das Swapping einen doppelten Vorteil. Ein Vorteil besteht darin, daß die Verwendung von DASD-Speichereinrichtungen mit beweglichem Kopf effizienter ist, wenn beispielsweise zehn Seiten anstatt einer in einer Operation bewegt werden. Die hauptsächlichen Verzögerungen für Such- und Zugriffszeiten innerhalb dieser Einrichtung und die Rotationsverzögerung vor dem Erhalten der ersten benötigten Seite werden auf diese zehn Seiten verteilt. Der zweite Vorteil liegt in einer verkürzten Prozessorzeit. Wenn der Mechanismus zur Bildung von Swap-Sätzen gut ist, verursacht das Einbringen eines Swap-Satzes mit beispielsweise zehn Seiten mehrere Seiten, die zusammen verwendet werden müssen, um in eine einzelne Operation eingebracht werden zu können, wodurch dem System der zusätzliche Aufwand erspart wird, Seitenfehler bei der Einbringung der anderen Seiten verwalten zu müssen.
- Fig. 3 ist ein Flußdiagramm des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung. Es wird darauf hingewiesen, daß das bevorzugte Ausführungsbeispiel viel von der Einfachheit des bisherigen Mechanismus GLRU besitzt. Es enthält jedoch ebenfalls einen Swapping-Mechanismus. Dieser Swapping- Mechanismus unterscheidet sich jedoch von den bisherigen Swapping-Mechanismen.
- Der erste Entscheidungsblock 100 ist eine Entscheidung, die über den Kerntabellenabtastmechanismus erfolgt. In anderen Worten, es ist keine Entscheidung, die Zeitscheiben, Transaktionen oder ähnliches in Betracht zieht. Die Entscheidung erfolgt auf der Basis, ob die Seite seit dem letzten mal, daß der Kerntabellenmechanismus bewirkt hat, daß die Seite untersucht wird, referenziert wurde. Wenn die Seite als referenziert markiert ist, behält das System die Seite und fährt fort. Wenn jedoch die Seite nicht markiert ist, wirft das System die Seite aus dem Speicher. Bevor dies geschieht, führt das System jedoch noch die weitere Anfrage 106 durch und stellt fest, ob die Seite jemals referenziert war, während sie resident war. Es wird daran erinnert, daß einige Seiten über den Weg des Swapping-Mechanismus in den Hauptspeicher gelangten, jedoch nicht, weil sie speziell an einem bestimmten Punkt benötigt wurden, sondern weil sie Bestandteil des Satzes waren, in dem eine erforderliche Seite existiert.
- Diese anhängenden Seiten können referenziert werden oder auch nicht, nachdem sie in den Hauptspeicher geladen wurden. Wird eine Seite gefunden, die noch nie referenziert wurde, kann sie nicht zum Swapping ausgewählt werden, und wird somit unter Verwendung bekannter Paging-Mechanismen einzeln zum Paging verfügbar gemacht. Der Befehl SET MINWS kann verwendet werden, um diese Entscheidung zu überlagern, und um dafür zu sorgen, daß diese anhängenden Seiten in die aktuellen Swap-Sätze mit eingeschlossen werden. Wurde die Seite jedoch referenziert, als sie resident war, wird sie in die Arbeitssatzliste des Benutzers gesetzt; damit wird die Absicht wiedergegeben, eine Gruppe dieser Seiten anzusammeln, um einen physikalischen Swap-Satz zu bilden.
- Dies wird in Kontrast gesetzt mit dem bisherigen LLRU, in dem Seiten am Ende einer Zeitscheibe auf die Arbeitssatzliste des Benutzers gesetzt werden (q drop). Die Seiten werden nachfolgend, wie erforderlich, gemäß der virtuellen Adresse, die vorteilhaft sein kann oder aber auch nicht, in Sätzen zusammengefaßt. Gemäß dem bevorzugten Ausführungsbeispiel ist die Zusammenfassung von Seiten in Swap-Sätzen über die Arbeitssatzliste weitgehend temporal, wodurch der Annahme nach Seiten zusammengefaßt werden, die mit hoher Wahrscheinlichkeit erneut zusammen referenziert werden.
- Die Seiten werden unter Verwendung bekannter Verfahren auf die Arbeitssatzliste des inhabenden Benutzers gesetzt. Es ist zu beachten, daß aus dieser Implementierung bedeutende Vorteile erwachsen. Zur Erstellung und Aufrechterhaltung von Arbeitssatzlisten und für das physikalische Swapping dieser Sätze stehen bekannte Mechanismen zur Verfügung. Beispielsweise umfaßt HPO solche Mechanismen. Nähere Einzelheiten siehe obige referenzierte IBM-Dokumente.
- Es ist ebenfalls zu berücksichtigen, daß im obigen Ausführungsbeispiel der vorliegenden Erfindung Swapping-Entscheidungen und referenzierte Entscheidungen separat sind, während im bisherigen LLRU mit Swapping-Mechanismus die Entscheidung im wesentlichen dieselbe war. Dies resultiert in einer merklichen Erhöhung der Ressourcen beim Paging, insbesondere bei solchen Paging-Operationen, die das Swapping miteinbeziehen. Wenn im bevorzugten Ausführungsbeispiel Seiten ausgewählt werden, ist die praktische Konsequenz, daß sie gebündelt werden und fast unmittelbar in den DASD ausgelagert werden. Wie oben bereits beschrieben wurde, könnten mit dem LLRU mit Swapping beträchtliche Ressourcen dabei verbraucht werden, Seiten für das Swapping zu kennzeichnen und sie auf eine Arbeitssatzliste zu setzen, während diese Seiten nach der Zeitscheibe, in der sie so verarbeitet wurden, schließlich niemals dem Swapping unterzogen werden können, weil die im Satz enthaltenen Seiten relativ bald vom System benötigt werden können. Dies wird durch das bevorzugte Ausführungsbeispiel der vorliegenden Erfindung praktisch ausgeschlossen, da die Zeit, in der die Seiten in einer Arbeitssatzliste resident sein müssen, erheblich reduziert wird.
- Dazu kommt, daß die Implementierung des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung, sobald das Prinzip der vorliegenden Erfindung verstanden wurde, eine einfache Sache ist. Dies liegt daran, daß die Komponentenmechanismen des Ausführungsbeispiels in der bisherigen Technologie vorhanden sind, beispielsweise der Kerntabellenabtastmechanismus, die Flush-Liste und die logischen Warteschlangen.
- Der Pseudocode für das bevorzugte Ausführungsbeispiel ist wie folgt:
- For each page in real memory do;
- if page not available for selection, skip it if page has been recently-referenced, then do;
- set page ever-referenced set page recently-unreferenced;
- skip this page (leave it resident);
- end;
- else (page not recently referenced) do;
- (note - page is "selected" and is to be moved out of real memory) if not ever-referenced then do;
- (we will not use this page on a swap set) if page changed, then (first write single page out, then freelist)
- otherwise, put directly on freelist.
- if freelist replenished, exit.
- end;
- if ever-referenced then do;
- if not a private user-page, single page as above logically swap this page, which collects it on a list of other pages logically swapped for the same user.
- if we now have a full swap set, or this is the last swappable page the user has, then do; physically swap one swap set to DASD;
- if freelist replenished, exit;
- end;
- end;
Claims (4)
1. Ein Verfahren zur Steuerung eines Computersystems mit
einem Hauptspeicher, einem Massenspeichermittel, einem
Prozessor und einem Steuersystem zur Steuerung der
Ausführung von Ausgaben für eine Mehrzahl an
Systemberechnungsgrößen, wobei das genannte Verfahren den Schritt der
Übertragung von Datenblöcken zwischen dem genannten
Massenspeichermittel und dem genannten Hauptspeicher umfaßt, um
Datenblöcke aufrechtzuerhalten, die für aktuelle
Computersystemoperationen im genannten Hauptspeicher erforderlich
sind, und des weiteren:
den Schritt zur Identifizierung von Datenblöcken im
genannten Hauptspeicher, die nicht innerhalb eines
vorbestimmten vorangegangenen Zeitabschnitts referenziert
wurden und zwar über das gesamte System hinweg;
charakterisiert durch die Schritte
der Gruppierung in auf die genannten Größen bezogene Sätze
der Datenblöcke aus den genannten identifizierten Blöcken,
die durch eine entsprechende der genannten Größen
referenziert wurden, seit sie zuletzt in den Hauptspeicher
geschrieben wurden; und
der Übertragung dieser Blocksätze in den genannten
Massenspeicher zum späteren Hereinladen als einen Satz, wenn ein
beliebiger der genannten Blöcke im genannten Satz im
genannten Speicher für die Verwendung durch das
Computersystem benötigt wird.
2. Ein Verfahren zur Steuerung eines Computersystems gemäß
Anspruch 1, wobei der genannte vorbestimmte Zeitabschnitt
je nach Systemanfrage variiert.
3. Ein Verfahren gemäß Anspruch 1 oder 2 zur Steuerung eines
Computersystems, in dem der genannte Hauptspeicher in eine
Mehrzahl an Seiten unterteilt ist, wobei jeder der
genannten Datenblöcke eine Datenseite umfaßt.
4. Ein Verfahren zur Steuerung eines Computersystems gemäß
allen vorangegangenen Ansprüchen, wobei der Schritt zur
Identifikation der Blöcke folgendes umfaßt:
die zyklische Untersuchung von Speicherseiten nach realen
Adressen, um diejenigen Seiten zu identifizieren, die seit
der letzten Untersuchung dieser Seiten referenziert
wurden; und der Schritt der Gruppierung der Blöcke umfaßt
das Setzen ausgewählter, identifizierter Datenseiten, die
durch eine der genannten Größen referenziert wurden, seit
sie zuletzt in den Hauptspeicher geschrieben wurden, in
eine zu dieser Größe gehörende Arbeitssatzliste,
wobei die Sätze zum späteren Hereinladen in den Speicher
übertragen werden, wenn soviele der genannten Seiten, um
einen Satz zu bilden, in den genannten Arbeitssatz gesetzt
wurden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US1991687A | 1987-02-25 | 1987-02-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3888554D1 DE3888554D1 (de) | 1994-04-28 |
DE3888554T2 true DE3888554T2 (de) | 1994-10-27 |
Family
ID=21795738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3888554T Expired - Fee Related DE3888554T2 (de) | 1987-02-25 | 1988-01-15 | Verfahren zur Steuerung eines Computers zur Übertragung von Datenblöcken zwischen einem Massenspeicher und einem Speicher. |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0280019B1 (de) |
JP (1) | JPS63211041A (de) |
DE (1) | DE3888554T2 (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3226525B2 (ja) * | 1988-10-07 | 2001-11-05 | 株式会社日立製作所 | 主記憶管理方法 |
JP3119919B2 (ja) * | 1991-12-11 | 2000-12-25 | 富士通株式会社 | 計算機システム |
US5423017A (en) * | 1992-04-22 | 1995-06-06 | International Business Machines Corporation | Method of and apparatus for increasing efficiency of ager |
JP4036992B2 (ja) * | 1998-12-17 | 2008-01-23 | 富士通株式会社 | キャッシュモジュール間でデータを動的に管理するキャッシュ制御装置および方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS595480A (ja) * | 1982-06-30 | 1984-01-12 | Fujitsu Ltd | グル−プ・ペ−ジ管理処理方式 |
JPS62263551A (ja) * | 1986-05-09 | 1987-11-16 | Nec Corp | 主記憶ペ−ジリプレ−ス方式 |
-
1987
- 1987-11-17 JP JP62288622A patent/JPS63211041A/ja active Granted
-
1988
- 1988-01-15 EP EP88100513A patent/EP0280019B1/de not_active Expired - Lifetime
- 1988-01-15 DE DE3888554T patent/DE3888554T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0522261B2 (de) | 1993-03-29 |
DE3888554D1 (de) | 1994-04-28 |
EP0280019A3 (de) | 1991-01-02 |
EP0280019A2 (de) | 1988-08-31 |
EP0280019B1 (de) | 1994-03-23 |
JPS63211041A (ja) | 1988-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3750337T2 (de) | Behandlung von grossen Bereichen virtueller Speicher. | |
DE3884504T2 (de) | Eingabe-Dienstsubsystem zur dynamischer Arbeitsplanung für ein Computersystem. | |
DE69722979T2 (de) | Betriebsmittelverwaltungsverfahren und -einrichtung eines Multitasking-Datenverarbeitungssystems | |
DE69211231T2 (de) | Verfahren und Vorrichtung zur Verwaltung eines gemeinsam genutzten Speichers ausserhalb des Bildschirms | |
DE3586359T2 (de) | System und verfahren zum durchfuehren von ein-/ausgabeoperationen fuer ein virtuelles system. | |
DE69715328T2 (de) | System und Verfahren zur Parallelisierung der Durchführung von Speichertransaktionen mittels mehreren Speichermodellen | |
DE69604734T2 (de) | Client-Server-Computersystem und Verfahren zum Verwenden eines lokalen Plattenlaufwerks als Daten-Cache | |
DE68927375T2 (de) | Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem | |
DE69514165T2 (de) | Mehrstufige Cache-Speicheranordnung | |
DE112010004947B4 (de) | Wiederherstellung einer vollständigen Systemsicherung und inkrementeller Sicherungen unter Verwendung von mehreren gleichzeitigen Datenströmen von Einheiten | |
DE69129534T2 (de) | Betriebsmittelverwaltung in einem mehrbetriebsmittelsystem | |
DE69327387T2 (de) | An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung | |
DE69622647T2 (de) | Wiederherstellbares Plattensteuersystem mit nichtflüchtigem Speicher | |
DE69606648T2 (de) | Verfahren und vorrichtung zur ablauffolgen von multiprozessoren mit starker affinität | |
DE69329047T2 (de) | Verfahren und System zur Verminderung der Speicherzuordnungsanforderungen | |
DE3587398T2 (de) | Datenspeicherhierarchie und deren Betriebsverfahren. | |
DE112010004931B4 (de) | Mehrphasige Wiederherstellung von Dateisystemen mit Selektiver Bedarfsweiser Verfügbarkeit von Daten | |
DE69225195T2 (de) | Datengesteuertes Verarbeitungssystem | |
DE69710665T2 (de) | Methode und Apparat zur Speicherverwaltung | |
DE68916853T2 (de) | Unabhängige Programmlader für virtuelle Maschinenarchitektur. | |
DE60001170T2 (de) | Betriebsystemsseitenplazierung zum maximieren der cachedatenwiederverwendung | |
DE69325566T2 (de) | Verfahren und System zur Befehlszuteilung in einem superskalaren Prozessorsystem mit unabhängig zugänglichem Zwischenspeicher | |
DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
DE202012013432U1 (de) | Speichern von Daten auf Speicherknoten | |
DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |