3 Hauptspeicherverwaltung

Größe: px
Ab Seite anzeigen:

Download "3 Hauptspeicherverwaltung"

Transkript

1 Betriebssysteme Folie Hauptspeicherverwaltung zwei Adressräume werden unterschieden der logische Adressraum (virtuelle Adressraum) ist der Adressraum, der dem Programm zur Verfügung steht Größe des logischen Adressraums abhängig von den Komponenten der Programmentwicklungsumgebung 16-, 32- oder 64-Bit logische Adressen im Allgemeinen ein linearer Adressraum der physikalische Adressraum ist der Adressraum, der als Hauptspeicher vorhanden ist Größe abhängig von der Hardware des jeweiligen Rechners maximale Größe ist durch Anzahl Adressleitungen festgelegt reale Größe ist durch den aktuellen Speicherausbau gegeben linearer oder segmentierter Adressraum

2 Betriebssysteme Folie 3-2 Ziele der Hauptspeicherverwaltung effiziente Verwaltung des Speichers großen logischen Adressraum bei kleinem physikalischem Hauptspeicher unterstützen (Falls ein Programm größer ist als der zur Verfügung stehende Hauptspeicher, dürfen nur die notwendigen Teile des Programms in den Hauptspeicher geladen werden.) viele Programme sollen gleichzeitig im Hauptspeicher gehalten werden und diesen konfliktfrei nutzen können (Mehrprogrammbetrieb) (Falls der Hauptspeicher vollständig belegt ist, müssen ggf. einige Programme temporär auf die Festplatte ausgelagert werden (Swapping), wenn ein neues Programm gestartet werden soll. Alternativ können auch Programmteile ausgelagert werden, falls das Betriebssystem virtuellen Speicher unterstützt. Swapping ist extrem teuer, da die Zugriffe auf eine Festplatte um Größenordnungen langsamer erfolgen als die auf den Hauptspeicher.) gute Ausnutzung des Speichers (Im Allgemeinen werden keine vollständigen Programme in den Hauptspeicher geladen, sondern nur die augenblicklich benötigten Programmteile. Falls ein Programm von mehreren Benutzern verwendet wird, sollte der Code nur einmal im Hauptspeicher stehen.) zu lösende Probleme Wie kann der Hauptspeicher verwaltet werden? Welche Teile eines Programms werden im Hauptspeicher gehalten? Welche Speicherbereiche dürfen bei Speicherplatzmangel ausgelagert (überschrieben) werden?

3 Betriebssysteme Folie 3-3 Umwandlung von logischen Namen in Speicheradressen Programm (logische Namen) Compiler/Assembler modul-relative Adressen Binder "virtuelle" Adressen (logische Adressen) Lader und/oder dynamische Adressumsetzung physikalische Adressen (reale Adressen) Compiler/Assembler erzeugt aus den logischen Namen/symbolischen Adressen der verschiedenen Programm-Moduln modulrelative Adressen (jedes Objekt-Modul beginnt ab Adresse 0) Binder (linker, linking loader, linkage editor) verschiebt Teiladressräume der Moduln, so dass sie sich nicht mehr überschneiden löst Querbezüge zu anderen Objekt-Moduln auf fügt erforderliche Funktionen aus den Standard-Bibliotheken ein (z. B. für die Ein-/Ausgabe) linking loader lädt das Ergebnis seiner Arbeit sofort in den Hauptspeicher

4 Betriebssysteme Folie 3-4 linkage editor legt das Ergebnis seiner Arbeit auf dem Hintergrundspeicher in einer Datei ab, von der es dann geladen werden kann erstellt ausführbares Programm mit einem einzigen Adressraum, dessen Adressen im Allgemeinen noch verschiebbar sind Lader lädt ein ausführbares Programm in den Hauptspeicher (statische Adressumsetzung) absolute loader lädt das Programm genau an die Stelle des Hauptspeichers, die im Programm selbst definiert ist (absolute Adressen) relocating loader kann das Programm in beliebige freie Stellen des Hauptspeichers laden (Programm muss verschiebbare Adressen enthalten) dynamische Adressumsetzung Verwaltung von virtuellem Speicher (virtuelle) Adressen des Programms werden erst zur Laufzeit in physikalische Adressen umgewandelt ( Programme sind von ihrer Lage im Hauptspeicher unabhängig; notwendig für effizienten Mehrprogrammbetrieb)

5 Betriebssysteme Folie 3-5 Umwandlung der relativen Adressen in physikalische Adressen kann also zu drei unterschiedlichen Zeitpunkten erfolgen erstens sehr früh durch den Binder zweitens zur Ladezeit des Programms durch den Lader drittens zur Laufzeit des Programms durch Verfahren zur Verwaltung von virtuellem Speicher Aufgabe der Speicherverwaltung Aufgaben der Speicherverwaltung dynamische Adressumsetzung Bereitstellung von Speicherbereichen für gemeinsam genutzte Programme (Editor, Compiler) gemeinsam genutzte Daten für eine Kommunikation zwischen verschiedenen Prozessen (Interprozess- Kommunikation) Schutz der Daten und Programme vor fehlerhaften/unberechtigten Zugriffen (im Allgemeinen wird sie hierbei durch die Hardware unterstützt) (dynamische) Speicherzuteilung an die Prozesse

6 Betriebssysteme Folie 3-6 heutige Rechner besitzen häufig eine mehrstufige Speicherhierarchie Primary storage cpu register 1st level cache 2nd level cache 3rd level cache decreasing access times decreasing storage capacity increasing cost per bit main memory Secondary storage hard disk storage Off-line storage CD, CD-RW, DVD, DVD-RW, floppy disk, flash memory, Tertiary storage tape storage Network storage robotic tape library NAS SAN NFS- Server robotic optical disk library

7 Betriebssysteme Folie 3-7 Primärspeicher früher: nur Hauptspeicher heute: Hauptspeicher, Pufferspeicher und Prozessor-Register flüchtiger Speicher (volatile memory) (Speicherinhalt geht verloren, wenn die Stromversorgung abgeschaltet wird) meistens dynamischer Speicher (dynamic memory) (Speicherinhalt geht verloren, wenn die gespeicherte Information nicht zyklisch aufgefrischt (memory refresh cycle) wird) Prozessor-Register hier werden (fast) alle Operationen ausgeführt grobe Einteilung Adress-Register (General Purpose Register) Daten-Register (General Purpose Register) Register für Gleitkomma-Arithmetik Register für Multimedia-Anwendungen Register zur Speicher- und Prozessverwaltung Befehlszähler (Program Counter, Instruction Pointer) Adress-Register für Stapelspeicher (Stack Pointer) Programm-Zustands-Register (Flag Register) diverse Prozessor-Steuerungs- und Zustands-Register

8 Betriebssysteme Folie 3-8 Pufferspeicher (Cache) im Allgemeinen statischer Halbleiterspeicher (sehr schnell) Verwaltung erfolgt normalerweise direkt durch Hardware fehlt bei sehr einfachen Prozessoren 1st level Cache Speicherkapazität: einige Kilobyte meistens aufgeteilt in instruction cache und data cache geringfügig langsamer als Prozessor-Register 2nd level Cache Speicherkapazität: bis zu wenigen Megabyte manchmal neben Prozessor-Chip im selben Gehäuse realisiert (sonst extern realisiert) langsamer als 1st level cache 3rd level Cache (optional bei manchen Prozessoren) Speicherkapazität: einige Megabyte meistens extern realisiert Translation Lookaside Buffer (TLB) für Adressumsetzung der Speicherverwaltung meistens aufgeteilt in instruction TLB und data TLB unterstützt im Allgemeinen verschiedene Blockgrößen meistens als Assoziativspeicher oder n-wege-assoziativspeicher auf dem Prozessor-Chip realisiert

9 Betriebssysteme Folie 3-9 Hauptspeicher andere Namen: Arbeitsspeicher, Zentralspeicher (früher: Kernspeicher) Halbleiterspeicher mit dynamischen Zellen (früher: Relais, Röhren, Magnettrommelspeicher, Magnetkernspeicher) typische Speicherkapazität: abhängig vom Rechnertyp bis zu einigen Kilobyte bei Chipkarten und ähnlichem bis zu einigen Megabyte bei Spezialrechnern bis zu einigen Gigabyte bei Arbeitsplatzrechnern bis zu einigen 100 Gigabyte bei Servern bis zu einigen Terabyte bei Höchstleistungsrechnern typische Zugriffszeiten: einige Mikro- bis Nanosekunden wahlfreier Zugriff enthält die Programme, die gerade ausgeführt werden und deren Daten alle Adressen des Hauptspeichers können in der Maschinensprache direkt adressiert werden Maschinensprache enthält Befehle zum Datenaustausch zwischen Prozessor-Registern und Hauptspeicher einige Informationen des Hauptspeichers werden transparent im Pufferspeicher bzw. in Pufferspeichern dupliziert kürzere Zugriffszeiten Leistungssteigerung

