Virtueller Adressraum und Paging in 32-Bit Systemen
42 Questions
4 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Der virtuelle Adressraum ist in 32-Bit Systemen auf 4GB begrenzt.

False (B)

Das Mapping von virtuellen zu physikalischen Seiten erfolgt durch einen Prozess namens Paging.

True (A)

Die 'main()' Funktion wird auf der physikalischen Seite page3 abgebildet.

False (B)

Der Compiler generiert eine ausführbare Datei im physikalischen Speicher.

<p>False (B)</p> Signup and view all the answers

Der Speicher von 'myfunc()' befindet sich im Segment des physikalischen Speicherbereichs page4.

<p>False (B)</p> Signup and view all the answers

Eine 32-Bit Adresse enthält einen 12-Bit Offset im virtuellen Speicherraum.

<p>False (B)</p> Signup and view all the answers

Der virtuelle Speicherraum nutzt eine 4KB Seiten-Größe im Beispiel.

<p>True (A)</p> Signup and view all the answers

Bei einer 10-Bit Offset kann die maximale Anzahl von Seiten 1024 erreichen.

<p>True (A)</p> Signup and view all the answers

Die Seiten-Tabelle verwaltet ausschließlich 4-Bit Adressen.

<p>False (B)</p> Signup and view all the answers

Der PGD hat 16 Einträge, die als pgd_t 0 bis pgd_t 15 bezeichnet werden.

<p>True (A)</p> Signup and view all the answers

Der Wert von myvar ist gleich 42.

<p>False (B)</p> Signup and view all the answers

Die Fragmentierung im physikalischen Speicher entsteht durch das Verschieben von Pages.

<p>True (A)</p> Signup and view all the answers

Allozi-Speicher bezieht sich auf den Heap.

<p>True (A)</p> Signup and view all the answers

Das Stack-Segment besitzt eine Größe, die mit 'int i;' deklariert wird.

<p>False (B)</p> Signup and view all the answers

Der physikalische Speicher kann komplett unabhängig vom Betriebssystem verwaltet werden.

<p>False (B)</p> Signup and view all the answers

Die Anwendung kann ohne Einschränkungen transparente Pages vom OS verschieben.

<p>False (B)</p> Signup and view all the answers

Die Variable myval ist eine Ganzzahl ('int').

<p>True (A)</p> Signup and view all the answers

Die datenorientierte Struktur wird als Segment bezeichnet.

<p>True (A)</p> Signup and view all the answers

Für die Bildung einer Huge Page werden die letzten 10 Bit Offset mit hinzugenommen.

<p>True (A)</p> Signup and view all the answers

Mit einem 22-Bit Offset lassen sich 4.194.304 Bytes ansprechen.

<p>False (B)</p> Signup and view all the answers

Die PMD-Einträge in einem 32-Bit Adressraum sind jeweils 8 kB groß.

<p>False (B)</p> Signup and view all the answers

Ein 22-Bit Offset ermöglicht die Adressierung von 2^22 Bytes im virtuellen Speicherraum.

<p>True (A)</p> Signup and view all the answers

Der Index in der PGD ist vollständig unabhängig von den PMD- und PTE-Einträgen.

<p>False (B)</p> Signup and view all the answers

Die Offset-Größe im virtuellen Speicherraum beträgt 12 Bit.

<p>False (B)</p> Signup and view all the answers

Die Adresse in einem 32-Bit System wird durch einen 10-Bit und einen 22-Bit Offset dargestellt.

<p>True (A)</p> Signup and view all the answers

In einem 32-Bit Adressraum gibt es maximal 4096 PMD-Einträge.

<p>True (A)</p> Signup and view all the answers

Der virtuelle Speicherraum bei 64-Bit Systemen kann durch 4kB Seiten abgebildet werden.

<p>True (A)</p> Signup and view all the answers

Die Struktur 'mm_struct' repräsentiert den aktuellen physikalischen Speicher des Prozesses.

<p>False (B)</p> Signup and view all the answers

Das 4-stufige Mapping für virtuelle Adressen umfasst die Einträge PGD, PUD, PMD und PTE.

<p>True (A)</p> Signup and view all the answers

Ein PGD (Page Global Directory) Eintrag kann mehr als 512 PTE (Page Table Entries) enthalten.

