Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... ·...

37
1 Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Version 21.12.2016

Transcript of Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... ·...

Page 1: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

1

Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme

Version 21.12.2016

Page 2: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Inhalt Vorlesung

Aufbau einfacher Rechner

Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Betriebssysteme: Komponenten & Konzepte

Dateisysteme

Prozesse

Nebenläufigkeit und wechselseitiger Ausschluss

Deadlocks

Scheduling

Speicherverwaltung

Sicherheit

4

Page 3: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Speicherhierarchie

5

Register

Hauptspeicher

Cache

Festplatte / Solid-State Drive

Magnetband

Page 4: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

1

1000

1000000

1E+09

1E+12

Typische Kapazität

[Byte]

Speicherhierarchie

6

1E+06

Register

Hauptspeicher

Cache

Festplatte / Solid-State Drive

Magnetband

Page 5: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Speicherhierarchie

7

1.00E+00

1.00E+03

1.00E+06

1.00E+09

Zugriffszeit [ps] Register

Hauptspeicher

Cache

Festplatte / Solid-State Drive

Magnetband

Page 6: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

1

10

100

1000

10000

Preis pro TiB [EUR]

Speicherhierarchie

8

Register

Hauptspeicher

Cache

Festplatte / Solid-State Drive

Magnetband

Page 7: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Speicherhierarchie

9

Kleine Kapazität, kurze Zugriffszeit, hohe Kosten pro Bit

Große Kapazität, lange Zugriffszeit,

niedrige Kosten pro Bit

Register

Hauptspeicher

Cache

Festplatte / Solid-State Drive

Magnetband

Page 8: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Einführung

Hauptspeicher ist in mehrere Bereiche aufgeteilt

Bereich für das Betriebssystem

Bereich für Prozesse

Speicherverwaltung: Dynamische Aufteilung entsprechend aktueller Prozesse

Speicher muss effizient aufgeteilt werden, damit möglichst viele Prozesse Platz haben

10

Page 9: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Adressraum

Abstraktion vom physikalischen Speicher

Speicherzellen im Hauptspeicher haben eindeutige Adresse

Adressraum: Menge von Adressen, die ein Prozess benutzen darf (lesen / schreiben)

Jeder Prozess hat eigenen Adressraum

11 Betriebssystem Addressraum P1 Addressraum P2

Page 10: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Anforderungen an Speicherverwaltung

Bereitstellung von Platz im Hauptspeicher für Betriebssystem und Prozesse

Ziel aus Betriebssystemsicht: Möglichst viele Prozesse im Speicher

Fünf wichtige Anforderungen:

Relokation

Schutz

Gemeinsame Nutzung

Logische Organisation

Physikalische Organisation 12

Page 11: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Anforderungen an Speicherverwaltung

Bereitstellung von Platz im Hauptspeicher für Betriebssystem und Prozesse

Ziel aus Betriebssystemsicht: Möglichst viele Prozesse im Speicher

Fünf wichtige Anforderungen:

Relokation

Schutz

Gemeinsame Nutzung

Logische Organisation

Physikalische Organisation 13

Page 12: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

14

Relokation (1)

Relokation = Verlagerung

Mehrere Prozesse gleichzeitig im System

Auslagern und Wiedereinlagern von Prozessen aus dem Hauptspeicher

Ort der Einlagerung im Voraus unbekannt

Page 13: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Relokation (2)

15 Hauptspeicher

Prozess 2

Prozess 1

Festplatte

Prozess 2

...

Prozess 2 wird ausgelagert

Page 14: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Relokation (3)

16 Hauptspeicher Festplatte

Prozess 1

Prozess 2

Prozess 3

Prozess 2

Prozess 3 wird eingelagert

Prozess 2 wird eingelagert an neuer Position

Page 15: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Beispiel Relokationsproblem

17

ADD

JMP 16

MOV

0

. .

.

20

0

4

8

12

16

16380

CMP

JMP 20

0

. . .

20

0

4

8

12

16

16380

Programm A Programm B

ADD

JMP 16

MOV

0

. . .

20

0

4

8

12

16

16380

CMP

JMP 20

0

. . .

16404

16384

16388