10 Betriebssysteme Folie 3-10 Sekundärspeicher (Hintergrundspeicher, Massenspeicher) im Allgemeinen werden hier Festplattenspeicher benutzt (Für große Datenbestände werden meistens RAID-Systeme eingesetzt.) nicht flüchtiger Speicher (non-volatile memory) (geeignet für Langzeit-Datenhaltung) zyklischer, quasi-wahlfreier Zugriff Zugriff erfolgt über Ein-/Ausgaberoutinen des Betriebssystems (Die Daten können in der Maschinensprache nicht direkt adressiert werden. Sie werden über ein Dateisystem strukturiert.) wird als virtueller Hauptspeicher benutzt (Unter UNIX wird hier im Allgemeinen eine sogenannte Swap -Partition (manchmal auch nur eine Swap -Datei) angelegt und unter Microsoft Windows die Datei pagefile.sys. Die Systemleistung wird deutlich reduziert, wenn das Betriebssystem eine schlechte Hauptspeicherverwaltung hat und diese Eigenschaft intensiv nutzt.) kann die virtuellen Adressräume der Programme, die gerade ausgeführt werden und deren Daten enthalten (Siehe auch die Grafiken zur CPU-Auslastung im Punkt Scheduling des Kapitels 2. Dort wird auch die Benutzung der Auslagerungsdatei unter Windows dargstellt.) typische Speicherkapazität: abhängig vom Einsatzgebiet 0 GB bei festplattenlosen Netzwerk-Computern bis zu einigen 100 Gigabyte bei Arbeitsplatzrechnern bis zu einigen Terabyte bei Servern bis zu einigen 10 Terabyte bei Höchstleistungsrechnern typische Zugriffszeiten: einige Millisekunden (Also etwa mal langsamer als der Hauptspeicher.)

11 Betriebssysteme Folie 3-11 Tertiärspeicher (Archivspeicher) früher: Magnetbandgeräte und Magnetbänder heute: im Allgemeinen Magnetbandkassettengeräte oder -roboter und Magnetbandkassetten sequentieller Zugriff Zugriff erfolgt über Ein-/Ausgaberoutinen des Betriebssystems Lesen/Schreiben erfolgt im Start-/Stopp-Betrieb (Zwischen Blöcken muss es Lücken geben, die groß genug sind, um das Band von 0 auf Arbeitsgeschwindigkeit zu beschleunigen. Wenn ein Block geschrieben wird, werden alle nachfolgenden Daten im Allgemeinen automatisch ungültig.) typische Speicherkapazität: abhängig vom Einsatzgebiet bis zu einigen 100 Gigabyte bei Arbeitsplatzrechnern (Die meisten Arbeitsplatzrechner haben keinen Tertiärspeicher! Falls ein Arbeitsplatzrechner ein Magnetbandkassettengerät besitzt, werden die Bänder im Allgemeinen, so wie früher, manuell gewechselt.) bis zu einigen Terabyte bei Servern (Normalerweise wird ein Robotersystem eingesetzt, das z. B. für eine automatische Datensicherung (Backup) benutzt wird.) bis zu einigen Petabyte bei Höchstleistungsrechnern (Es wird immer ein Robotersystem eingesetzt, das z. B. für die Langzeitarchivierung von Daten aus Experimenten benutzt wird.) typische Zugriffszeiten: einige Sekunden bis mehrere Minuten (Die Zeit hängt davon ab, ob sich das Band bereits in einem Bandgerät befindet oder ob der Roboter zuerst ein Gerät frei machen muss, bevor er das gewünschte Band holen und einlegen kann. Danach hängt die Zeit noch davon ab, wie weit das Band umgespult werden muss (sequentieller Zugriff), bis der gewünschte Block gelesen bzw. geschrieben werden kann.)

12 Betriebssysteme Folie 3-12 Off-line-Speicher Speichermedium kann sehr einfach entfernt/ausgetauscht werden falls ein Tertiärspeicher manuell bedient wird, gehört er auch in diese Speicherkategorie sequentieller oder quasi-wahlfreier Zugriff (abhängig vom Medium) einige Einsatzgebiete Datenübertragung zwischen verschiedenen Systemen Archivierung kleinerer Datenbestände Vertrieb und Installation von Software inkl. Betriebssystemen Start eines Betriebssystems von einer Live-CD/DVD (Das System kann ohne Installation auf der Festplatte gestartet und benutzt werden. Teile, die zur Laufzeit des Systems geändert werden müssen, werden in einer sogenannten RAM-Disk gespeichert. Mit Hilfe eines speziellen Dateisystems (unionfs) werden die Verzeichnisse und Dateien der CD/DVD und der RAM-Disk in einem einheitlichen Dateisystem verwaltet, so dass das Betriebssystem nicht sieht, welche Datei wo gespeichert ist. Das Verfahren wird z. B. bei Knoppix eingesetzt.) CD/DVD-Bibliotheken (Bücher/Kataloge, Zeitschriften, Gesetzestexte/Urteile, Software-Sammlungen, Bilder/Grafiken usw.)

13 Betriebssysteme Folie 3-13 Netzwerk-Speicher jede Art von Massenspeicher, auf den über ein Rechnernetzwerk zugegriffen wird Informationen können zentral gehalten und verwaltet werden keine Duplikate z. B. Benutzerverzeichnisse klassische Netzwerkspeicher NFS-Server (Network File System) im UNIX-Umfeld Benutzer- bzw. -Verzeichnisse auf Novell-Netwareoder Windows-Servern moderne Varianten NAS (Network Attached Storage) SAN (Storage Area Network) Robotersysteme für Magnetbandkassetten oder optische Speichermedien würden im Allgemeinen ebenfalls als Netzwerkspeicher zur Verfügung gestellt werden

14 Betriebssysteme Folie Direkte Verwaltung des Hauptspeichers einfache Systeme (z. B. Spezialrechner, Prozessor-Chipkarten, ) sie benötigen keine aufwendige Speicherverwaltung Aufteilung des Hauptspeichers bei diesen Rechnern nicht benutzter Speicher Anwendungsprogramm Betriebssystem Eigenschaften der Programme bei direkter Speicherverwaltung sie verwenden eine absolute oder relative Adressierung die Programmgröße ist auf den verfügbaren Hauptspeicher beschränkt

15 Betriebssysteme Folie 3-15 Laden eines Programms mit absoluten Adressen (der Ladevorgang ist in diesem Fall sehr einfach und schnell, da der Lader das Programm nur in den entsprechenden Bereich des Hauptspeichers kopieren und starten muss) logischer Adressraum JUMP 4000 LOAD A,#3 Lader physikalischer Adressraum (Hauptspeicher) JUMP 4000 LOAD A,#3 das Programm ist nur an einer Stelle des Hauptspeichers lauffähig es kann nicht auf einem anderen Rechner laufen, der eine andere Speicherkonfiguration verwendet die absolute Adressierung ist nicht für einen Mehrprogrammbetrieb geeignet, da dann u. U. alle Programme im gleichen Adressbereich ablaufen müssen ein Prozesswechsel wäre immer mit einem Austausch des Programms im Hauptspeicher verbunden, was sehr ineffizient ist die absolute Adressierung wird heute nur in Ausnahmefällen verwendet, wie z. B. zur Initialisierung einer Unterbrechungsvektortabelle, die an einer festen Speicheradresse stehen muss

16 Betriebssysteme Folie 3-16 Laden eines Programms mit verschiebbaren Adressen (bei der relativen Adressierung erzeugt der Binder im Allgemeinen ein lauffähiges Programm mit verschiebbaren Adressen, das mit der Adresse 0 beginnt und eine Tabelle, in der alle Stellen des Programms aufgelistet werden, die modifiziert werden müssen, wenn das Programm nicht ab Adresse 0 des Hauptspeichers geladen wird) logischer Adressraum JUMP 3000 LOAD A,#3 Lader physikalischer Adressraum (Hauptspeicher) JUMP 8000 LOAD A,#3 der Lader modifiziert automatisch alle Adressen, die verschoben werden müssen, indem er während des Ladevorgangs die Startadresse des Programms zu den verschiebbaren Adressen addiert das Programm kann jetzt an jeder Stelle des Hauptspeichers ausgeführt werden (jede Startadresse benötigt einen eigenen Ladevorgang)

17 Betriebssysteme Folie 3-17 Adressbindung zur Laufzeit (damit die Programme zur Laufzeit verschoben werden können, dürfen die Programmadressen auch erst zur Laufzeit in physikalische Adressen umgesetzt werden) logischer Adressraum JUMP 3000 LOAD A,#3 Lader Basisregister physikalischer Adressraum (Hauptspeicher) JUMP 3000 LOAD A,#3 Anfangsadresse des Programms im Hauptspeicher wird in ein spezielles Register des Prozessors geladen Programm verwendet weiterhin die relative Adressierung jede Programmadresse wird automatisch durch die Hardware modifiziert, indem zur Adresse der Anweisung die Adresse des Basisregisters addiert wird zur Laufzeit wird immer korrekte Speicheradresse benutzt falls das Programm im Speicher an eine andere Adresse verschoben werden muss, muss nur noch das Basisregister modifiziert werden und das Programm ist wieder lauffähig die Verfahren zur direkten Verwaltung des Hauptspeichers haben viele Nachteile und werden heute kaum verwendet wesentliche Nachteile max. Programmgröße auf Größe des Hauptspeichers beschränkt ggf. Umspeichern ganzer Programme