<p>False (B)</p> Signup and view all the answers

Der Offset in einer 64-Bit Adresse ist auf 10 Bit beschränkt.

<p>False (B)</p> Signup and view all the answers

Die Struktur 'pte_t' enthält Informationen über eine physikalische Seite.

<p>True (A)</p> Signup and view all the answers

Das Paging erfolgt in 2MB großen Blöcken, die als Huge Pages bezeichnet werden.

<p>True (A)</p> Signup and view all the answers

Die Funktion 'pte_offset_map' gibt einen Zeiger auf die physikalische Seite zurück.

<p>False (B)</p> Signup and view all the answers

Der Speicherverbrauch eines Prozesses kann mit dem Tool pmap überprüft werden.

<p>True (A)</p> Signup and view all the answers

Die Ausgabe von 'cat /proc/meminfo' liefert Informationen über den Netzwerkauslastung.

<p>False (B)</p> Signup and view all the answers

Huge Pages sind spezielle Seitenformate, die in der Speicherverwaltung verwendet werden.

<p>True (A)</p> Signup and view all the answers

Mit dem Befehl 'vmstat' kann man nur die CPU-Auslastung eines Prozesses überwachen.

<p>False (B)</p> Signup and view all the answers

Die Shell-Befehle ulimit -a und cat /proc/$$/limits liefern Informationen über die User-Limits.

<p>True (A)</p> Signup and view all the answers

Das Programm memory_allocation.c ist dafür verantwortlich, den Speicherverbrauch eines Browser zu überwachen.

<p>False (B)</p> Signup and view all the answers

Der Befehl 'htop' ist eine erweiterte Version von top, die eine grafische Benutzeroberfläche bietet.

<p>True (A)</p> Signup and view all the answers

Der Befehl 'cat /proc/$$/smaps' zeigt nur die Speicherkarten eines bestimmten Prozesses an.

<p>True (A)</p> Signup and view all the answers

Flashcards

Virtuelle Adresse

Die Adresse, die von der CPU verwendet wird, um auf Daten im Speicher zuzugreifen.

Physikalische Adresse

Die tatsächliche physische Adresse im Hauptspeicher, an der die Daten abgelegt sind.

Seite (Page)

Ein Bereich im virtuellen Adressraum, der einer festen Größe im physischen Speicher entspricht.

Mapping

Das Verfahren, virtuelle Adressen in physische Adressen umzuwandeln.

Signup and view all the flashcards

Adressübersetzung

Ein Prozess, bei dem der Prozessor die virtuelle Adresse in eine physische Adresse umrechnet.

Signup and view all the flashcards

Daten-Segment

Ein Segment des Speichers, das Daten enthält.

Signup and view all the flashcards

Code-Segment

Ein Segment des Speichers, das den Programmcode enthält.

Signup and view all the flashcards

Stack-Segment

Ein Segment des Speichers, das für lokale Variablen während der Programmausführung reserviert ist.

Signup and view all the flashcards

Heap-Segment

Ein Segment im Speicher, das für dynamische Speicherverwaltung genutzt wird.

Signup and view all the flashcards

Speicherallokation

Der Vorgang, Daten in einem Speicher zu verschieben, um Fragmentierung zu vermeiden.

Signup and view all the flashcards

Pages

Das Verschieben von Programmkoden oder Daten innerhalb des physischen Speichers, um eine effiziente Speicherverwaltung zu ermöglichen.

Signup and view all the flashcards

Speicherfragmentierung

Die Aufteilung des physischen Speichers in kleinere Blöcke, die dann einzelnen Prozessen zugewiesen werden.

Signup and view all the flashcards

Page Directory (PGD)

Die Page Directory (PGD) ist eine Tabelle, die die Adressen von Page Tables enthält. Jede Eintrag in der PGD enthält den physischen Start-Speicherort der entsprechenden Page Table.

Signup and view all the flashcards

Page Table

Eine Page Table ist eine Tabelle, die die Start-Speicherorte von physischen Seiten im Hauptspeicher enthält. Jeder Eintrag in der Page Table entspricht einer virtuellen Seite.

Signup and view all the flashcards

32-Bit-Adresse für 4KB-Seiten