16392

16396

16400

32764

A und B im Speicher

Page 16: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

18

Relokation (4)

Problem: Speicherreferenzen innerhalb des Programms

Absolute Sprungbefehle: Adresse auf den nächsten auszuführenden Befehl

Datenzugriffsbefehle: Adresse des Bytes, das referenziert wird

Prozessorhardware und Betriebssystem müssen die Speicherreferenzen in physikalische Speicheradressen übersetzen

Page 17: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Relokation (5)

Beispiel Sprungbefehl: JMP i

Beispiel Datenzugriffsbefehl: MOV REG1,j

19

Beginn Prozesskontrollinformationen

Einsprungstelle ins Programm Zunehm

ende

Adre

ssw

erte

Programmende

Prozesskontrollblock

Programm

Daten

Zugriff auf Daten

Sprung-befehl

. . .

. . .

Page 18: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

20

Relokation (6)

Physikalische bzw. absolute Adresse: Konkrete Stelle im Hauptspeicher

Logische Adresse: Bezug auf eine Speicherstelle, unabhängig von der aktuellen Zuteilung im Speicher

Relative Adresse:

Spezialfall einer logischen Adresse

Adresse relativ zu einem bekannten Punkt (in der Regel Programmanfang)

Page 19: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

21

Relokation (7)

Dynamisches Laden zur Laufzeit: Berechnung von absoluten Adressen aus relativen Adressen durch Hardware

Beim Einlagern: Adresse des Programm-anfangs wird im Basisregister gespeichert

Page 20: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

22

Relokation über Basisregister

Prozess im Hauptspeicher

. .

.

Programm

Basisregister

Addierer

Relative Adresse i

Absolute Adresse b+i

Prozesskontrollblock

Daten

. . .

LOAD i

b

Page 21: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

23

Relokation (7)

Dynamisches Laden zur Laufzeit: Berechnung von absoluten Adressen aus relativen Adressen durch Hardware

Beim Einlagern: Adresse des Programm-anfangs wird im Basisregister gespeichert

Absolute Adresse: Relative Adresse wird um den Wert erhöht, der sich im Basisregister befindet

Page 22: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Anforderungen an Speicherverwaltung

Bereitstellung von Platz im Hauptspeicher für Betriebssystem und Prozesse

Ziel aus Betriebssystemsicht: Möglichst viele Prozesse im Speicher

Fünf wichtige Anforderungen:

Relokation

Schutz

Gemeinsame Nutzung

Logische Organisation

Physikalische Organisation 24

Page 23: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Schutz (1)

Schutz von Prozessen gegen Störungen durch andere Prozesse

Überprüfung aller Speicherzugriffe notwendig

Schwierigkeit: I.d.R. nicht zur Übersetzungszeit eines Programms überprüfbar

Grund: Dynamisch berechnete Adressen während der Laufzeit, absolute Adressen nicht bekannt

25

Page 24: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Schutz (2)

Lösung: Dynamische Überprüfung zur Laufzeit

Ggf. Abbruch von Befehlen bei Zugriff auf Datenbereich anderer Prozesse

Grenzregister/Limitregister: Enthält die Größe des Adressraums eines Programms

26

Page 25: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

27

Relokation und Schutz (1)

Prozess im Hauptspeicher

. .

.

Programm

Basisregister

Addierer

Relative Adresse i

Absolute Adresse b+i

Prozesskontrollblock

Daten

. . .

LOAD i

b

Page 26: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

28

Relokation und Schutz (1)

Prozess im Hauptspeicher

. .

.

Programm

Addierer

Relative Adresse i

Prozesskontrollblock

Daten

. . .

LOAD i

b

g

Grenzregister

Addierer

g

Absolute Adresse b+i

𝑏 + 𝑖 ∈ 𝑏; 𝑏 + 𝑔 ? Vergleicher

Absolute Addresse b+i

Unterbrechung an

Betriebssystem (trap)

sonst

b+g

b

Basisregister

Page 27: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

29

Relokation und Schutz (2)

Absolute Adresse: Relative Adresse wird um den Wert erhöht, der sich im Basisregister befindet

Vergleich der resultierenden Adresse