18 Betriebssysteme Folie Verwaltung von virtuellem Speicher virtueller Hauptspeicher ist im Allgemeinen wesentlich größer als der tatsächlich verfügbare Hauptspeicher realer Hauptspeicher kann nur Teile des Programms aufnehmen virtueller Hauptspeicher wird über Hintergrundspeicher realisiert zur Laufzeit des Programms müssen Teile des Programms zwischen Haupt- und Hintergrundspeicher ausgetauscht werden Programm benutzt nur virtuellen Speicher und alle Programmadressen werden als virtuelle Adressen bezeichnet ein Prozess weiß nicht, ob sich eine adressierte Speicherzelle bereits im Hauptspeicher oder noch auf dem Hintergrundspeicher befindet virtuelle Adressen werden mit Hilfe einer Abbildungsfunktion auf physikalische Adressen des Hauptspeichers umgesetzt Adressumsetzung erfolgt sehr schnell, damit möglichst wenig Rechenleistung verloren geht Speicherverwaltungsverfahren vermeiden ein Umkopieren von Programmen im Hauptspeicher Speicherverwaltungsmechanismen 1) Seitenaustauschverfahren (paging) (Speicher wird in Blöcke fester Größe aufgeteilt) 2) Segmentierung (segmentation) (Speicher wird in Blöcke variabler Größe aufgeteilt) 3) Segment-/Seitenverfahren (Kombination der beiden Verfahren)

19 Betriebssysteme Folie 3-19 Strategien für die Hauptspeicherverwaltung 1) Einlagerungsstrategien legen fest, was in den Hauptspeicher transportiert wird Typen Einlagerung auf Anforderung (demand fetch strategies) (Programmstück oder die nächsten Daten werden genau dann in den Hauptspeicher transportiert, wenn sie vom Programm angesprochen werden) vorausschauende Einlagerung (anticipatory fetch strategies) (kann u. U. eine Leistungssteigerung bringen, wenn der Algorithmus richtig in die Zukunft schaut und die Teile in den Hauptspeicher einlagert, die das aktive Programm als nächstes benötigt) 2) Platzierungsstrategien (placement policy, placement strategy) legen fest, wo etwas eingelagert wird 3) Ersetzungsstrategien (replacement policy, replacement strategy) legen fest, welche Teile aus dem Hauptspeicher verdrängt werden, wenn kein freier Platz für eine Einlagerung zur Verfügung steht die verschiedenen Strategien sind nicht bei jeder Speicherverwaltungsmethode von gleicher Bedeutung

20 Betriebssysteme Folie Seitenaustauschverfahren der virtuelle und der physikalische Speicher werden in gleichgroße Blöcke fester Länge aufgeteilt im virtuellen Speicher heißt dieser Block Seite (page) und im physikalischen Speicher Kachel (Seitenrahmen, page frame) Blöcke sind im Allgemeinen zwischen 1 und 8 Kilobyte groß wenn ein neues Programm gestartet wird, dann werden im Allgemeinen nur die ersten n Seiten des Programms in den physikalischen Speicher geladen aufeinander folgende Seiten müssen nicht in aufeinander folgende Kacheln abgelegt werden, sondern können beliebig im Hauptspeicher verteilt werden Zuordnung der virtuellen zu den physikalischen Adressen erfolgt über eine sogenannte Seitentabelle (page table, page map table) Adressumsetzung beim Seitenaustauschverfahren Seitentabellen- Anfangsregister b virtuelle Adresse v = (p, d) + Seite p Seitendistanz d Seitentabelle b p p' Kachelnummer sonstige Angaben Status Grenze ist nur logisch vorhanden (linearer Adressraum) p' d reale Adresse r = (p', d) 0000 Hauptspeicher p' d Kachel p'

21 Betriebssysteme Folie 3-21 virtuelle Adresse besteht aus zwei Komponenten einer Seitennummer (page number) einer Distanzadresse innerhalb der Seite (offset, displacement) Seitennummer wird als Index in die Seitentabelle des Prozesses benutzt Ablauf der Adressumsetzung 1) Adresse des Eintrags in der Seitentabelle bestimmen (Seitennummer als Index benutzen) 2) überprüfen, ob sich die Seite bereits im Hauptspeicher befindet (Status-Bit, Valid-Bit, V-Bit) V-Bit = 1: weiter bei 3) V-Bit = 0: weiter bei 4) 3) physikalische Adresse aus Kachelnummer der Seitentabelle und Seitendistanz der virtuellen Adresse bilden; weiter bei 5) 4) Seitenunterbrechung (page fault) erzeugen fehlende Seite wird in den Hauptspeicher transportiert (Wenn sich die Seite nicht im Hauptspeicher befindet, enthalten einige Bits des Eintrags in der Seitentabelle die Blockadresse der Seite auf dem Hintergrundspeicher. Diese Blockadresse wird in einem Zwischenspeicher gespeichert, bevor die Kachelnummer in den Eintrag der Seitentabelle eingetragen wird. Wenn die Seite später wieder verdrängt wird, kann die Blockadresse der Seite auf dem Hintergrundspeicher wieder in den Eintrag der Seitentabelle übernommen werden) anschließend weiter bei 3) 5) gewünschte Schreib-/Leseoperation im Hauptspeicher ausführen

22 Betriebssysteme Folie 3-22 Beispiel für Adressumsetzung 64 KB virtueller Adressraum 32 KB Hauptspeicher 4 KB Blockgröße für Seiten und Kacheln virtual address space page table main memory F E D C B A address FFFF EFFF DFFF CFFF BFFF AFFF 000-9FFF 000-8FFF 000-7FFF 000-6FFF 000-5FFF 000-4FFF 000-3FFF 000-2FFF 000-1FFF 000-0FFF unused unused unused unused unused unused unused unused unused unused f e d c b a page number address 000-7FFF 000-6FFF 000-5FFF 000-4FFF 000-3FFF 000-2FFF 000-1FFF 000-0FFF e a b Valid-bit page frame number = 2**14 + 2**7 + 2**6 + 2**5 + 2** page number displacement virtual address block size = 4 KB = bytes = bytes (hex) page frame number displacement physical address

23 Betriebssysteme Folie 3-23 Eintrag in der Seitentabelle ist normalerweise 32 Bit breit und folgendermaßen aufgebaut 1) 1 Bit gibt an, ob sich die Seite im Hauptspeicher befindet (Valid- Bit, V-Bit) 2) ein oder mehrere Bits (3-4 Bits) werden für den Speicherschutz verwendet (z. B. nur lesenden Zugriff, lesenden und schreibenden Zugriff, überhaupt keinen Zugriff, ) 3) 1 Bit gibt an, ob auf die Seite schreibend zugegriffen wurde (Modify-Bit, M-Bit) 4) einige Bits werden für interne Aufgaben verwendet (sie enthalten z. B. Informationen für den Ersetzungs-Algorithmus) 5) die restlichen Bits geben die Kachelnummer an (die Anzahl dieser Bits und die Kachelgröße bestimmen den maximal adressierbaren Hauptspeicher) Seitentabelle enthält für jede Seite des Programms einen Eintrag Beispiel virtueller Adressraum: 4 GB; Seitengröße: 4 KB Seitentabelle hat Einträge zu je 32 Bit (= 4 MB!!!) Seitentabelle sollte nur für den tatsächlich genutzten Adressbereich des Programms Einträge enthalten (im Allgemeinen weniger als Einträge) die Seitennummer müsste daraufhin überprüft werden, ob sie ein gültiger Index in die Seitentabelle ist

24 Betriebssysteme Folie 3-24 in der Praxis wird das Problem durch mehrstufige Tabellen gelöst (beispielsweise in der Intel Pentium-Familie) virtual address dir page offset 0 page table directory page table physical memory page frame CR3 page table directory base 31 0 Bei einer Blockgröße von 4KB kann jeder Block Bit-Adressen aufnehmen. Für das obige Beispiel würde man einen Block für das Seitentabellenverzeichnis und einen weiteren Block für eine Seitentabelle benötigen. Damit könnten Programme bis zu 4 MB adressiert werden. Grenze zwischen Seitennummer und Seitendistanz in der virtuellen Adresse ergibt sich aus der Seitengröße, da die Seitendistanz ein Byte (oder Wort) innerhalb der Seite adressiert (bei einer Seitengröße von 1 KB werden demzufolge 10 Bit und bei einer von 4 KB 12 Bit für die Seitendistanz benötigt) ein Überlauf im Teil Seitendistanz der virtuellen Adresse führt automatisch in die nächste Seite, da der gesamte lineare Adressraum des Programms in aufeinander folgende Seiten aufgeteilt wurde die Grenze zwischen Seitennummer und Seitendistanz ist nur logisch vorhanden

25 Betriebssysteme Folie 3-25 Adressumsetzung wird direkt von der Hardware durchgeführt Anfangsadresse der Seitentabelle und die virtuelle Adresse befinden sich in sehr schnellen Registern Zeit zur Bestimmung der Adresse des Eintrags in der Seitentabelle kann vernachlässigt werden Seitentabelle selbst ist im Allgemeinen so groß, dass sie nur im normalen Hauptspeicher gehalten werden kann Zugriff auf den Eintrag der Seitentabelle dauert eine Zykluszeit des Hauptspeichers eine weitere Zykluszeit wird dann noch benötigt, um auf die vom Programm gewünschte Adresse des Hauptspeichers zuzugreifen direkte Adressumsetzung dauert zwei Zykluszeiten anstelle der einen notwendigen Zykluszeit Programm würde nur mit der halben Geschwindigkeit des Prozessors ausgeführt werden Verfahren wurde sehr schnell verbessert, da es nicht tragbar ist, die halbe Prozessorleistung für Adresstransformationen zu verwenden