Bei einem 32-Bit-System wird eine virtuelle Adresse in 3 Teile aufgeteilt: einen 10-Bit Offset für die Page Table, einen 12-Bit Offset für die Seite innerhalb der Page Table und einen 10-Bit Offset für die Position innerhalb der Seite.

Signup and view all the flashcards

Page Table Walk

Der Page Table Walk ist der Prozess, der bei der Übersetzung einer virtuellen Adresse in eine physische Adresse durchlaufen wird. Dabei wird zuerst die richtige Page Directory (PGD) ausgewählt, dann die richtige Page Table innerhalb der PGD und schließlich die richtige physische Seite innerhalb der Page Table.

Signup and view all the flashcards

Page-Größe

Die Größe einer Seite im Hauptspeicher wird durch "Page-Größe" angegeben, die in diesem Fall 4KB betragen.

Signup and view all the flashcards

Kernel-Adressraum

Der Teil des virtuellen Adressraums, der vom Kernel (Betriebssystem) verwendet wird.

Signup and view all the flashcards

Benutzer-Adressraum

Der Teil des virtuellen Adressraums, der von Benutzerprogrammen verwendet wird.

Signup and view all the flashcards

Huge Page

Eine große Seite, die 4 MiB groß ist und 1024 normale Seiten zusammenfasst.

Signup and view all the flashcards

Page Table (Seitentafel)

Ein Datenstruktur, die die Zuordnung zwischen virtuellen und physischen Adressen speichert.

Signup and view all the flashcards

Page Table Entry (PTE)

Ein Eintrag in der Page Table, der Informationen über eine Seite enthält.

Signup and view all the flashcards

Kernbereich (Kernel space)

Der Teil des virtuellen Adressraums, der mit dem Kernel-Adressraum übereinstimmt.

Signup and view all the flashcards

Benutzerbereich (User space)

Der Teil des virtuellen Adressraums, der mit dem Benutzer-Adressraum übereinstimmt.

Signup and view all the flashcards

top

Ein Befehlszeilen-Tool zur Überwachung der Systemressourcen, einschließlich des Speicherverbrauchs.

Signup and view all the flashcards

htop

Ein verbessertes, interaktives Interface von 'top', das detaillierte Informationen zu Prozessen und Systemressourcen liefert.

Signup and view all the flashcards

pmap

Ein Shell-Befehl zur Analyse des Speicherverbrauchs eines Programms.

Signup and view all the flashcards

vmstat

Ein Befehlszeilenprogramm zur Überwachung von Systemstatistiken und Prozessen, einschließlich des Speicherverbrauchs.

Signup and view all the flashcards

/proc

Ein Systemverzeichnis, das Informationen über Prozesse enthält, z. B. den Speicherverbrauch.

Signup and view all the flashcards

cat /proc/$$/status

Ein Shell-Befehl, der die Prozess-Informationen in /proc/$$/status ausgibt.

Signup and view all the flashcards

cat /proc/$$/smaps

Ein Shell-Befehl zur Anzeige der Speicherzuweisung von Programmbibliotheken.

Signup and view all the flashcards

Seitentabellen (Page Tables)

Die Tabellen, die die Zuordnung von virtuellen zu physischen Adressen verwalten. Sie ermöglichen die Übersetzung von virtuellen Adressen in physische Adressen.

Signup and view all the flashcards

Adressübersetzung (Address Translation)

Die Übersetzung einer virtuellen Adresse in eine physische Adresse durch die Verwendung von Seitentabellen.

Signup and view all the flashcards

Page Global Directory (PGD)

Eine Datenstruktur, die alle Seitentabellen eines Prozesses enthält.

Signup and view all the flashcards

Page Upper Directory (PUD)

Eine Datenstruktur, die eine Teilmenge der Seitentabellen verwaltet, die innerhalb eines bestimmten Adressbereichs liegen.

Signup and view all the flashcards

Page Middle Directory (PMD)

Eine Datenstruktur, die eine weitere Teilmenge der Seitentabellen innerhalb eines bestimmten Adressbereichs verwaltet.

Signup and view all the flashcards

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.

Quiz Team

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.

More Like This

Virtual Memory Concepts
24 questions

Virtual Memory Concepts

FastestGrowingDulcimer avatar
FastestGrowingDulcimer
Virtual Memory Management in Nested Paging
42 questions
Use Quizgecko on...
Browser
Browser