Podcast
Questions and Answers
Der virtuelle Adressraum ist in 32-Bit Systemen auf 4GB begrenzt.
Der virtuelle Adressraum ist in 32-Bit Systemen auf 4GB begrenzt.
False
Das Mapping von virtuellen zu physikalischen Seiten erfolgt durch einen Prozess namens Paging.
Das Mapping von virtuellen zu physikalischen Seiten erfolgt durch einen Prozess namens Paging.
True
Die 'main()' Funktion wird auf der physikalischen Seite page3 abgebildet.
Die 'main()' Funktion wird auf der physikalischen Seite page3 abgebildet.
False
Der Compiler generiert eine ausführbare Datei im physikalischen Speicher.
Der Compiler generiert eine ausführbare Datei im physikalischen Speicher.
Signup and view all the answers
Der Speicher von 'myfunc()' befindet sich im Segment des physikalischen Speicherbereichs page4.
Der Speicher von 'myfunc()' befindet sich im Segment des physikalischen Speicherbereichs page4.
Signup and view all the answers
Eine 32-Bit Adresse enthält einen 12-Bit Offset im virtuellen Speicherraum.
Eine 32-Bit Adresse enthält einen 12-Bit Offset im virtuellen Speicherraum.
Signup and view all the answers
Der virtuelle Speicherraum nutzt eine 4KB Seiten-Größe im Beispiel.
Der virtuelle Speicherraum nutzt eine 4KB Seiten-Größe im Beispiel.
Signup and view all the answers
Bei einer 10-Bit Offset kann die maximale Anzahl von Seiten 1024 erreichen.
Bei einer 10-Bit Offset kann die maximale Anzahl von Seiten 1024 erreichen.
Signup and view all the answers
Die Seiten-Tabelle verwaltet ausschließlich 4-Bit Adressen.
Die Seiten-Tabelle verwaltet ausschließlich 4-Bit Adressen.
Signup and view all the answers
Der PGD hat 16 Einträge, die als pgd_t 0 bis pgd_t 15 bezeichnet werden.
Der PGD hat 16 Einträge, die als pgd_t 0 bis pgd_t 15 bezeichnet werden.
Signup and view all the answers
Der Wert von myvar ist gleich 42.
Der Wert von myvar ist gleich 42.
Signup and view all the answers
Die Fragmentierung im physikalischen Speicher entsteht durch das Verschieben von Pages.
Die Fragmentierung im physikalischen Speicher entsteht durch das Verschieben von Pages.
Signup and view all the answers
Allozi-Speicher bezieht sich auf den Heap.
Allozi-Speicher bezieht sich auf den Heap.
Signup and view all the answers
Das Stack-Segment besitzt eine Größe, die mit 'int i;' deklariert wird.
Das Stack-Segment besitzt eine Größe, die mit 'int i;' deklariert wird.
Signup and view all the answers
Der physikalische Speicher kann komplett unabhängig vom Betriebssystem verwaltet werden.
Der physikalische Speicher kann komplett unabhängig vom Betriebssystem verwaltet werden.
Signup and view all the answers
Die Anwendung kann ohne Einschränkungen transparente Pages vom OS verschieben.
Die Anwendung kann ohne Einschränkungen transparente Pages vom OS verschieben.
Signup and view all the answers
Die Variable myval ist eine Ganzzahl ('int').
Die Variable myval ist eine Ganzzahl ('int').
Signup and view all the answers
Die datenorientierte Struktur wird als Segment bezeichnet.
Die datenorientierte Struktur wird als Segment bezeichnet.
Signup and view all the answers
Für die Bildung einer Huge Page werden die letzten 10 Bit Offset mit hinzugenommen.
Für die Bildung einer Huge Page werden die letzten 10 Bit Offset mit hinzugenommen.
Signup and view all the answers
Mit einem 22-Bit Offset lassen sich 4.194.304 Bytes ansprechen.
Mit einem 22-Bit Offset lassen sich 4.194.304 Bytes ansprechen.
Signup and view all the answers
Die PMD-Einträge in einem 32-Bit Adressraum sind jeweils 8 kB groß.
Die PMD-Einträge in einem 32-Bit Adressraum sind jeweils 8 kB groß.
Signup and view all the answers
Ein 22-Bit Offset ermöglicht die Adressierung von 2^22 Bytes im virtuellen Speicherraum.
Ein 22-Bit Offset ermöglicht die Adressierung von 2^22 Bytes im virtuellen Speicherraum.
Signup and view all the answers
Der Index in der PGD ist vollständig unabhängig von den PMD- und PTE-Einträgen.
Der Index in der PGD ist vollständig unabhängig von den PMD- und PTE-Einträgen.
Signup and view all the answers
Die Offset-Größe im virtuellen Speicherraum beträgt 12 Bit.
Die Offset-Größe im virtuellen Speicherraum beträgt 12 Bit.
Signup and view all the answers
Die Adresse in einem 32-Bit System wird durch einen 10-Bit und einen 22-Bit Offset dargestellt.
Die Adresse in einem 32-Bit System wird durch einen 10-Bit und einen 22-Bit Offset dargestellt.
Signup and view all the answers
In einem 32-Bit Adressraum gibt es maximal 4096 PMD-Einträge.
In einem 32-Bit Adressraum gibt es maximal 4096 PMD-Einträge.
Signup and view all the answers
Der virtuelle Speicherraum bei 64-Bit Systemen kann durch 4kB Seiten abgebildet werden.
Der virtuelle Speicherraum bei 64-Bit Systemen kann durch 4kB Seiten abgebildet werden.
Signup and view all the answers
Die Struktur 'mm_struct' repräsentiert den aktuellen physikalischen Speicher des Prozesses.
Die Struktur 'mm_struct' repräsentiert den aktuellen physikalischen Speicher des Prozesses.
Signup and view all the answers
Das 4-stufige Mapping für virtuelle Adressen umfasst die Einträge PGD, PUD, PMD und PTE.
Das 4-stufige Mapping für virtuelle Adressen umfasst die Einträge PGD, PUD, PMD und PTE.
Signup and view all the answers
Ein PGD (Page Global Directory) Eintrag kann mehr als 512 PTE (Page Table Entries) enthalten.
Ein PGD (Page Global Directory) Eintrag kann mehr als 512 PTE (Page Table Entries) enthalten.
Signup and view all the answers
Der Offset in einer 64-Bit Adresse ist auf 10 Bit beschränkt.
Der Offset in einer 64-Bit Adresse ist auf 10 Bit beschränkt.
Signup and view all the answers
Die Struktur 'pte_t' enthält Informationen über eine physikalische Seite.
Die Struktur 'pte_t' enthält Informationen über eine physikalische Seite.
Signup and view all the answers
Das Paging erfolgt in 2MB großen Blöcken, die als Huge Pages bezeichnet werden.
Das Paging erfolgt in 2MB großen Blöcken, die als Huge Pages bezeichnet werden.
Signup and view all the answers
Die Funktion 'pte_offset_map' gibt einen Zeiger auf die physikalische Seite zurück.
Die Funktion 'pte_offset_map' gibt einen Zeiger auf die physikalische Seite zurück.
Signup and view all the answers
Der Speicherverbrauch eines Prozesses kann mit dem Tool pmap überprüft werden.
Der Speicherverbrauch eines Prozesses kann mit dem Tool pmap überprüft werden.
Signup and view all the answers
Die Ausgabe von 'cat /proc/meminfo' liefert Informationen über den Netzwerkauslastung.
Die Ausgabe von 'cat /proc/meminfo' liefert Informationen über den Netzwerkauslastung.
Signup and view all the answers
Huge Pages sind spezielle Seitenformate, die in der Speicherverwaltung verwendet werden.
Huge Pages sind spezielle Seitenformate, die in der Speicherverwaltung verwendet werden.
Signup and view all the answers
Mit dem Befehl 'vmstat' kann man nur die CPU-Auslastung eines Prozesses überwachen.
Mit dem Befehl 'vmstat' kann man nur die CPU-Auslastung eines Prozesses überwachen.
Signup and view all the answers
Die Shell-Befehle ulimit -a und cat /proc/$$/limits liefern Informationen über die User-Limits.
Die Shell-Befehle ulimit -a und cat /proc/$$/limits liefern Informationen über die User-Limits.
Signup and view all the answers
Das Programm memory_allocation.c ist dafür verantwortlich, den Speicherverbrauch eines Browser zu überwachen.
Das Programm memory_allocation.c ist dafür verantwortlich, den Speicherverbrauch eines Browser zu überwachen.
Signup and view all the answers
Der Befehl 'htop' ist eine erweiterte Version von top, die eine grafische Benutzeroberfläche bietet.
Der Befehl 'htop' ist eine erweiterte Version von top, die eine grafische Benutzeroberfläche bietet.
Signup and view all the answers
Der Befehl 'cat /proc/$$/smaps' zeigt nur die Speicherkarten eines bestimmten Prozesses an.
Der Befehl 'cat /proc/$$/smaps' zeigt nur die Speicherkarten eines bestimmten Prozesses an.
Signup and view all the answers
Study Notes
Betriebssysteme (BS)
- Das Thema ist Betriebssysteme (BS)
- Es geht um die virtuelle Speicherverwaltung (VIII. Virtuelle Speicherverwaltung)
- Die Dozenten sind Prof. Dr.-Ing. Rainer Keller und Prof. Dr. Dennis Grewe.
- Der Veranstaltungsort ist Hochschule Esslingen.
Lehrveranstaltung Wintersemester 2024/2025
- Die Folien betreffen die Lehrveranstaltung Betriebssysteme im Wintersemester 2024/2025.
- Es gibt eine Möglichkeit, Fragen zu stellen und seine Meinung zu äußern.
- Es besteht die Möglichkeit, an einem Quiz zur Wiederholung teilzunehmen (Scheduler)
- Die Vorlesung wird von Profs. Grewe & Keller gehalten
Agenda
- Die Agenda listet die Themen auf, die in der Vorlesung besprochen werden werden.
- Die Themen betreffen virtuellen Speicher, dessen Verwaltung, die Abbildung auf physikalische Adressen und das Konzept des Paging.
Ziele
- Die Ziele der Vorlesung beinhalten das Verständnis der Linux-Speicherverwaltung und die Definitionen wichtiger Begriffe wie virtueller Speicher, Paging, etc..
- Die Umsetzung von virtuellen auf physikalische Adressen soll verstanden werden.
- Es wird empfohlen, sich in den Grafiken Notizen zu machen.
Definition: THREAD
- Ein Thread ist eine kleine Ausführungseinheit, die vom Linux-Kernel geplant wird.
- Threads innerhalb eines Prozesses teilen globale Variablen und offene Dateideskriptoren (FDs).
- Threads teilen den gleichen Adressraum, Heap und dynamischen Speicher.
- Jeder Thread verfügt über einen eigenen Registersatz, Stack und Thread-lokale Variablen (z. B. errno).
Linux Prozesskontext: Threads & Tasks
- Es gibt drei Implementierungsmethoden für Threads im Prozesskontext. (1:n, 1:1, m:n)
- Frühere Java-VM's, Linux, Solaris <9, Windows
Frage zu Prozesse & Threads
- Die Folie enthält Fragen zu den Ressourcen, die Threads und Prozesse in einem Linux-Prozess teilen, sowie die Ressourcen, die jeder Thread für sich hat.
- Es wird gefragt, in welcher Datenstruktur diese Informationen in Linux gespeichert werden.
Aufbau eines Unix Prozesses
- Der Betriebs-systemkontext des Prozesses umfasst Ressourcen wie offene Dateien, TCP-Sockets und Unix-Locks.
- Der Hardware- Kontext des Prozesses umfasst den verfügbaren Speicher, den Stack und das Adressraum, den Segmentzuweisungen (Daten, Text / Code)
Wiederholung Linux
- Linus Torvalds hat 1991 einen PC mit Intel i386 Prozessor gekauft.
- Intel 80386 ist ein neuartiger 32-Bit Prozessor, abwärtskompatibel zu 80296 (16bit) und 8086/8088.
- Die Architektur des Prozessors ist "kränklich"; wenige Register, feste Zuordnungen von Instruktionen zu bestimmten Registern, eingeschränkte Floating-Point Unit.
Speicherzugriffe: Beobachtung zu Caches
- Jeder Speicherzugriff muss schnell sein
- Caches arbeiten optimal, wenn der Zugriff auf Daten räumliche und zeitliche Lokalität aufweist.
Speicherschutzkonzept
- Speicherschutz ist ein Mechanismus, der den Zugriff auf den Arbeitsspeicher kontrolliert.
- Ziel ist die Integrität und Stabilität des Systems zu gewährleisten, indem verhindert wird, dass Prozesse unberechtigt auf den Speicher anderer Prozesse oder das Betriebssystem zugreifen.
- Prozesse müssen voneinander isoliert sein.
- Prozesse sollen nur auf Speicherbereiche zugreifen dürfen, die ihnen explizit zugewiesen wurden.
Speicherschutzkonzept: Intel i386 Prozessor
- Der Intel i386 war in der Entwicklung moderner und sicherer Systeme federführend, auch bei Speicherschutzkonzepten.
- Einführung des 32-Bit Betriebs - Unterstützung für virtuellen Speicher und Paging.
- Erweiterung der Segmentierung mit Schutzmechanismen - Ring-Schutzmodell (Privilegienstufen von Ring 0 bis Ring 3).
Historie Virtuelle Speicherverwaltung
- Die Geschichte der virtuellen Speicherverwaltung bei Intel 80386 bis heute wird behandelt.
Pages: Speicherscheiben aus Sicht des i386
- Der physikalische Speicher wird in 4KB große Pages unterteilt.
- Jede Page hat einen Diskriptor, den der Prozessor für den Zugriffskontrolle verwendet.
- Data-Segment-Diskriptor des i386 (32-Bit Prozessor): Aufbau (Base, Limit, DPL, Type, P)
Pages: Speicherscheiben aus Sicht des x86-64
- Seit dem AMD64 Prozessor (x86-64) gilt die Adresslänge als 64 Bit.
- Von den 64 Bit werden 48 Bit für die Adressleitungen verwendet.
- Der Seiten-Deskriptor wird nicht aufgebläht, sondern nur die notwendigen Bits verwendet.
Speicherschutz: Abbildung virtuell -> physikalische Adresse
- Die Umwandlung von 64-Bit virtuellen Adressen in 64-Bit physikalische Adressen erfolgt durch den Translation Lookaside Buffer (TLB) der Memory Management Unit (MMU).
- TLB agiert als Cache für die CPU für Übersetzungen.
- Seitentabellen (Page Tables), die vom Betriebssystem verwaltet werden, spielen eine Rolle bei der Umsetzung.
Virtueller Speicher: Adressumwandlung
- Umwandlung der 64-Bit virtuellen Adressen in 64-Bit physikalische Adressen durch den Translation Lookaside Buffer (TLB).
- TLB als Hardware-Cache in der CPU für effiziente Übersetzungen.
- Seitentabellen (Page Tables) vom Betriebssystem verwaltet.
Virtualisierung in Linux: Speicherverwaltung
- Linux muss viele Pages verwalten.
- Das Betriebssystem verwaltet den RAM effizient unter Beachtung von Speicher, Zeit und Anforderungen von Anwendungen.
Virtuelle Speicherverwaltung: Page Global Directory
- Auf einem 32-Bit x86-System enthält das Page Global Directory (PGD) vier Einträge, die jeweils 1GB virtuellem Adressraum entsprechen.
- Das PGD wird anhand der obersten beiden Bits der virtuellen Adresse indiziert.
- Jeder PDG-Eintrag verweist auf ein Page Middle Directory (PMD).
Virtuelle Speicherverwaltung: Page Middle Directory
- Das Page Middle Directory (PMD) enthält 1024 Einträge, die durch die oberen 10 Bit einer virtuellen Adresse indiziert werden.
- PMD-Einträge verweisen auf die Page Table Entries (PTE).
Virtuelle Speicherverwaltung: Page Table Entry
- Ein Eintrag in der Page Table Entry (PTE) Tabelle enthält die physische Adresse der 4KB Page, sofern diese im RAM vorhanden ist.
- Die letzten 12 Bits der virtuellen Adresse zeigen auf die physische Adresse der Page.
Page Table Walk (32-Bit bei 4KB Page-Größe)
- Die 32-Bit Adresse im virtuellem Speicherraum wird in verschiedene Teile zerlegt (4Bit, 10Bit, 12Bit Offset).
- Durch Suchen in PGD, PMD und PTE findet man die physische Adresse.
Page Table Walk (64-Bit bei 4KB Page Größe)
- Die 64-Bit Adresse im virtuellen Speicherraum wird in verschiedene Teile zerlegt und in der Tabelle gesucht.
Page Table Walk (64-Bit bei 2MB/1GB Huge Pages)
- Die 64-Bit Adresse wird zerlegt und mit den neuen Offsets in den Tabellen gesucht.
Speicherseiten: Pages im Linux-Kernel
- Zur Verwaltung jeder Seite benötigt der Linux-Kernel eine Datenstruktur.
- Prozesse verhalten Listen mit ihren zugeordneten Seiten.
Virtualisierung in Linux: Physikalische Speicherverwaltung -> Buddy Algorithmus
- Der Buddy-Algorithmus ist ein Algorithmus zur Speicherverwaltung, der in vielen Betriebssystemen, auch in Linux, verwendet wird.
- Er reduziert Speicherfragmentierung und bietet effiziente Speicherzuteilung.
Buddy-Speicherverwaltung
- Die Buddy-Speicherverwaltung ist ein Algorithmus zur effizienten Verwaltung von Speicherblöcken.
- Blöcke werden in größeren Blöcken organisiert und bei Bedarf in kleinere Unterteile geteilt.
- Freigegebene Blöcke werden mit ihren Buddy-Blöcken zusammengeführt.
Auslagerung von Pages
- Das Auslagern von Pages auf die Festplatte (Paging/Swapping) ist für die effiziente Nutzung des begrenzten RAM-Speichers wichtig.
- Das Ziel ist es, wenig genutzte Daten temporär auf die Festplatte zu verschieben, um mehr RAM für aktive Prozesse freizugeben.
- Der Nachteil ist die langsamere Zugriffszeit auf die ausgelagerten Daten
Flags für Pages: Copy-on-Write (COW)
- Bei der CoW-Technik wird eine Seite erst dann in den physikalischen Speicher kopiert, wenn sie geschrieben wird.
- Dadurch wird Speicherverbrauch reduziert, da nicht benötigte Pages nicht kopiert werden müssen.
BS Aufgaben: Übungen
- Es werden Aufgaben und Übungen zu Themen wie Prozessor-Hardware, Speicherverbrauch, etc. gestellt.
Tools zum Überwachen: Top/Htop, Vmsstat, Pmap
- Tools (z.B. top, htop, vmstat, pmap) zur Überwachung des Systemsperverbrauchs während dem Ausführen von Programmen.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Dieses Quiz behandelt die Konzepte des virtuellen Adressraums und des Paging in 32-Bit Systemen. Fragen werden sich auf die Funktionsweise von Seiten, den Speicheraufbau sowie die Zuordnung von virtuellen zu physikalischen Adressen konzentrieren. Teste dein Wissen über Aspekte wie Fragmentierung und Segmente im physikalischen Speicher.