26 Betriebssysteme Folie 3-26 Verbesserungsmöglichkeiten Seitentabelle in sehr schnellem Pufferspeicher realisieren (zu teuer) Seitentabelle in Assoziativspeicher realisieren (zu teuer) (Assoziativspeicher enthält die am häufigsten benötigten Seiteneinträge) Kombination aus direkter Adressumsetzung und Assoziativspeicher Seitentabellen- Anfangsregister b virtuelle Adresse v = (p, d) + Seite p Seitendistanz d zuerst im Assoziativspeicher suchen Assoziativspeicher nur, falls Seite nicht im Assoziativspeicher gefunden wurde b p p' p p' p' d reale Adresse r = (p', d) 0000 Hauptspeicher p' Kachel p' d

27 Betriebssysteme Folie 3-27 Ablauf der Adressumsetzung 1) Seite p wird im Assoziativspeicher gesucht 2) falls die Seite im Assoziativspeicher gefunden wird, kann die physikalische Adresse aus der Kachelnummer p' und der Seitendistanz d der virtuellen Adresse gebildet werden 3) andernfalls wird die oben beschriebene direkte Adressumsetzung über die Seitentabelle verwendet 4) die neue Seiten/Kachel-Zuordnung wird automatisch im Assoziativspeicher aufgenommen (verdrängt dort einen alten Eintrag) Speicherverwaltung wird heute von speziellen Speicherverwaltungs- Bausteinen (memory management unit, MMU) durchgeführt, die einen sehr schnellen, kleinen Assoziativspeicher (translation lookaside buffer, TLB) benutzen (die Speicherverwaltung ist teilweise bereits auf dem Prozessor-Chip integriert)

28 Betriebssysteme Folie 3-28 verwendete Strategien beim Seitenaustauschverfahren 1) Einlagerungsstrategie Einlagerung auf Anforderung (demand paging) 2) Platzierungsstrategie spielt hier keine Rolle, da der Speicher in Blöcke konstanter Größe aufgeteilt ist und damit jeder Block geeignet ist 3) Ersetzungsstrategie Folgende Algorithmen können u. a. verwendet werden: FIFO (first-in-first-out) Seite, die zuerst eingelagert wurde, wird als Erste verdrängt Nachteil: u. U. wird eine häufig benutzte Seite verdrängt (Beispiel: Ein Programm wird von vielen Benutzern verwendet seine Seiten sind u. U. schon lange im Speicher sie können bei dieser Strategie verdrängt werden, obwohl sie noch benötigt werden sie müssen sofort wieder eingelagert werden) LRU (least recently used) Seite, die am längsten nicht mehr benutzt wurde, wird als Erste verdrängt. Nachteil: wenn ein Programm in einer großen Verarbeitungsschleife läuft, benötigt es u. U. sofort die gerade verdrängte Seite LFU (least frequently used) Die Seite, die am seltensten benutzt wurde, wird ausgelagert.

29 Betriebssysteme Folie 3-29 in der Praxis werden häufig LRU-Strategien verwendet, die auf dem Modify-Bit und einem Referenced-Bit basieren Referenced-Bit wird zyklisch gelöscht und immer dann gesetzt, wenn eine Seite angesprochen wurde bei häufig benutzten Seiten ist dieses Bit nach kurzer Zeit wieder gesetzt Seiten werden nun in Klassen eingeteilt in der ersten Klasse befinden sich alle Seiten, die nicht modifiziert und im letzten Zeitintervall nicht benutzt worden sind in der zweiten Klasse befinden sich die Seiten, die zwar modifiziert, aber im letzten Zeitintervall nicht benutzt worden sind usw. zuerst werden die Seiten der ersten Klasse verdrängt falls eine Klasse leer ist, werden die Seiten der nächst-höheren Klasse verdrängt modifizierte Seiten müssen vor ihrer Verdrängung auf dem Hintergrundspeicher gesichert werden Seitenaustauschverfahren können sehr einfach und effizient implementiert werden

30 Betriebssysteme Folie 3-30 Merkmale dieser Verfahren 1) letzte Seite ist im Mittel nur zur Hälfte gefüllt, da die Länge der Programme im Allgemeinen kein Vielfaches der Seitengröße ist Hauptspeicher wird verschwendet; sogenannte interne Fragmentierung (wächst mit der Seitengröße) 2) Adressumsetzung erfolgt mit Hilfe einer Seitentabelle Hauptspeicher wird verschwendet; sogenannte Tabellenfragmentierung (wächst mit fallender Seitengröße) (Fragmentierungen haben bei den heutigen Hauptspeichergrößen keine große Bedeutung) 3) Anzahl der Kacheln wird mit steigender Seitengröße kleiner es können weniger Programme gleichzeitig im Hauptspeicher gehalten werden, da jedes Programm eine minimale Anzahl von Kacheln benötigt 4) Anzahl der Seitentransporte wird reduziert, wenn die Seiten möglichst groß sind Zeitersparnis, da der Transport einer Seite vom Hintergrundspeicher in den Hauptspeicher sehr zeitintensiv ist (wesentlicher Zeitanteil ist die Drehwartezeit) 5) Thrashing (Quasi-Stillstand des Systems durch Seitenein-/auslagerung) (dieser Zustand tritt auf, wenn das System sehr stark belastet ist oder die Ersetzungsstrategie schlecht implementiert worden ist; er kann z. B. dadurch behoben werden, dass das Betriebssystem einige Prozesse vorübergehend suspendiert)

31 Betriebssysteme Folie ) Verwaltung gemeinsam genutzter Programme ist sehr aufwendig, da die Kacheln dieser Programme in den Seitentabellen vieler Prozesse vorkommen (Beim Verdrängen der Kachel müssen alle Seitentabellen aktualisiert werden, in denen das Valid-Bit für die Kachel gesetzt ist. Falls ein neuer Prozess das Programm nutzen will, muss festgestellt werden, ob sich die Kachel bereits im Hauptspeicher befindet. Eine Lösung der Probleme erfordert zusätzliche Tabellen oder Listen.)

32 Betriebssysteme Folie 3-32 Aufgabe 3-1: Gegeben sei ein Programm mit einer Größe von 5688 Bytes (alle Angaben erfolgen als Dezimalzahlen). Die logischen Adressen des Programms werden mit Hilfe des Seitenaustauschverfahrens in physikalische Adressen übersetzt. Die Seiten- und Kachelgröße betrage 1 KB und es existiere folgende Seitentabelle (V-Bit = 1: Seite befindet sich im Hauptspeicher). V Kachelnummer Die Kacheln 5, 17 und 11 können in dieser Reihenfolge als nächste belegt werden. Es werde auf die Adresse 3100 des Programms zugegriffen. Welche Änderungen werden in der Seitentabelle durchgeführt? Auf welche Adresse des Hauptspeichers wird zugegriffen? Leiten Sie die Ergebnisse auf Bitebene her!

33 Betriebssysteme Folie 3-33 Aufgabe 3-2: Gegeben sei ein Programm mit einer Größe von Bytes (alle Angaben erfolgen als Dezimalzahlen). Die logischen Adressen des Programms werden mit Hilfe des Seitenaustauschverfahrens in physikalische Adressen übersetzt. Die Seiten- und Kachelgröße betrage 8 KB und es existiere folgende Seitentabelle (V-Bit = 1: Seite befindet sich im Hauptspeicher). V Kachelnummer Die Kacheln 516, 283 und 817 können in dieser Reihenfolge als nächste belegt werden. Es werde auf die Adresse des Programms zugegriffen. Welche Änderungen werden in der Seitentabelle durchgeführt? Auf welche Adresse des Hauptspeichers wird zugegriffen? Leiten Sie die Ergebnisse auf Bitebene her! Aufgabe 3-3: Skizzieren Sie die Umsetzung einer virtuellen Adresse in eine physikalische Adresse durch ein Seitenaustauschverfahren mit Hilfe einer Kombination aus direkter Adressumsetzung und Assoziativspeicher.

34 Betriebssysteme Folie Segmentierung der Speicher wird in logische Blöcke variabler Länge aufgeteilt (die Blöcke werden Segmente genannt) Segment kann einen Teil eines Programms enthalten, der von anderen Teilen des Programms unabhängig ist typische Segmente sind Datenbereiche und Prozeduren das Betriebssystem UNIX unterscheidet drei Segmente den Code (text segment) den Datenbereich (data segment) den Kellerbereich (stack segment) der Datenbereich könnte z. B. noch in initialisierte und nicht initialisierte Daten unterschieden werden der Code könnte z. B. in einzelne Prozedurgruppen oder Prozeduren aufgeteilt werden, denen jeweils ein Segment zugeordnet ist gemeinsam benutzte Programme und Daten können einfacher verwaltet und geschützt werden als beim Seitenaustauschverfahren, da jetzt logisch zusammengehörende Teile verwaltet werden jedes Segment kann in einem eigenen Speicherbereich des Hauptspeichers abgelegt werden

35 Betriebssysteme Folie 3-35 Segmente eines Programms können an beliebigen Stellen des Hauptspeichers stehen es muss eine geeignete Adresstransformation zur Laufzeit durchgeführt werden die virtuelle Adresse besteht aus einer Segmentnummer und einer Adresse innerhalb des Segments (der sogenannten Segmentdistanz) es kann keinen Überlauf aus dem Adressteil Segmentdistanz in die Segmentnummer geben, da die einzelnen Segmente voneinander unabhängig sind jedes Segment hat seinen eigenen Adressraum Grenze zwischen Segmentnummer und Segmentdistanz ist real vorhanden es gibt keinen linearen Adressraum zwischen Segmenten da die Größe der Segmente variiert, kann die Anfangsadresse eines Segments nicht mehr durch eine Nummer bestimmt werden, sondern nur noch durch eine Adresse die Segmenttabelle enthält die Anfangsadresse des Segments im Hauptspeicher ein Eintrag der Segmenttabelle ist normalerweise größer als ein Eintrag der Seitentabelle, da eine Adresse im Allgemeinen mehr Bits benötigt als eine Nummer Segmenttabelle enthält im Allgemeinen weniger Einträge als eine Seitentabelle, da es in der Regel weniger Segmente als Seiten gibt