Mit Basisregister

Mit Basisregister + Grenzregister

Befehlsausführung nur, wenn die Adresse innerhalb der Grenzen liegt, sonst Interrupt

Page 28: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Relokation und Schutz (3)

30

http://xkcd.com/371/

Page 29: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Anforderungen an Speicherverwaltung

Bereitstellung von Platz im Hauptspeicher für Betriebssystem und Prozesse

Ziel aus Betriebssystemsicht: Möglichst viele Prozesse im Speicher

Fünf wichtige Anforderungen:

Relokation

Schutz

Gemeinsame Nutzung

Logische Organisation

Physikalische Organisation 31

Page 30: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Gemeinsame Nutzung

Kontrollierter Zugriff mehrerer Prozesse auf gemeinsam genutzte Bereiche des Speichers

Anwendungsbeispiele:

Ausführung des gleichen Programms durch eine Reihe von Prozessen, Code nur einmal im Speicher

Zugriff auf dieselbe Datenstruktur bei Zusammenarbeit von Prozessen

Kooperation von Prozessen über gemeinsam genutzten Datenspeicher („Shared Memory“)

32

Page 31: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Anforderungen an Speicherverwaltung

Bereitstellung von Platz im Hauptspeicher für Betriebssystem und Prozesse

Ziel aus Betriebssystemsicht: Möglichst viele Prozesse im Speicher

Fünf wichtige Anforderungen:

Relokation

Schutz

Gemeinsame Nutzung

Logische Organisation

Physikalische Organisation 33

Page 32: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Logische Organisation

Logischer Aufbau großer Programme:

Verschiedene Module

Unabhängig übersetzt; Referenzen auf Funktionen in anderen Modulen werden erst zur Laufzeit aufgelöst

Verschiedene Module können unterschiedliche Grade von Schutz besitzen (z.B. nur lesen / ausführen)

Gemeinsame Nutzung von Modulen durch verschiedene Prozesse

Betriebssystem muss mit Modulen umgehen können

34

Page 33: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Exkurs Logische Organisation: Mobile Roboterplattform

35

Treiber Laserscanner

Treiber Mobile Plattform

Lokalisierung Globale

Pfadplanung

Hindernis- detektion

Lokale Pfadplanung

Kartenserver

Odometrie Roboterposition

in der Karte

Zielposition

Radgeschwindigkeiten

Pfad zur Zielposition

Page 34: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Anforderungen an Speicherverwaltung

Bereitstellung von Platz im Hauptspeicher für Betriebssystem und Prozesse

Ziel aus Betriebssystemsicht: Möglichst viele Prozesse im Speicher

Fünf wichtige Anforderungen:

Relokation

Schutz

Gemeinsame Nutzung

Logische Organisation

Physikalische Organisation 36

Page 35: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

37

Physikalische Organisation

Betrachte zwei Ebenen

Hauptspeicher (schnell, teuer, flüchtig)

Festplatte (langsam, billig, nicht flüchtig)

Grundproblem: Daten zwischen Haupt- und Sekundärspeicher verschieben

Aufwändig, erschwert durch Multiprogramming

Verwaltung durch das Betriebssystem

Page 36: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Grundlegende Methoden der Speicherverwaltung

Partitionierung

Speicheraufteilung zwischen verschiedenen Prozessen (Partitionierung mit festen Grenzen)

Paging

Einfaches Paging / kombiniert mit Konzept des virtuellen Speichers

Segmentierung

Einfache Segmentierung / kombiniert mit Konzept des virtuellen Speichers

38

Page 37: Systeme I: Betriebssystemeais.informatik.uni-freiburg.de/teaching/ws16/systems1/slides/kap08... · Verschiedene Module Unabhängig übersetzt; Referenzen auf Funktionen in anderen

Grundlegende Methoden der Speicherverwaltung

Partitionierung

Speicheraufteilung zwischen verschiedenen Prozessen (Partitionierung mit festen Grenzen)

Paging

Einfaches Paging / kombiniert mit Konzept des virtuellen Speichers

Segmentierung

Einfache Segmentierung / kombiniert mit Konzept des virtuellen Speichers

39