Speicherverwaltung (Betriebssysteme)
Im Betriebssysteme, Speicherverwaltung ist die Funktion für die Verwaltung des Computers verantwortlich Hauptspeicher.[1]: 105–208
Die Speicherverwaltungsfunktion verfolgt entweder den Status jedes Speicherorts zugewiesen oder frei. Es bestimmt, wie das Gedächtnis zwischen konkurrierenden Prozessen zugewiesen wird und entscheidet, welcher Gedächtnis, wenn sie es erhalten, und wie viel sie erlaubt sind. Wenn der Speicher zugewiesen wird, bestimmt er, welche Speicherorte zugewiesen werden. Es verfolgt, wenn der Speicher befreit wird oder nicht zugewiesen und aktualisiert den Status.
Dies unterscheidet sich von AnwendungsspeicherverwaltungSo verwaltet ein Prozess den vom Betriebssystem zugewiesenen Speicher.
Gedächtnisverwaltungstechniken
Einzel zusammenhängender Zuweisung
Einzelzuweisung ist die einfachste Gedächtnisverwaltungstechnik. Der gesamte Speicher des Computers, normalerweise mit Ausnahme eines kleinen Teils, der dem Betriebssystem reserviert ist, steht einer einzigen Anwendung zur Verfügung. MS-DOS ist ein Beispiel für ein System, das auf diese Weise Speicher zuteilt. Ein Eingebettetes System Ausführen einer einzelnen Anwendung kann diese Technik auch verwenden.
Ein System, das ein einzelner zusammenhängender Allokation verwendet Multitasking durch tauschen Der Speicherinhalt, um zwischen den Benutzern zu wechseln. Frühe Versionen der MUSIK Das Betriebssystem verwendete diese Technik.
Partitionierte Zuordnung
Partitionierte Zuordnung Das Primärgedächtnis unterteilt in mehrere Speicherpartitionen, normalerweise zusammenhängende Speicherbereiche. Jede Partition kann alle Informationen für eine bestimmte enthalten Arbeit oder Aufgabe. Die Speicherverwaltung besteht darin, eine Partition für einen Job zuzuweisen, wenn sie beginnt, und sie zu verkünden, wenn der Job endet.
Eine partitionierte Zuordnung erfordert in der Regel einen Hardwareunterstützung, um zu verhindern, dass sich die Jobs gegenseitig oder das Betriebssystem stören. Das IBM System/360 verwendet a Schloss und Schlüssel Technik. Andere Systeme verwendet Basis und Grenzen Register, die die Grenzen der Partition enthielten und ungültige Zugriffe markierten. Das Univac 1108 Speicherlimits Register hatte separate Basis-/gebundene Sets für Anweisungen und Daten. Das System nutzte die Vorteile Gedächtnisschiffung zu platzieren, was genannt wurde Ich Bank und d Bank in separaten Speichermodulen.[2]
Partitionen können entweder sein statisch, das ist definiert bei Erstprogrammlast (IPL) oder Bootzeitoder von der Computer-Operator, oder dynamischDas heißt, automatisch für einen bestimmten Job erstellt. IBM System/360 Betriebssystem Multiprogrammierung mit einer festen Anzahl von Aufgaben (MFT) ist ein Beispiel für statische Aufteilung und Multiprogrammierung mit einer variablen Anzahl von Aufgaben (MVT) ist ein Beispiel für die Dynamik. MVT und Nachfolger verwenden den Begriff Region dynamische Partitionen von statischen in anderen Systemen zu unterscheiden.[3]
Partitionen können sein Umlebbar Hardware verwenden Typed Memory, wie Burroughs Corporation B5500, oder Basis- und Grenzen Register wie die PDP-10 oder GE-635. Umlaufbare Partitionen können sein verdichtet größere Stücke von zusammenhängendem physikalischem Gedächtnis bereitzustellen. Die Verdichtung bewegt sich "In-Use" -Rem Speicherbereiche, um "Löcher" oder nicht verwendete Speicherbereiche zu beseitigen, die durch Prozessabschluss verursacht werden, um größere, zusammenhängende freie Bereiche zu erzeugen.[4]
Einige Systeme erlauben Partitionen ausgetauscht zu Zweitlager zusätzlichen Speicher freigeben. Frühe Versionen von IBMs Zeitfreigabeoption (TSO) tauschte Benutzer ein und aus Zeitteilung Partitionen.[5][a]
PAGED MEMORE -Verwaltung
Ausgebildete Zuteilung Unterteilt den primären Speicher des Computers in feste Einheiten fester Größe, die aufgerufen werden Seitenrahmenund die virtuelle des Programms Adressraum hinein Seiten der gleichen Größe. Die Hardware Speicherverwaltungseinheit Karten Seiten zu Rahmen. Der physische Speicher kann Seitenbasis zugewiesen werden, während der Adressraum zusammenhängend erscheint.
In der Regel wird jeder Job mit dem PAGED -Speichermanagement in seinem eigenen Adressraum ausgeführt. Es gibt jedoch einige Einzeladressraum Betriebssysteme Dadurch werden alle Prozesse innerhalb eines einzelnen Adressraums ausgeführt, wie z. Ibm i, was alle Prozesse innerhalb eines großen Adressraums und IBM ausführt OS/VS2 (SVS), was alle Jobs in einem einzigen 16mib virtuellen Adressraum ausführte.
PAGE -Speicher kann sein nachgefragt Wenn das System die Seiten wie erforderlich zwischen primärem und sekundärem Speicher bewegen kann.
Segmentierte Speicherverwaltung
Segmentierter Speicher ist die einzige Speicherverwaltungstechnik, die dem Programm des Benutzers nicht "linear und zusammenhängender Adressraum" bietet.[1]: 165 Segmente sind Speicherbereiche, die normalerweise einer logischen Gruppierung von Informationen wie einer Codeprozedur oder einem Datenarray entsprechen. Segmente erfordern Hardwareunterstützung in Form von a Segmenttabelle Dies enthält normalerweise die physische Adresse des Segments im Speicher, seine Größe und andere Daten wie Zugriffsschutzbits und Status (ausgetauscht, ausgetauscht usw.)
Die Segmentierung ermöglicht einen besseren Zugriffsschutz als andere Schemata, da Speicherreferenzen relativ zu einem bestimmten Segment sind und die Hardware nicht erlaubt, dass die Anwendung Referenzspeicher nicht für dieses Segment definiert ist.
Es ist möglich, eine Segmentierung mit oder ohne Paging zu implementieren. Ohne Paging -Unterstützung ist das Segment die physische Einheit bei Bedarf ein und aus dem Speicher ausgetauscht. Bei der Paging -Unterstützung sind die Seiten normalerweise die Einheit des Austauschs und der Segmentierung, nur ein zusätzliches Sicherheitsniveau.
Adressen in einem segmentierten System bestehen normalerweise aus der Segment -ID und einem Offset in Bezug auf die Segmentbasisadresse, die als Offset Null definiert sind.
Der Intel IA-32 (x86) Die Architektur ermöglicht es einem Prozess, bis zu 16.383 Segmente von jeweils bis zu 4Gib zu haben. IA-32-Segmente sind Unterteilungen des Computers linearer Adressraum, der virtuelle Adressraum der Paging -Hardware.[6]
Das Mehrheit Das Betriebssystem ist wahrscheinlich das bekannteste System, das segmentierten Speicher implementiert. Multics -Segmente sind Unterteilungen des Computers physikalischer Speicher von bis zu 256 Seiten, wobei jede Seite 1k 36-Bit-Wörter in Größe ist, was zu einer maximalen Segmentgröße von 1 MIB (mit 9-Bit-Bytes, wie in mehreren Mehrwertstücken) führt. Ein Prozess könnte bis zu 4046 Segmente haben.[7]
Rollout/Rollin
Rollout/Rollin (RO/RI) ist eine Computer-Betriebs-Speicherverwaltungstechnik des Computer-Betriebssystems, bei der das gesamte Nicht-Nichtsgeteilt Code und Daten eines laufenden Programms werden darauf ausgetauscht Hilfsspeicher (Scheibe oder Trommel) frei Hauptspeicher für eine andere Aufgabe. Programme können "durch Nachfragende oder ... wenn Sie auf ein langes Ereignis warten" eingeführt werden.[8] Rollout/Rollin wurde häufig in verwendet Zeitteilung Systeme,[9] Wo die "Denkenszeit" des Benutzers relativ lang war, im Vergleich zu Zeit für den Tausch.
nicht wie Virtueller Speicher- Rollout/Rollin benötigt keine spezielle Speicherverwaltungshardware. Es sei denn, das System verfügt über Umzugshardware wie a Speicherkarte oder Basis und Grenzen Register, das Programm muss wieder in seine ursprünglichen Speicherorte eingeführt werden. Rollout/Rollin wurde weitgehend durch virtuelles Gedächtnis ersetzt.
Rollout/Rollin war eine optionale Funktion von OS/360 -Multiprogrammierung mit einer variablen Anzahl von Aufgaben (MVT)
Rollout/Rollin ermöglicht die vorübergehende, dynamische Erweiterung eines bestimmten Jobs über seine ursprünglich angegebene Region hinaus. Wenn ein Job mehr Platz benötigt, versucht Rollout/Rollin, einen nicht zugewiesenen Speicher für die Verwendung des Jobs zu erhalten. Wenn es keinen solchen nicht zugewiesenen Speicher gibt, wird ein anderer Auftrag eingeführt - d. H. In Hilfspeicher übertragen - damit seine Region vom ersten Job verwendet werden kann. Bei der Veröffentlichung des ersten Auftrags ist dieser zusätzliche Speicher erneut verfügbar, entweder (1) als nicht zugewiesener Speicher, in diesem Fall, wenn dies seine Quelle war, oder (2), um den Job wieder in den Hauptspeicher (gerollt) zu erhalten.[10]
In OS/360 wurde Rollout/Rollin nur für Chargenjobs verwendet, und Rollin tritt erst auf, wenn der Job, der die Region ausleiht.
Siehe auch
Anmerkungen
- ^ Bekannt als TSO -Regionen
Verweise
- ^ a b Madnick, Stuart; Donovan, John (1974). Betriebssysteme. McGraw-Hill Book Company. ISBN 0-07-039455-5.
- ^ Sperry Rand (1970). UNIVAC 1108 Multi-Proprozessor-System: Systembeschreibung (PDF). p. 3-3.
- ^ IBM Corporation (1970). IBM System/360 Betriebssystem: Konzepte und Einrichtungen (PDF). p. 73.
- ^ Samanta, D. (2004). Klassische Datenstrukturen. PHI -Lernen Pvt. Ltd. p. 94. ISBN 8120318749.
- ^ IBM Corporation (1972). IBM System/360 Betriebssystemzeit Sharing Option Anleitung (PDF). p. 10.(GC28-6698-5)
- ^ Intel Corporation. Handbuch des IA-32 Intel Architecture Software Developer Volume 1: Basisarchitektur.
- ^ Grün, Paul. "Mehrfach virtuelles Gedächtnis - Tutorial und Reflexionen". Archiviert von das Original Am 2001-03-05. Abgerufen 9. Mai, 2012.
- ^ Walraet, Bob (2014). Programmierung, die unmögliche Herausforderung. Elsevier. p. 124. ISBN 978-0-444-87128-2. Abgerufen 24. August, 2018.
- ^ "Rollin/Rollout" Internationales Symposium zur Modellierung, Messung und Bewertung von Computerleistung. Verband für Rechenmaschinen. 29. bis 31. März 1976. p. 137. Abgerufen 24. August, 2018.
- ^ IBM Corporation (Juni 1970). IBM System/360 Betriebssystem:. Konzepte und Einrichtungen (PDF). p. 55. Abgerufen 24. August, 2018.