36 Betriebssysteme Folie 3-36 ein Eintrag der Segmenttabelle ist z. B. folgendermaßen aufgebaut 1) 1 Bit gibt an, ob sich das Segment im Hauptspeicher befindet (Valid-Bit) 2) ein oder mehrere Bits werden für den Speicherschutz verwendet 3) einige Bits geben den Segmenttyp an (z. B. Textsegment, shared memory, ) 4) einige Bits werden für interne Aufgaben verwendet (z. B. Informationen für den Segmentwechsel-Algorithmus) 5) einige Bits (z. B. 16 oder 32 Bit) enthalten die Länge des Segments 6) 1 Bit gibt an, ob auf das Segment schreibend zugegriffen wurde (Modify-Bit) 7) einige Bits (z. B. 32 oder 64 Bit) enthalten die Anfangsadresse des Segments im Hauptspeicher falls sich das Segment nicht im Hauptspeicher befindet, werden wieder einige Bits des Eintrags der Segmenttabelle für die Adresse des Segments auf dem Hintergrundspeicher verwendet

37 + Betriebssysteme Folie 3-37 Adressumsetzung erfolgt analog zum Seitenaustauschverfahren über eine sogenannte Segmenttabelle (segment table, segment map table) Segmenttabellen- Anfangsregister b virtuelle Adresse v = (s, d) + Segment s Segmentdistanz d b s Segmenttabelle s' Grenze ist real vorhanden 0000 reale Adresse r = s'+d s' d Hauptspeicher Segment s Hauptspeicheradresse sonstige Angaben Status Hauptspeicheradresse wird berechnet, indem die Segmentdistanz zur Anfangsadresse des Segments addiert wird falls sich das angesprochene Segment nicht im Hauptspeicher befindet, wird analog zur Seitenunterbrechung eine Segmentunterbrechung erzeugt Adressumsetzung erfolgt wieder direkt durch die Hardware

38 Betriebssysteme Folie 3-38 verwendete Strategien beim Segmentverfahren 1) Einlagerungsstrategie Einlagerung auf Anforderung 2) Platzierungsstrategie Strategien haben eine besondere Bedeutung, da die Blöcke eine variable Länge haben und damit für jedes Segment eine geeignete (freie) Stelle im Hauptspeicher gefunden werden muss folgende Algorithmen können u. a. verwendet werden first-fit strategy das erste hinreichend große Loch wird gewählt Vorteil: sehr einfach und schnell zu implementieren dieses Verfahren wird häufig verwendet Nachteil: u. U. werden große Löcher durch kleine Segmente geteilt große Segmente können dann nicht mehr geladen werden Löcher einer bestimmten Größe können sich an bestimmten Speicherstellen häufen (kann vermieden werden, wenn die Suche nach einem neuen Loch an der Stelle beginnt, an der das letzte Loch gefunden wurde (der Hauptspeicher wird in diesem Fall als ein Ringpuffer betrachtet))

39 Betriebssysteme Folie 3-39 best-fit strategy das kleinst-mögliche Loch im Speicher wird gewählt, das das Segment aufnehmen kann Vorteil: Nachteil: große Löcher bleiben lange erhalten Vielzahl kleiner (nutzloser) Überreste worst-fit strategy das größte Loch wird gewählt Vorteil: falls ein Segment in das größte verfügbare Loch gespeichert wird, ist der verbleibende Rest häufig noch so groß, dass er ein weiteres Segment aufnehmen kann 3) Ersetzungsstrategie es werden die gleichen Algorithmen wie beim Seitenaustauschverfahren verwendet Merkmale dieser Verfahren 1) differenzierte Zugriffskontrolle der Prozesse zu den Segmenten ist einfach realisierbar, da logische Einheiten geschützt werden 2) nachteilig sind die u. U. großen Transporteinheiten zwischen Haupt- und Hintergrundspeicher 3) da die Segmente eine variable Größe besitzen, gibt es im Allgemeinen Hauptspeicherbereiche, die zu klein sind, um ein Segment aufzunehmen Hauptspeicher wird verschwendet; sogenannte externe Fragmentierung

40 Betriebssysteme Folie ) Adressumsetzung erfolgt mit Hilfe einer Segmenttabelle (Tabellenfragmentierung) 5) Adressumsetzung kann analog zum Seitenaustauschverfahren beschleunigt werden, indem z. B. zusätzlich Assoziativspeicher eingesetzt werden Gegenüberstellung der Vorteile der Seitenaustausch- und Segmentverfahren Segmentierung: einfach zu implementierender Speicherschutz Unterstützung der Programmstruktur (logisches Konzept) effiziente Verwaltung und guter Schutz gemeinsam genutzter Programme und Daten Seitenaustauschverfahren einfache und effiziente Speicheraufteilung und -verwaltung (physikalisches Konzept mit festen Blockgrößen) einfache Adressumsetzung wünschenswert: Kombination aller Vorteile Kombination der Verfahren zum Segment-/Seitenverfahren

41 Betriebssysteme Folie Segment-/Seitenverfahren es wird eine zweistufige Adressumsetzung verwendet erste Stufe: Adressierung logischer Einheiten (Segmente) zweite Stufe: Abbildung der Segmente in den Hauptspeicher über das Seitenaustauschverfahren jedem Segment wird eine eigene Seitentabelle zugeordnet virtuelle Adresse setzt sich aus drei Komponenten zusammen Segmentnummer Seitennummer Adresse innerhalb der Seite (Seitendistanz) (die Grenze zwischen Segment- und Seitennummer ist fest, während die Grenze zwischen Seitennummer und Seitendistanz wieder nur logisch vorhanden ist)

42 + Betriebssysteme Folie 3-42 Adressumsetzung beim Segment-/Seitenverfahren Segmenttabellen- Anfangsregister b virtuelle Adresse v = (s, p, d) + Segment s Seite p Seitendistanz d zuerst im Assoziativspeicher suchen Assoziativspeicher nur, falls (s,p) nicht im Assoziativspeicher gefunden wurde s p p' b s Segmenttabelle s' s' Seitentabelle des Segments s p p' p' d reale Adresse r = (p', d) 0000 p' d Hauptspeicher Kachel p'

43 Betriebssysteme Folie 3-43 Ablauf der Adressumsetzung 1) Segment- und Seitennummer der virtuellen Adresse als Suchwort für den Assoziativspeicher verwenden 2) falls (s, p) im Assoziativspeicher gefunden wird, kann die physikalische Adresse sofort aus der Kachelnummer p' und der Seitendistanz d der virtuellen Adresse gebildet werden 3) andernfalls wird die Adresse des Eintrags in der Segmenttabelle berechnet und überprüft, ob die Seitentabelle dieses Segments im Hauptspeicher ist 4) ist dies nicht der Fall, dann wird eine Segmentunterbrechung erzeugt, um die Seitentabelle einzulagern 5) befindet sich die Seitentabelle bereits im Hauptspeicher, dann enthält die Segmenttabelle die Adresse der Seitentabelle 6) nachdem die Anfangsadresse der Seitentabelle mit der Seitennummer der virtuellen Adresse verknüpft worden ist, kann überprüft werden, ob sich die Seite im Hauptspeicher befindet 7) ist dies nicht der Fall, wird eine Seitenunterbrechung erzeugt, um die Seite einzulagern 8) andernfalls wird die Hauptspeicheradresse aus der Kachelnummer p' und der Seitendistanz d der virtuellen Adresse gebildet 9) Inhalt des Assoziativspeichers wird automatisch aktualisiert

44 Betriebssysteme Folie 3-44 in der Praxis werden verschiedene Realisierungen dieses Verfahrens eingesetzt einige Rechner verwenden eine 32-Bit breite virtuelle Adresse, die alle drei Komponenten enthält in diesen Fällen muss ein Kompromiss zwischen der Anzahl der Segmente und der maximalen Größe eines Segments gefunden werden mögliche Aufteilungen Seitendistanz: 12 Bit (4 KB große Seiten) Seitennummern: 12 Bit (max Seiten/Segment max. 16 MB Segmente) Segmentnummern: 8 Bit (256 Segmente) Seitendistanz: 12 Bit (4 KB große Seiten) Seitennummern: 18 Bit (max. 1 GB Segmentgröße) Segmentnummern: 2 Bit (4 Segmente) andere Rechner erlauben längere virtuelle Adressen (z. B. die Prozessoren ab von Intel) in diesem Fall wird im Allgemeinen zuerst ein Segment ausgewählt (laden eines Wertes in ein spezielles Segmentregister), auf das sich alle nachfolgenden Adressen beziehen Adressen innerhalb des Segments sind dann im Allgemeinen 32 Bit breit der Prozessor unterstützt z. B. 46 Bit breite virtuelle Adressen ( Segmente zu je 4 GB), was einem virtuellen Adressraum von ca. 64 Terabyte entspricht

45 Betriebssysteme Folie 3-45 Tabellenstruktur beim Segment-/Seitenverfahren systemweite Prozesstabelle a b c Adresse der Segmenttabelle Prozess- Identifikation prozess-spezifische Segmenttabellen segment-spezifische Seitentabellen gemeinsame Seitentabelle Seiten sind nicht im Hauptspeicher Hauptspeicher Betriebssystem : : a, b a b a b, c c b, c b, c Adresse der Seitentabelle Kachelnummer b c b c Prozess, dem die Kachel "gehört"

46 Betriebssysteme Folie 3-46 Adressumsetzung bei Intel-Pentium-Prozessoren MOV EAX,Table[EDI*4][EBP+80] Base Register Index Register previously loaded + * Scale 1, 2, 4, 8 Displacement SS Effective Address CS Segment Selector Offset Linear Address Space (or Physical Memory) Linear Address Virtual Address dir table offset SS CS Access Limit Linear Base Address + Address TLB 31 0 Segment Descriptor Limit Segment (from GDT or LDT) Physical Memory 31 0 Page CR3 Page Directory Base Page Directory Page Table 31 Page Frame 0 diese Prozessoren unterstützen reines Segmentverfahren und Segment-/Seitenverfahren beim Segmentverfahren endet die Adressumsetzung im linearen Adressraum, die direkt als Hauptspeicheradresse interpretiert wird beim Segment-/Seitenverfahren wird die lineare Adresse noch mit Hilfe des Seitenaustauschverfahrens in eine Hauptspeicheradresse abgebildet

47 Betriebssysteme Folie 3-47 Aufgabe 3-4: Es stehen drei freie Speicherbereiche mit 80, 50 und 40 KBytes resp. zur Verfügung. Im Laufe der Zeit werden Speicherbereiche von 20, 30, 40, 25 und 30 KBytes angefordert. Realisieren Sie die Speicheranforderungen nach den Verfahren first-fit, best-fit und worst-fit. Anforderung Anzahl und Größe der freien Speicherblöcke first-fit best-fit worst-fit - 80, 50, 40 80, 50, 40 80, 50, Aufgabe 3-5: Für die Verwaltung von virtuellem Speicher soll ein Seitenaustauschverfahren mit Assoziativspeicher benutzt werden. Der Hauptspeicher des Rechners habe eine mittlere Zugriffszeit von 10 ns und der Assoziativspeicher eine von 1 ns. Die Trefferrate betrage 95 Prozent. Wie lange dauert im Mittel eine Adressumsetzung für Seiten, die sich im Hauptspeicher befinden? Aufgabe 3-6: Nennen Sie die wesentlichen Unterschiede zwischen Seitenaustauschverfahren und Segmentierung.

48 Betriebssysteme Folie 3-48 Aufgabe 3-7: Gegeben sei ein Prozess, der auf die Seiten 1 bis 4 in folgender Reihenfolge zugreift: 1, 2, 3, 4, 1, 1, 4, 2, 1, 2. Dem Prozess stehen im Hauptspeicher zwei bzw. drei Kacheln zur Verfügung. Wie viele Seitenunterbrechungen werden erzeugt, wenn als Seitenverdrängungsalgorithmus FIFO (First-In-First-Out) bzw. LIFO (Last-In-First-Out) benutzt wird. Beachten Sie, dass die Kacheln zuerst leer sind, d.h., dass der erste Zugriff auf eine Seite auf jeden Fall eine Seitenunterbrechung auslöst. Tragen Sie die Anzahl der Seitenunterbrechungen in die folgende Tabelle ein. Anzahl Kacheln 2 3 FIFO LIFO Aufgabe 3-8: In einem Rechner mit Segment-/Seitenverfahren besteht eine virtuelle Adresse aus bis zu 4 Segmenten, wobei jedes Segment 1 GB groß sein kann. Die Hardware benutzt eine Seitengröße von 4 KB. Wie viele Bits werden in der virtuellen Adresse für folgende Werte benutzt: a) Segmentnummer: b) Seitennummer: c) Distanzadresse in der Seite: d) Gesamte virtuelle Adresse:

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 10 am 29.06.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Teil 2: Speicherstrukturen

Teil 2: Speicherstrukturen Inhalt Teil 2: Speicherstrukturen Hauptspeicher Cache Assoziativspeicher Speicherverwaltungseinheit ( Memory Management Unit ) 1 Virtueller Speicher Trennung von virtuellem Adreßraum (mit virtuellen Adressen)

Mehr

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Themen heute Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Besprechung des 9. Übungsblattes Aufgabe 2 Ist in einer Aufgabe wie hier keine explizite Wortbreite angegeben, nicht

Mehr

Leichtgewichtsprozesse

Leichtgewichtsprozesse Leichtgewichtsprozesse häufiger Prozeßwechsel stellt in einem Betriebssystem eine hohe Belastung dar; auch erfordert die Generierung eines neuen Prozesses viele System-Resourcen in vielen Anwendungen werden

Mehr

Leichtgewichtsprozesse

Leichtgewichtsprozesse Leichtgewichtsprozesse häufiger Prozeßwechsel stellt in einem Betriebssystem eine hohe Belastung dar; auch erfordert die Generierung eines neuen Prozesses viele System-Resourcen in vielen Anwendungen werden

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 11 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Lösung von Übungsblatt 2

Lösung von Übungsblatt 2 Lösung von Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. Lochstreifen, Lochkarte, CD/DVD beim Pressen. 2. Nennen Sie zwei rotierende

Mehr

Zwei Möglichkeiten die TLB zu aktualisieren

Zwei Möglichkeiten die TLB zu aktualisieren Zwei Möglichkeiten die TLB zu aktualisieren Die MMU kümmert sich um alles (Hardware-Lösung) sucht die p-entry wenn diese nicht da ist, behandelt direkt das TLB-miss zum Schluss wird die neue p-entry (virt

Mehr

Lösung von Übungsblatt 2

Lösung von Übungsblatt 2 Lösung von Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. Lochstreifen, Lochkarte, CD/DVD beim Pressen. 2. Nennen Sie zwei rotierende

Mehr

(Cache-Schreibstrategien)

(Cache-Schreibstrategien) Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. 2. Nennen Sie zwei rotierende magnetische digitale Datenspeicher. 3. Nennen Sie zwei

Mehr

Echtzeitbetriebssysteme

Echtzeitbetriebssysteme Speicherverwaltung (Memory Management) Aufgaben der Memory-Management-Unit ist l der Speicherschutz und l die Adressumsetzung Wird durch Hardware unterstützt l Memory Management Unit (MMU) l MMU wird vom

Mehr

Virtueller Speicher und Memory Management

Virtueller Speicher und Memory Management Virtueller Speicher und Memory Management Speicher-Paradigmen Programmierer ein großer Adressraum linear adressierbar Betriebssystem eine Menge laufender Tasks / Prozesse read-only Instruktionen read-write

Mehr

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14 BS-S Betriebssysteme SS 2015 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz S: Speicherverwaltung v1.0, 2015/04/14 Betriebssysteme, SS 2015 Hans-Georg Eßer Folie S-1 Übersicht: BS Praxis und BS

Mehr

Speicherverwaltung. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Speicherverwaltung. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach Speicherverwaltung Design Digitaler Systeme Prof. Dr.-Ing. Rainer Bermbach Übersicht Speicherverwaltung Virtueller Speicher Memory Management Unit Segmentierung Paging Kombination Segmentierung/ Paging

Mehr

Speicherverwaltung (Swapping und Paging)

Speicherverwaltung (Swapping und Paging) Speicherverwaltung (Swapping und Paging) Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente 750k 0 Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente

Mehr

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Speicherhierarchie In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Register Speicherzellen, direkt mit der Recheneinheit verbunden Cache-Speicher Puffer-Speicher

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 21.12.2016 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Betriebssysteme Sommersemester Betriebssysteme. 5. Kapitel. Adressumsetzung. Dr. Peter Tröger / Prof. M. Werner. Professur Betriebssysteme

Betriebssysteme Sommersemester Betriebssysteme. 5. Kapitel. Adressumsetzung. Dr. Peter Tröger / Prof. M. Werner. Professur Betriebssysteme Betriebssysteme Sommersemester 2017 Betriebssysteme 5. Kapitel Adressumsetzung Dr. Peter Tröger / Prof. M. Werner Professur Betriebssysteme 5.1 Speicher schneller, teurer, kleiner Betriebssysteme Adressumsetzung

Mehr

Freispeicherverwaltung Martin Wahl,

Freispeicherverwaltung Martin Wahl, Freispeicherverwaltung Martin Wahl, 17.11.03 Allgemeines zur Speicherverwaltung Der physikalische Speicher wird in zwei Teile unterteilt: -Teil für den Kernel -Dynamischer Speicher Die Verwaltung des dynamischen

Mehr

Übung Praktische Informatik II

Übung Praktische Informatik II Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 22.05.09 11-1 Heutige große Übung Ankündigung

Mehr

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Grundlegende Bedeutung von Speicheradressierung: Wie sind die Daten auf Dem Speicher

Mehr

Technische Realisierung (1)

Technische Realisierung (1) Technische Realisierung () Einfachstes Modell: Prozess (Daten+Code) befindet sich im Hintergrundspeicher Bei teilweise eingelagerten Prozessen: Zusätzlich Teile im Hauptspeicher Logische Adressen überdecken

Mehr

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus 4.2 Caches é Cache kommt aus dem Französischen: cacher (verstecken). é Er kann durch ein Anwendungsprogramm nicht explizit adressiert werden. é Er ist software-transparent, d.h. der Benutzer braucht nichts

Mehr

Übung zu Einführung in die Informatik # 10

Übung zu Einführung in die Informatik # 10 Übung zu Einführung in die Informatik # 10 Tobias Schill tschill@techfak.uni-bielefeld.de 15. Januar 2016 Aktualisiert am 15. Januar 2016 um 9:58 Erstklausur: Mi, 24.02.2016 von 10-12Uhr Aufgabe 1* a),

Mehr

Hauptspeicherverwaltung - Memory Management

Hauptspeicherverwaltung - Memory Management Hauptspeicherverwaltung - Memory Management Operating Systems I SS21 Prof. H.D.Clausen - unisal 1 Speicherhierarchie Verarbeitung cache Sekundär- Speicher Primär- Speicher ALU SS21 Prof. H.D.Clausen -

Mehr

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler 1 Überlegungen Wenn wir einige Seiten eines Programms in den Speicher laden, brauchen wir eine Strategie, welche Seiten als nächstes geladen werden

Mehr

Wunschvorstellung der Entwickler vom Speicher

Wunschvorstellung der Entwickler vom Speicher Wunschvorstellung der Entwickler vom Speicher Unendlich groß Unendlich schnell Nicht flüchtig billig Obwohl sich der verfügbare Speicher laufend erhöht, wird immer mehr Speicher benötigt, als verfügbar

Mehr

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Paging. Einfaches Paging. Paging mit virtuellem Speicher Paging Einfaches Paging Paging mit virtuellem Speicher Einfaches Paging Wie bisher (im Gegensatz zu virtuellem Speicherkonzept): Prozesse sind entweder ganz im Speicher oder komplett ausgelagert. Im Gegensatz

Mehr

5 Kernaufgaben eines Betriebssystems (BS)

5 Kernaufgaben eines Betriebssystems (BS) 5 Kernaufgaben eines Betriebssystems (BS) Betriebssystem ist eine Menge von Programmen, die die Abarbeitung anderer Programme auf einem Rechner steuern und überwachen, insbesondere verwaltet es die Hardware-Ressourcen

Mehr

Betriebssysteme Studiengang Informatik / SAT

Betriebssysteme Studiengang Informatik / SAT Betriebssysteme Studiengang Informatik / SAT Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943

Mehr

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner Konzepte von Betriebssystemkomponenten Referat am 24.11.2003 Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner Gliederung Adressräume Page Faults Demand Paging Copy

Mehr

Naiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme

Naiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme Hans-Georg Eßer Hochschule München Teil 3: Zusammenhängende Speicherzuordnung 06/2009 Hans-Georg Eßer Hochschule München

Mehr

7. Speicherverwaltung

7. Speicherverwaltung 7. Speicherverwaltung Ziele Zuteilung des Arbeitsspeicher Abbildung der symbolischen Adresse auf die physikalische Adresse Adress-Transformation Symbolische Adresse verschiebbare Adresse physikalische

Mehr

5 Hauptspeicherverwaltung

5 Hauptspeicherverwaltung Betriebssysteme Folie 5-1 5 Hauptspeicherverwaltung zwei Adreßräume werden unterschieden der logische Adreßraum (virtueller Adreßraum) ist der Adreßraum, der dem Programm zur Verfügung steht der physikalische

Mehr

Betriebssysteme I WS 2016/2017. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

Betriebssysteme I WS 2016/2017. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404 Betriebssysteme I WS 2016/2017 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 2. Februar 2017 Betriebssysteme / verteilte Systeme Betriebssysteme

Mehr

RO-Tutorien 17 und 18

RO-Tutorien 17 und 18 RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 12 AM 19.07.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der

Mehr

Fachbericht Thema: Virtuelle Speicherverwaltung

Fachbericht Thema: Virtuelle Speicherverwaltung Fachbericht 15.10.99 1 HINTERGRÜNDE/ MOTIVATION 2 2 FUNKTIONEN DER SPEICHERVERWALTUNG 2 3 ARTEN DER SPEICHERVERWALTUNG 2 3.1 STATISCHE SPEICHERVERWALTUNG 2 3.2 DYNAMISCHE SPEICHERVERWALTUNG 3 3.2.1 REALER

Mehr

Betriebssysteme. Speicherverwaltung - Grundlegende Konzepte. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1.

Betriebssysteme. Speicherverwaltung - Grundlegende Konzepte. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1. Speicherverwaltung - Grundlegende Konzepte Sommersemester 2014 Prof. Dr. Peter Mandl Prof. Dr. Peter Mandl Seite 1 Gesamtüberblick 1. Einführung in 2. Betriebssystemarchitekturen und Betriebsarten 3. Interruptverarbeitung

Mehr

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) J. Zhang zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme

Mehr

9) Speicherverwaltung

9) Speicherverwaltung Inhalte Speicherhierarchien Speicherzuteilung Adressbildung Lineare Adressbildung mit statischer/dynamischer Zuteilung (Segmentierung) Kompaktifizierung Lineare Adressbildung mit virtueller Adressierung

Mehr

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft Prozeß: drei häufigste Zustände Prozeß: anatomische Betrachtung jeder Prozeß verfügt über seinen eigenen Adreßraum Sourcecode enthält Anweisungen und Variablen Compiler überträgt in Assembler bzw. Binärcode

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 11.01.2017 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Proseminar Konzepte von Betriebssystem-Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Von Christian Hubert

Proseminar Konzepte von Betriebssystem-Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Von Christian Hubert Proseminar Konzepte von Betriebssystem-Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging Von Christian Hubert 1.: Speicherung und Adressierung von Daten Bei der Speicheradressierung

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Maren Bennewitz Version 29.1.214 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten

Mehr

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher Speicherverwaltung Aufgaben der Speicherverwaltung wichtigstes Betriebsmittel - neben dem Prozessor: Speicher Sowohl die ausführbaren Programme selbst als auch deren Daten werden in verschiedenen Speicherbereichen

Mehr

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112

Mehr

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset. Quiz Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset 32 Bit Adresse 31 3 29... 2 1 SS 212 Grundlagen der Rechnerarchitektur

Mehr

Lösung von Übungsblatt 5

Lösung von Übungsblatt 5 Lösung von Übungsblatt 5 Aufgabe 1 (Speicherverwaltung) 1. Bei welchen Konzepten der Speicherpartitionierung entsteht interne Fragmentierung? Statische Partitionierung f Dynamische Partitionierung Buddy-Algorithmus

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 13.01.2015 1 Klausur Termin: 10. März 2016, 13:00 Uhr Raum: Audimax, KG 2 4 ECTS Punkte 3 Klausuranmeldung Anmeldefrist: 31.01.2016 (Ausnahme:

Mehr

Linux Paging, Caching und Swapping

Linux Paging, Caching und Swapping Linux Paging, Caching und Swapping Inhalte Paging Das Virtuelle Speichermodell Die Page Table im Detail Page Allocation und Page Deallocation Memory Mapping & Demand Paging Caching Die verschiedenen Caches

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard Systeme I: Betriebssysteme Kapitel 4 Prozesse Wolfram Burgard Version 18.11.2015 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

5.5 Virtueller Speicher

5.5 Virtueller Speicher 5.5 Virtueller Speicher Wenn der reale Speicher sogar für einzelne Prozesse zu klein ist : Virtueller Speicher (virtual memory), ist beliebig groß, nimmt alle Prozesse auf, ist in gleichgroße Teile Seiten

Mehr

Abbilden von virtuellen auf physikalische Adressen

Abbilden von virtuellen auf physikalische Adressen Abbilden von virtuellen auf physikalische Adressen Virtuelle Adresse 31 30 29 28 27... 15 14 13 12 11 10 9 8... 3 2 1 0 Virtuelle Seitennummer Seiten Offset Translation Physikalische Adresse 29 28 27...

Mehr

3 Schnittstelle zum Betriebssystem 3.1 Einleitung

3 Schnittstelle zum Betriebssystem 3.1 Einleitung 3.1 Einleitung 1 Anbindung zum Betriebssystem (BS) Aufgaben BS Schnittstelle zur Hardware Sicherstellung des Betriebs mit Peripherie Dienste erfüllen für Benutzung Rechner Dateiverwaltung (Kopieren, Verwalten,.)

Mehr

Grundlagen der Informatik III Wintersemester 2010/2011

Grundlagen der Informatik III Wintersemester 2010/2011 Grundlagen der Informatik III Wintersemester 2010/2011 Wolfgang Heenes, atrik Schmittat 12. Aufgabenblatt 07.02.2011 Hinweis: Der Schnelltest und die Aufgaben sollen in den Übungsgruppen bearbeitet werden.

Mehr

, 2014W Übungsgruppen: Mo., Mi.,

, 2014W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 7: Speichermanagement 183.579, 2014W Übungsgruppen: Mo., 12.01. Mi., 14.01.2015 Aufgabe 1: Cache-Adressierung Ein Prozessor mit einer Adresslänge von 20 Bit

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 13. Vorlesung Inhalt Cache Lesen Schreiben Überschreiben Memory Management Unit (MMU) Translation Lookaside Buffer (TLB) Klausurvorbereitung Inhalte der Klausur Rechnergrundlagen

Mehr

Wie groß ist die Page Table?

Wie groß ist die Page Table? Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten

Mehr

5. Aufgabenblatt Speicherverwaltung

5. Aufgabenblatt Speicherverwaltung Faculty of Computer Science Institute for System Architecture, Operating Systems Group Betriebssysteme und Sicherheit, WS 0/. Aufgabenblatt Speicherverwaltung Geplante Bearbeitungszeit: drei Wochen Aufgabe.

Mehr

5.4 Segmentierung. Einfachstes Beispiel: 1 Code-Segment + 1 Datensegment. 0 codelength 0 datalength. bs-5.4 1

5.4 Segmentierung. Einfachstes Beispiel: 1 Code-Segment + 1 Datensegment. 0 codelength 0 datalength. bs-5.4 1 5.4 Segmentierung Adressraum besteht aus mehreren Segmenten (segments), die unabhängig voneinander manipulierbar sind. Segmentierungsstruktur ist festgelegt durch die Hardware den Adressumsetzer. Einfachstes

Mehr

2.3 Prozessverwaltung

2.3 Prozessverwaltung Realisierung eines Semaphors: Einem Semaphor liegt genau genommen die Datenstruktur Tupel zugrunde Speziell speichert ein Semaphor zwei Informationen: Der Wert des Semaphors (0 oder 1 bei einem binären

Mehr

Speicherorganisation

Speicherorganisation Speicherorganisation John von Neumann 1946 Ideal wäre ein unendlich großer, undendlich schneller und undendlich billiger Speicher, so dass jedes Wort unmittelbar, d.h. ohne Zeitverlust, zur Verfügung steht

Mehr

Cache Blöcke und Offsets

Cache Blöcke und Offsets Cache Blöcke und Offsets Ein Cache Eintrag speichert in der Regel gleich mehrere im Speicher aufeinander folgende Bytes. Grund: räumliche Lokalität wird wie folgt besser ausgenutzt: Bei Cache Miss gleich

Mehr

Inhaltsübersicht. Speicherverwaltung Teil I. Motivation. Prinzipielle Arten der Speicherverwaltung

Inhaltsübersicht. Speicherverwaltung Teil I. Motivation. Prinzipielle Arten der Speicherverwaltung Speicherverwaltung Teil I Hard- und Software-Komponenten zur Speicherverwaltung Inhaltsübersicht Zusammenhängende Speicherzuteilung Partitionen fester Größe Partitionen variabler Größe Methoden zur Verwaltung

Mehr

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann Speicher- und Cacheverwaltung unter Linux Ralf Petring & Guido Schaumann Übersicht Virtueller Adressraum Virtuelle Speicheraufteilung Reale Speicheraufteilung Speicherverwaltung Speicherzugriff Auslagerungsstrategien

Mehr

Technische Informatik 1 - HS 2017

Technische Informatik 1 - HS 2017 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2017 Übung 11 Datum: 21. 22. 12. 2017 Virtueller Speicher 1 Performanz Gehen Sie von einem virtuellen

Mehr

Grob-Struktur des Prozessor-Speichersystems

Grob-Struktur des Prozessor-Speichersystems 2.3.2 Speicherstruktur (1) Grob-Struktur des Prozessor-Speichersystems Chipsatz (Erklärung s. später, Folie 104) 22.4.-27.5.2013, Folie 52 2.3.2 Speicherstruktur (2) Zugriff Prozessor zumeist auf schnelle

Mehr

Freispeicherverwaltung

Freispeicherverwaltung Freispeicherverwaltung Allgemeine Techniken und Anwendung unter Linux Martin Wahl, 17.11.03 Freispeicherverwaltung 1 Überblick Allgemeines Suchstrategien Verwaltungsstrategien externer / interner Verschnitt

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 16.1.217 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen

Mehr

Technische Informatik II Wintersemester 2002/03 Sommersemester 2001. Heiko Holtkamp Heiko@rvs.uni-bielefeld.de

Technische Informatik II Wintersemester 2002/03 Sommersemester 2001. Heiko Holtkamp Heiko@rvs.uni-bielefeld.de Technische Informatik II Wintersemester 2002/03 Sommersemester 2001 Heiko Holtkamp Heiko@rvs.uni-bielefeld.de Speicher ist eine wichtige Ressource, die sorgfältig verwaltet werden muss. In der Vorlesung

Mehr

Konzepte von Betriebssystem- Komponenten Olessia Usik 20. Juni 2005

Konzepte von Betriebssystem- Komponenten Olessia Usik 20. Juni 2005 Konzepte von Betriebssystem- Komponenten Olessia Usik olessia@freenet.de 20. Juni 2005 1 GROß 2 SCHNELL UNENDLICH Gliederung 1. Einleitung 2. Swapping 3. Virtuelle Speicherverwaltung 3.1 Segmentorientierter

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 11 am 06.07.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Memory Management. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at

Memory Management. Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at Memory Management Peter Puschner Institut für Technische Informatik peter@vmars.tuwien.ac.at 1 Speicherverwaltung Effektive Aufteilung und Verwaltung des Arbeitsspeichers für BS und Programme Anforderungen

Mehr

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL3 Folie 1 Grundlagen Software steuert Computersysteme

Mehr

5.4 Segmentierung. Einfachstes Beispiel: 1 Code-Segment + 1 Datensegment. 0 codelength 0 datalength. bs-5.4 1

5.4 Segmentierung. Einfachstes Beispiel: 1 Code-Segment + 1 Datensegment. 0 codelength 0 datalength. bs-5.4 1 5.4 Segmentierung Adressraum besteht aus mehreren Segmenten (segments), die unabhängig voneinander manipulierbar sind. Segmentierungsstruktur ist festgelegt durch die Hardware den Adressumsetzer. Einfachstes

Mehr

Was machen wir heute? Betriebssysteme Tutorium 11. Mounten: Vorher. Frage 11.1.a

Was machen wir heute? Betriebssysteme Tutorium 11. Mounten: Vorher. Frage 11.1.a Was machen wir heute? Betriebssysteme Tutorium 11 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

Speicherverwaltung und Cache Erläuterungen

Speicherverwaltung und Cache Erläuterungen theoretischen Grundlagen der Lernmaterial zum Modul - 31231 - der Fernuniversität Hagen Inhaltsverzeichnis 1 Speicherverwaltung 5 Erklärung.......................................... 5 1.1 Seitentabelle

Mehr

Lösungsvorschlag für Übung September 2009

Lösungsvorschlag für Übung September 2009 Universität Mannheim Vorlesung Betriebssysteme Lehrstuhl für Praktische Informatik 1 Herbstsemester 2009 Prof. Dr. Felix Freiling Dipl.-Inform. Jan Göbel Lösungsvorschlag für Übung 2 25. September 2009

Mehr

Anbindung zum Betriebssystem (BS)

Anbindung zum Betriebssystem (BS) 7.1 Einleitung Anbindung zum Betriebssystem (BS) Aufgaben BS Schnittstelle von der Software zur Hardware Sicherstellung des Betriebs mit Peripherie Dienste erfüllen für Benutzung Rechner durch Verwaltung

Mehr

Aufgabe 4 : Virtueller Speicher

Aufgabe 4 : Virtueller Speicher Sommer 216 Technische Informatik I Lösungsvorschlag Seite 16 Aufgabe 4 : Virtueller Speicher (maximal 27 Punkte) 4.1: Generelle Funktionsweise (maximal 5 Punkte) (a) (1 Punkt) Nennen Sie zwei Gründe, weshalb

Mehr

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle

Mehr

4.3 Hintergrundspeicher

4.3 Hintergrundspeicher 4.3 Hintergrundspeicher Registers Instr./Operands Cache Blocks Memory Pages program 1-8 bytes cache cntl 8-128 bytes OS 512-4K bytes Upper Level faster Disk Tape Files user/operator Mbytes Larger Lower

Mehr

Definitionen zum Verschnitt

Definitionen zum Verschnitt Definitionen zum Verschnitt Die absoluten Größen haben eine Einheit. Beim Bilden der Verhältnisgrößen wird die Einheit gekürzt. Man kann bei den Verhältnisgrößen die Größe durch die Anzahl vorgegebener

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 10 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur

Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur Themen heute Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur Besprechung des 8. Übungsblattes Aufgabe 2.6. In diesem

Mehr

Anbindung zum Betriebssystem (BS)

Anbindung zum Betriebssystem (BS) 5.1 Einleitung Anbindung zum Betriebssystem (BS) Aufgaben BS Schnittstelle zur Hardware Sicherstellung des Betriebs mit Peripherie Dienste erfüllen für Benutzung des Rechners durch Verwaltung der Ressourcen

Mehr

, 2015W Übungsgruppen: Mo., Mi.,

, 2015W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 7: Speichermanagement 183.579, 2015W Übungsgruppen: Mo., 11.01. Mi., 13.01.2016 Aufgabe 1: Cache-Adressierung Ihr Cachingsystem soll 32 GiB an Speicher auf

Mehr

Überschrift. Speicherverwaltung. Prof. Dr. Margarita Esponda Freie Universität Berlin 2011/2012

Überschrift. Speicherverwaltung. Prof. Dr. Margarita Esponda Freie Universität Berlin 2011/2012 Überschrift Speicherverwaltung Prof. Dr. Margarita Esponda Freie Universität Berlin 2011/2012 1 Hauptziele: Speicherverwaltung Speicher ist die zweite wichtigste Ressource, die das Betriebssystem verwalten

Mehr

Virtueller Speicher WS 2011/2012. M. Esponda-Argüero

Virtueller Speicher WS 2011/2012. M. Esponda-Argüero Virtueller Speicher WS / Virtuelle Speicher Bis jetzt sind wir davon ausgegangen, dass Prozesse komplett im Hauptspeicher gelagert werden. Speicherreferenzen sind nur logische Adressen, die dynamisch in

Mehr