Vorlesung

Technische Informatik I

A Organisatorisches

Sommersemester 2004 [CS 2100] 1

Technische Informatik I  2002-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-A-Org.fm, 2004-07-29 16.41]

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  2002-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-A-Org.fm, 2004-07-29 16.41]

A

1

A

3

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

1 Dozent für den Teil „Betriebssysteme“

3 Termine

■ Prof. Dr.-Ing. Franz J. Hauck

■ Vorlesung:

Mi 14.00–16.00, H22 (Logik) Do 14.00–16.00, H22 (Betriebssysteme)

■ Übung:

Di 16.00–18.00, H1

◆ Abteilung Verteilte Systeme (Prof. Dr. P. Schulthess) ◆ E-mail: [email protected] ◆ Sprechstunde: Di 11.00–12.00 Uhr, Raum O27–348

◆ an folgenden Tagen: • 4. Mai, 11. Mai, 25. Mai, 8. Juni, 22. Juni, 6. Juli, 20. Juli ◆ Beginn 4. Mai 2004, 16.00 Uhr H1

2 Übungsbetreuung ■ Tobias Bindhammer — [email protected] ■ Teodora Guenkova-Luy — [email protected] ■ Hubert Piontek — [email protected] ■ Andreas Schmied — [email protected]

Technische Informatik I  2002-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-A-Org.fm, 2004-07-29 16.41]

A

2

Technische Informatik I  2002-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-A-Org.fm, 2004-07-29 16.41]

4 Skript

5 Literatur

■ URL zur Veranstaltung

■ A. Tanenbaum: Modern Operating Systems. 2nd Ed. Prentice Hall, 2001.

◆ http://www-vs.informatik.uni-ulm.de/teach/ss04/ti1/ ◆ auch über Pinnwand oder Abteilungsseiten erreichbar ◆ hier findet man Termine, Folien zum Ausdrucken und Zusatzinformationen

■ Skript ◆ Folien der Vorlesung werden im Web zur Verfügung gestellt und können selbst ausgedruckt werden ◆ Ausdrucken im Pool ist jedoch nicht gestattet • Gutschein und Druck durch uns zum Preis von 5 EUR für den gesamten Foliensatz ◆ weitergehende Informationen zum Nachlesen findet man am Besten in der angegebenen Literatur bzw. den angegebenen Webseiten

Technische Informatik I  2002-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-A-Org.fm, 2004-07-29 16.41]

A

4

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

■ Rückmeldungen und Fragen ◆ Geben Sie mir Rückmeldungen über den Stoff. Nur so kann eine gute Vorlesung entstehen. ◆ Stellen Sie Fragen! ◆ Machen Sie mich auf Fehler aufmerksam! ◆ Nutzen Sie außerhalb der Vorlesung die Möglichkeit, elektronische Post zu versenden: [email protected] !

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

 2002-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

6 Ablauf

 2002-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

Technische Informatik I

[2004s-TI1-A-Org.fm, 2004-07-29 16.41]

A

6

[2004s-TI1-A-Org.fm, 2004-07-29 16.41]

A

5

1 Einordnung

H Einführung in Betriebssysteme

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

1

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Ebene 6

Problemorientierte Sprache

Ebene 5

Assemblersprache

Ebene 4

Betriebssystem

Ebene 3

ISA (Instruction Set Architecture)

Ebene 2

Mikroarchitektur

Ebene 1

Digitale Logik

Ebene 0

Physik

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

2

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

2 Was ist ein Betriebssystem?

2 Was ist ein Betriebssystem? (2)

■ DIN 44300

■ Silberschatz/Galvin

◆ „...die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Basis der möglichen Betriebsarten des digitalen Rechensystems bilden und die insbesondere die Abwicklung von Programmen steuern und überwachen.“

■ Tanenbaum

◆ „... ein Programm, das als Vermittler zwischen Rechnernutzer und Rechner-Hardware fungiert. Der Sinn des Betriebssystems ist eine Umgebung bereitzustellen, in der Benutzer bequem und effizient Programme ausführen können.“

■ Brinch Hansen

◆ „...eine Software-Schicht ..., die alle Teile des Systems verwaltet und dem Benutzer eine Schnittstelle oder eine virtuelle Maschine anbietet, die einfacher zu verstehen und zu programmieren ist [als die nackte Hardware].“

◆ „... der Zweck eines Betriebssystems [liegt] in der Verteilung von Betriebsmitteln auf sich bewerbende Benutzer.“

★ Zusammenfassung ◆ Software zur Betriebsmittelverwaltung ◆ Bereitstellung von Grundkonzepten zur statischen und dynamischen Strukturierung von Programmsystemen

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

3

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

4

2.1 Entwicklung der Betriebssysteme

2.1 Entwicklung der Betriebssysteme (2)

■ 1950 – 1960

■ 1976 — CPM 80 (Digital Research)

◆ Stapelverarbeitung

◆ Betriebssystem für Mikroprozessor

◆ Wechselpufferbetrieb

■ 1981 — MS/DOS (Microsoft)

◆ Spooling (Trennung von Ein-, Ausgabe und Berechnung)

◆ Durchbruch als Mikroprozessor-Betriebssystem

■ 1964 — DOS 360 (IBM)

■ 1982 — MacOS / Finder (Apple)

◆ allgemeines Betriebssystem mit Mehrprogrammbetrieb

◆ graphische Oberfläche

■ 1969 — Unix (Bell Labs)

■ 1985 — Netware (Novell)

◆ Betriebssystem für Minicomputer

◆ Vernetzung von PCs

■ 1972 — MVS (IBM)

■ 1986 — MS Windows (Microsoft)

◆ Virtueller Speicher

◆ die graphische Oberfläche für PC

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

5

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

6

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

2.1 Entwicklung der Betriebssysteme (3)

2.2 Struktur des Betriebssystems

■ 1990 — Windows NT (Microsoft)

■ Betriebssystem zwischen Anwendung und Hardware

◆ echter Multiprogrammbetrieb nun auch auf dem PC

Anwendungen

Systemanwendung

■ 1996 — Linux (Linus Thorvald)

Systemschnittstelle

◆ Open Source “Unix”

■ 2001 — Windows XP (Microsoft)

Betriebssystemkern

◆ bunter, schneller, besser (?) SW/HW-Schnittstelle Hardware

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

7

Anwendung

Interaktion

Systemsoftware

Hardware

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

8

2.2 Struktur des Betriebssystems (2)

2.3 Betriebsarten

■ Anwendungen

■ Klassifikation nach Auftragsbearbeitung

◆ laufen „auf“ Betriebssystem

◆ Stapelverarbeitung (Batch Processing)

◆ Betriebssystem stellt virtuelle/abstrakte Maschine dar (Programmiermodell)

◆ interaktiver Betrieb (Interactive Processing)

• eine Aufgabe nach der anderen

◆ Interaktion mit Betriebssystem über Systemschnittstelle

• Rechner reagiert sofort auf Befehle

• Systemaufrufe (Supervisor Call): Beauftragung des Betriebssystems

◆ Time-Sharing-Betrieb • Rechenzeit wird über mehrere Benutzer oder Programme aufgeteilt

■ Systemanwendungen

◆ Echtzeitbetrieb (Real Time Processing)

◆ einige Systemdienste häufig als Systemanwendungen realisiert

• Rechner reagiert unmittelbar innerhalb vorgegebener Zeitschranken

◆ laufen wie Anwendungen, gehören aber zum Betriebssystem

■ Ein- oder Mehrprogrammbetrieb (Uni-Programming, Multiprogramming)

• z.B. Systemdienste, Dateiserver ... ◆ spezielle Anwendungen

■ Ein- oder Mehrbenutzerbetrieb (Single User, Multiuser)

• z.B. Editoren, Compiler, Konfigurationsprogramme ...

■ Interaktion zwischen Anwendungen nur über Betriebssystemkern Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

9

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

10

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

2.4 Verwaltung von Betriebsmitteln

2.4 Verwaltung von Betriebsmitteln (2)

■ Physikalische Betriebsmittel

■ Resultierende Aufgaben ◆ Belegung von Betriebsmitteln auf Anforderung

Prozessor (CPU, Central Processing Unit)

◆ Multiplexen von Betriebsmitteln für mehrere Benutzer bzw. Anwendungen ◆ Schaffung von Schutzumgebungen

Ein-, Ausgabegeräte/ Periphere Geräte (I/O Devices)

Hauptspeicher (Memory)

• gegenseitiger Ausschluss des Betriebsmittelzugriffs • Zugriffsberechtigungen

■ Ermöglichen einer koordinierten gemeinsamen Nutzung von Betriebsmitteln, klassifizierbar in

Hintergrundspeicher (Secondary Storage)

externe Schnittstellen (Interfaces)

◆ aktive, zeitlich aufteilbare (Prozessor) ◆ passive, nur exklusiv nutzbare (periphere Geräte, z.B. Drucker u.Ä.) ◆ passive, räumlich aufteilbare (Speicher, Plattenspeicher u.Ä.)

■ Virtuelle Betriebsmittel ◆ vom Betriebssystem erst geschaffene

■ Unterstützung bei der Fehlererholung

• z.B. Speichersegment, Datei Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

11

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

12

2.4 Verwaltung von Betriebsmitteln (3)

2.5 Programmiermodelle

■ Typische Einzelkomponenten des Betriebssystems

■ Betriebsystem realisiert ein Programmiermodell

◆ Verwaltung der Ein-, Ausgabegeräte

◆ Programmiermodell im Kleinen durch Programmiersprache geprägt ◆ Programmiermodell im Großen durch Betriebssystem geprägt

• Gerätetreiber ◆ Speicherverwaltung

• große und/oder verteilte Anwendungen bestehen aus vielen kooperierenden Programmen

◆ Anwendungs-, Prozessverwaltung ◆ Dateisystem

★ Programmiermodell des Betriebssystems ◆ abstrahiert von konkreter Hardware und Hardwarekonfigurationen

■ Systemsteuerung

• virtuelle/abstrakte Maschine

◆ Kommandosprache

◆ begriffliche Basis zur Strukturierung von Programmsystemen und ihrer Ablaufsteuerung

◆ Shell (Kommandointerpreter) ◆ grafische Benutzeroberfläche

• Komponenten, z.B. Programme, Tasks, Prozesse • Interaktionen, z.B. Aufrufe, Benachrichtigung, Datenströme

◆ Ablaufsteuerung (Starten und Beenden von Programmen) ◆ Konfiguration Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

13

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

14

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

3 Hardware-Unterstützung

3.1 Prozessor

■ Effiziente Betriebssysteme

■ Wird im Laufe der Vorlesung genauer definiert

◆ Unterstützung durch Hardware

■ Vorabinformation

• Prozessor

◆ digitales Schaltwerk

• Memory-Management-Unit

◆ enthält Register

• intelligente I/O-Bausteine

• für Daten und ähnliches

• usw.

• Programmzähler (Speicheradresse des nächsten Befehls im Speicher) ◆ führt einen Befehl (Instruktion) nach dem anderen aus • Programmzähler wird inkrementiert (außer bei Sprüngen)

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

15

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

16

3.2 Betriebsmodus des Prozessors

3.3 Externe Unterbrechungen

■ Moderner Prozessor arbeitet in einem von mindestens zwei Modi

■ Unterbrechungen von außen (External Interrupts)

◆ Benutzermodus (User Mode) Signalisieren der Unterbrechung (Interrupt Request; IRQ)

• eingeschränkter Befehlssatz Interruptleitungen

◆ privilegierter Modus (Supervisor Mode)

◆ Prozessor unterbricht laufende Bearbeitung und führt eine definierte Befehlsfolge aus (vom privilegierten Modus aus konfigurierbar)

• erlaubt Ausführung privilegierter Befehle – Konfigurationsänderungen des Prozessors – Moduswechsel – spezielle Ein-, Ausgabebefehle

◆ vorher werden alle Register einschließlich Programmzähler gesichert (z.B. auf einem Stapelspeicher/Stack) ◆ nach einer Unterbrechung kann der ursprüngliche Zustand wiederhergestellt werden

◆ Modus wird meist als Bit in speziellem Register repräsentiert (CCR, Condition Code Register)

◆ Unterbrechungen werden im privilegierten Modus bearbeitet

• Supervisor-Flag S (z.B. 1 = priv. Modus, 0 = Benutzermodus) • Bit kann nur im privilegierten Modus verändert werden

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

17

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

18

H

20

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

3.3 Externe Unterbrechungen (2)

3.3 Externe Unterbrechungen (2)

■ Anwendung

■ Schematische Befehlsabwicklung

◆ Reaktion auf externes Ereignis • Fehlerbedingung

Befehlsausführung

[PC] ← [PC] + 1

• ankommende Netzwerknachricht • Rückmeldung durch langsame Geräte • „Wecker“-Funktion

■ Abwicklung der Unterbrechungsbehandlung?

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

19

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

3.3 Externe Unterbrechungen (2)

3.3 Externe Unterbrechungen (3)

■ Schematische Befehlsabwicklung

■ Adresse der Unterbrechungsbehandlung steht fest ◆ meist konfigurierbar

[PC] ← [PC] + 1

Befehlsausführung Unterbrechung? Ja

■ Rückkehr von der Unterbrechungsbehandlung ◆ spezieller Befehl, z.B. RTI: Return from Interrupt

Nein

◆ Befehlsausführung von RTI: ◆ reale Prozessoren

sichere Register schalte in priv. Modus lade PC für Unterbrechungsbehandlung

• Maskierung von Unterbrechungen

• Restaurieren gesicherte Register – insbes. PC (alter Befehlspfad) – insbes. CCR

• Annahmeprotokoll gegen Doppelausführung

• Umschaltung in alten Modus – meist durch Restauration des CCR restauriere Register

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

20

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

21

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

3.3 Externe Unterbrechungen (4)

3.4 Interne Unterbrechungen

■ Ablauf der Unterbrechung

■ Unterbrechungen durch die Befehlsausführung (Internal Interrupt, Exceptions)

unterbrochene Befehlsfolge

◆ bei bestimmten Fehlersituationen (z.B. Division durch Null) unterbricht Prozessor laufende Befehlsbearbeitung und führt definierte Befehlsfolge aus (ähnlich wie bei externen Unterbrechungen)

Befehlsfolge der Unterbrechungsbehandlung ◆ unterbrochene Befehlsfolge bleibt in der Regel unberührt • Unterbrechung ist transparent ◆ verschachtelte Unterbrechungen möglich • Unterbrechung der Unterbrechungsbehandlung • koordinierte Handhabung der gesicherten Register ◆ Unterbrechung beliebiger Betriebsmodi • Unterbrechung auch des privilegierten Modus

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

22

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

23

3.5 Systemaufrufe

3.5 Systemaufrufe (2)

■ Systemaufrufe (Traps; User Interrupts)

■ Schematische Befehlsabwicklung

◆ Wie kommt man kontrolliert vom Benutzermodus in den privilegierten Modus? ◆ spezielle Befehle zum Eintritt in den privilegierten Modus ◆ Prozessor schaltet in privilegierten Modus und führt definierte Befehlsfolge aus (vom privilegierten Modus aus konfigurierbar)

... MOVE D0, a Ausführung TRAP #3 MOVE a, D0 ...

sichere Register, priv. Modus lade PC des Systemaufrufs

◆ solche Befehle werden dazu genutzt die Betriebssystemschnittstelle zu implementieren (Supervisor Calls) ◆ Parameter werden nach einer Konvention übergeben (z.B. auf dem Stack)

letzter Befehl: RTI restauriere Register nächster Befehl

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

24

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-H-OS.fm, 2004-07-29 16.41]

H

25

1 Einordnung

I Prozesse und Nebenläufigkeit

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

1

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Ebene 6

Problemorientierte Sprache

Ebene 5

Assemblersprache

Ebene 4

Betriebssystem

Ebene 3

ISA (Instruction Set Architecture)

Ebene 2

Mikroarchitektur

Ebene 1

Digitale Logik

Ebene 0

Physik

I

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

2

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

1 Einordnung (2)

2 Motivation

■ Betroffene physikalische Betriebsmittel

■ Mehrprogrammbetrieb (Multiprogramming) ◆ bessere Auslastung der CPU, falls Programme Wartezeiten haben

Prozessor (CPU, Central Processing Unit)

• z.B. bei Ein-, Ausgabe (E/A) 100

Ein-, Ausgabegeräte/ Periphere Geräte (I/O Devices)

Hauptspeicher (Memory) externe Schnittstellen (Interfaces)

CPU-Auslastung in %

20%

80

50%

60

80% E/A-Wartezeit

40

Hintergrundspeicher (Secondary Storage)

20

Anzahl der gleichzeitig bearbeiteten Programme

0 1 2 3 4 nach Tanenbaum, 1995

5

6

7

8

9

10

◆ einfachere Struktur bei großen Anwendungen Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

3

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

4

2 Motivation (2)

3 Prozesse

■ Mehrbenutzerbetrieb (Multiuser)

■ Terminologie

◆ mehrere Benutzer führen auch mehrere Programme aus

◆ Programm: Folge von Anweisungen und dazugehörigen Daten

◆ ähnlich Mehrprogrammbetrieb

• hinterlegt beispielsweise als Datei auf dem Hintergrundspeicher

• jedoch: Unterscheidung von Benutzern und evtl. Zugriffsberechtigungen

◆ Prozess: Programm, das sich in Ausführung befindet, und seine aktuellen Daten • Beachte: ein Programm kann sich mehrfach in Ausführung befinden

■ Prozess stellt Ausführungsumgebung bereit ◆ Adressraum (Schutzumgebung für den Speicher eines Prozesses) ◆ Kontext für Betriebsmittelanforderungen (Speicher, Dateien, etc.) ◆ Prozess als virtueller Prozessor • Anweisungen des Prozesses werden abgearbeitet

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

5

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

6

I

8

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

3.1 Repräsentation eines Prozesses

3.2 Prozesswechsel

■ Datenstruktur pro Prozess: Prozesskontrollblock (Process Control Block; PCB)

■ Konzeptionelles Modell

◆ enthält alle nötigen Daten für einen Prozess

A

B

◆ beispielsweise in UNIX/Linux:

C

D

• Prozessnummer (PID) vier Prozesse mit eigenständigen Befehlszählern

• verbrauchte Rechenzeit

■ Umschaltung zwischen den Prozessen

• Erzeugungszeitpunkt • Kontext (Register etc.)

◆ Prozessor kann immer nur einen Prozess abarbeiten

• Speicherabbildung (Information zur Schutzumgebung)

◆ Umschaltung zwischen den Prozessen

• Eigentümer (UID, GID)

• Prozesse erleben Fortschritt ihrer Programmzähler und ihrer ausgeführten Anweisungen.

• Wurzelverzeichnis, aktuelles Verzeichnis

◆ transparentes Umschalten

• offene Dateien

• Ein Prozess bemerkt die anderen Prozesse zunächst nicht.

• ...

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

7

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

3.2 Prozesswechsel (2)

3.2 Prozesswechsel (3)

■ Prozessumschaltung (Context Switch)

■ Umschaltung

◆ Sichern der Register des laufenden Prozesses inkl. Programmzähler (Kontext),

Prozess A

blockiert/bereit

◆ Auswahl des neuen Prozesses, Befehlszähler

◆ Ablaufumgebung des neuen Prozesses herstellen (z.B. Speicherabbildung, etc.), ◆ gesicherte Register laden und ◆ Prozessor aufsetzen (Programmzähler laden).

Prozessumschalter Prozess B

Zeit

I

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

9

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

3.2 Prozesswechsel (3)

3.2 Prozesswechsel (3)

■ Umschaltung

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

10

I

10

■ Umschaltung Prozess A

Prozessumschalter

blockiert/bereit

Prozess A

blockiert/bereit

Befehlszähler

Befehlszähler

blockiert/bereit

Prozess B

Prozessumschalter

blockiert/bereit

Prozess B

Zeit Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

Zeit

I

10

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

3.2 Prozesswechsel (3)

3.2 Prozesswechsel (4)

■ Schematische Darstellung von Umschaltungen (Beispiel)

■ Prozesswechsel unter Kontrolle der Prozesse ◆ Prozess bestimmt Umschaltungszeitpunkt • Konzept der Ko-Routine

Prozess A

blockiert/bereit

blockiert/bereit

◆ kein transparentes Umschalten

Befehlszähler

◆ keine Fairness

★ Wunsch nach fairer Zuteilung des Betriebsmittels „Prozessor“

Prozessumschalter

blockiert/bereit

Prozess B

Zeit Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

10

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

11

3.3 Prozesszustände

■ Prozesswechsel unter Kontrolle des Betriebssystems

■ Ein Prozess befindet sich in einem der folgenden Zustände:

◆ Mögliche Eingriffspunkte:

◆ Erzeugt (New) Prozess wurde erzeugt, besitzt aber noch nicht alle nötigen Betriebsmittel

• Systemaufrufe

◆ Bereit (Ready) Prozess besitzt alle nötigen Betriebsmittel und ist bereit zum Laufen

• Unterbrechungen ◆ Wechsel nach/in Systemaufrufen

◆ Laufend (Running) Prozess wird vom realen Prozessor ausgeführt

• Warten auf Ereignisse (z.B. Zeitpunkt, Nachricht, Lesen eines Plattenblock)

◆ Blockiert (Blocked/Waiting) Prozess wartet auf ein Ereignis (z.B. Fertigstellung einer Ein- oder Ausgabeoperation, Zuteilung eines Betriebsmittels, Empfang einer Nachricht); zum Warten wird er blockiert

• Terminieren des Prozesses ◆ Wechsel nach Unterbrechungen • Ablauf einer Zeitscheibe

◆ Beendet (Terminated) Prozess ist beendet; einige Betriebsmittel sind jedoch noch nicht freigegeben oder Prozess muss aus anderen Gründen im System verbleiben

• bevorzugter Prozess wurde laufbereit

■ Auswahlstrategie zur Wahl des nächsten Prozesses ◆ Scheduler-Komponente Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

3.2 Prozesswechsel (5)

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

Technische Informatik I

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

12

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

13

3.3 Prozesszustände (2)

4 Auswahlstrategien

■ Zustandsdiagramm erzeugt

■ Strategien zur Auswahl des nächsten Prozesses (Scheduling Strategies) Scheduler teilt Prozessor zu

zugelassen

◆ Mögliche Stellen zum Treffen von Scheduling-Entscheidungen

terminiert bereit

Grund der Blockade ist weggefallen

beendet

laufend

Unterbrechung od. Systemaufruf

impliziter oder expliziter Warteaufruf

1.

Prozess wechselt vom Zustand „laufend“ zum Zustand „blockiert“ (z.B. Ein-, Ausgabeoperation)

2.

Prozess wechselt von „laufend“ nach „bereit“ (z.B. bei einer Unterbrechung des Prozessors)

3.

Prozess wechselt von „blockiert“ nach „bereit“

4.

Prozess terminiert

blockiert

◆ bei 1. und 4. muss Neuauswahl erfolgen

wartend

◆ bei 2. und 3. kann Neuauswahl erfolgen nach Silberschatz, 1994

ja

◆ Scheduler ist der Teil des Betriebssystems, der die Zuteilung des realen Prozessors vornimmt. Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

verdrängend

14

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

verdrängend = präemptiv

nein

nicht verdrängend

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

15

I

17

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

4.1 Kriterien

4.2 First Come, First Served

■ CPU Auslastung

■ Der erste Prozess wird zuerst bearbeitet (FCFS)

◆ möglichst 100% ausgelastete CPU

◆ „Wer zuerst kommt ...“ ◆ Nicht-verdrängend

■ Durchsatz

■ Warteschlange zum Zustand „bereit“

◆ möglichst hohe Anzahl bearbeiteter Prozesse pro Zeiteinheit

◆ Prozesse werden hinten eingereiht

■ Verweilzeit

◆ Prozesse werden vorne entnommen

◆ möglichst geringe Gesamtzeit des Prozesses in der Rechenanlage

■ Wartezeit ◆ möglichst kurze Gesamtzeit, in der der Prozess im Zustand „bereit“ ist

▲ Bewertung

■ Antwortzeit

◆ fair (?)

◆ möglichst kurze Reaktionszeit des Prozesses im interaktiven Betrieb

◆ Wartezeiten nicht minimal ◆ nicht für Time-Sharing-Betrieb geeignet

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

16

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

4.2 First Come, First Served (2)

4.2 First Come, First Served (3)

■ Beispiel zur Betrachtung der Wartezeiten Prozess 1: Prozess 2: Prozess 3:

24 3 3

■ Beispiel zur Betrachtung der Wartezeiten Prozess 1: Prozess 2: Prozess 3:

Zeiteinheiten

◆ Reihenfolge: P1, P2, P3

24 3 3

Zeiteinheiten

◆ Reihenfolge: P2, P3, P1

P1

P1 bereit

P2

bereit

P2

P3

bereit

P3

mittlere Wartezeit: (0+24+27)/3 = 17

mittlere Wartezeit: (6+0+3)/3 = 3 laufend bereit blockiert

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

laufend bereit blockiert

18

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

4.2 First Come, First Served (4)

■ Behandlung deblockierte Prozesse

◆ Einreihung an das Ende der Warteschlange

◆ Einreihung an das Ende der Warteschlange

◆ Beispiel:

◆ Beispiel:

• Laufzeitanforderung

• Laufzeitanforderung

blockiert

• FCFS-Ablauf auf einem Prozessor (initial: P1 vor P2)

P1

Warte- P1 schlange: P2

blockiert

P2

• FCFS-Ablauf auf einem Prozessor (initial: P1 vor P2)

P2

blockiert

P1

blockiert

P2

blockiert

P1 ber.

P2 laufend bereit blockiert

P2

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

19

4.2 First Come, First Served (4)

■ Behandlung deblockierte Prozesse

P1

I

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

Warte- P1 schlange: P2

20

ber. P2

laufend bereit blockiert

P1

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

20

4.2 First Come, First Served (4)

4.2 First Come, First Served (4)

■ Behandlung deblockierte Prozesse

■ Behandlung deblockierte Prozesse

◆ Einreihung an das Ende der Warteschlange

◆ Einreihung an das Ende der Warteschlange

◆ Beispiel:

◆ Beispiel:

• Laufzeitanforderung

• Laufzeitanforderung

blockiert

P1

blockiert

P2

blockiert

P2

• FCFS-Ablauf auf einem Prozessor (initial: P1 vor P2)

ber.

P2 P2

P1

laufend bereit blockiert

P1

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

Warte- P1 schlange: P2

20

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

• Laufzeitanforderung

Warte- P1 schlange: P2

P2

laufend bereit blockiert

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

20

◆ Vorhersage der Länge durch Protokollieren der Länge bisheriger Rechenphasen (Mittelwert, exponentielle Glättung)

blockiert

◆ ... Protokollierung der Länge der vorherigen Rechenphase

■ SJF optimiert die mittlere Wartezeit

ber.

◆ Da Länge der Rechenphase in der Regel nicht genau vorhersagbar, nicht ganz optimal.

blockiert

ber. P2

P1

■ „bereit“-Warteschlange wird nach Länge der nächsten Rechenphase sortiert

blockiert

• FCFS-Ablauf auf einem Prozessor (initial: P1 vor P2)

P2

P1

◆ Länge bezieht sich auf die nächste Rechenphase bis zur nächsten Warteoperation (z.B. Ein-, Ausgabe)

◆ Beispiel:

blockiert

P2

■ Kürzester Job wird ausgewählt (SJF)

◆ Einreihung an das Ende der Warteschlange

P1

blockiert

ber.

4.3 Shortest Job First

■ Behandlung deblockierte Prozesse

P2

ber.

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

4.2 First Come, First Served (4)

P1

blockiert

P1

ber.

Warte- P1 schlange: P2

blockiert

P2

• FCFS-Ablauf auf einem Prozessor (initial: P1 vor P2) P1

blockiert

P1

P1

P1

P2

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

laufend bereit blockiert

I

■ Varianten: verdrängend (PSJF) und nicht-verdrängend

20

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

21

4.3 Shortest Job First (2)

4.3 Shortest Job First (3)

■ Beispiel: SJF

■ Beispiel: PSJF

◆ Laufzeitanforderung

◆ Laufzeitanforderung

blockiert

P2

P2

P3

P3

◆ SJF-Ablauf auf einem Prozessor

P2

bereit

P3

ber.

Warte- P1 schlange: P3

◆ PSJF-Ablauf auf einem Prozessor

blockiert

P1

P3 P2

blockiert

P1

blockiert

P1

P1 P2

P1 P2 P2

P2 Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

bereit

P3

ber.

Warte- P1 schlange: P3

laufend bereit blockiert

I

P2

P3 P2

P2

22

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

P1 P3 P3 P2 P2

P2

laufend bereit blockiert

I

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

23

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

4.4 Prioritäten

4.4 Prioritäten (2)

■ Prozess mit höchster Priorität wird ausgewählt (HPF, Highest Priority First)

■ Prioritätenumkehr

◆ dynamisch — statisch (z.B. SJF: dynamische Vergabe von Prioritäten gemäß Länge der nächsten Rechenphase) (z.B. statische Prioritäten in Echtzeitsystemen; Vorhersagbarkeit von Reaktionszeiten) ◆ verdrängend — nicht-verdrängend

◆ hochpriorer Prozess wartet auf ein Betriebsmittel, das ein niedrigpriorer Prozess besitzt; dieser wiederum wird durch einen mittelprioren Prozess verdrängt und kann daher das Betriebsmittel gar nicht freigeben P1

hoch

P2

mittel

P3

▲ Probleme

niedrig

Priorität

P1

1

◆ Prioritätenumkehr (Priority Inversion)

Zeit

◆ Aushungerung 1.

P3 fordert Betriebsmittel an

laufend bereit blockiert

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

24

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

25

4.4 Prioritäten (2)

4.4 Prioritäten (2)

■ Prioritätenumkehr

■ Prioritätenumkehr

◆ hochpriorer Prozess wartet auf ein Betriebsmittel, das ein niedrigpriorer Prozess besitzt; dieser wiederum wird durch einen mittelprioren Prozess verdrängt und kann daher das Betriebsmittel gar nicht freigeben

◆ hochpriorer Prozess wartet auf ein Betriebsmittel, das ein niedrigpriorer Prozess besitzt; dieser wiederum wird durch einen mittelprioren Prozess verdrängt und kann daher das Betriebsmittel gar nicht freigeben

P1

hoch

P2

mittel

P3

niedrig 1

hoch

P2

mittel

P3

niedrig 1

Zeit laufend bereit blockiert

P1

1.

P3 fordert Betriebsmittel an

2.

P1 wartet auf das gleiche Betriebsmittel

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

25

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

3

Inversionsphase

laufend bereit blockiert

Priorität

2

Priorität

2

Zeit

1.

P3 fordert Betriebsmittel an

2.

P1 wartet auf das gleiche Betriebsmittel

3.

P3 gibt Betriebsmittel frei

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

25

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

4.4 Prioritäten (3)

4.5 Round-Robin Scheduling

★ Lösung

■ Zuteilung und Auswahl erfolgt reihum

◆ dynamische Anhebung der Priorität für kritische Prozesse (im Beispiel: P3 wird von Zeitpunkt 2 bis Zeitpunkt 3 auf hohe Priorität angehoben)

◆ ähnlich FCFS aber mit Verdrängung ◆ Zeitquant (Time Quantum) oder Zeitscheibe (Time Slice) wird zugeteilt ◆ geeignet für Time-Sharing-Betrieb

■ Aushungerung ◆ Ein Prozess kommt nie zum Zuge, da immer andere mit höherer Priorität vorhanden sind.

Unterbrechungsleitung

★ Lösung

Timer

◆ dynamische Anhebung der Priorität für lange wartende Prozesse (Alterung, Aging)

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

◆ Wartezeit ist jedoch eventuell relativ lang

I

26

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

27

4.5 Round-Robin Scheduling (2)

4.5 Round-Robin Scheduling (3)

■ Beispiel zur Betrachtung der Wartezeiten Prozess 1: Prozess 2: Prozess 3:

24 3 3

■ Effizienz hängt von der Größe der Zeitscheibe ab ◆ kurze Zeitscheiben: Zeit zum Kontextwechsel wird dominant ◆ lange Zeitscheiben: Round-Robin nähert sich FCFS an

Zeiteinheiten

■ Verweilzeit und Wartezeit hängt ebenfalls von der Zeitscheibengröße ab

◆ Zeitquant ist 4 Zeiteinheiten

◆ Beispiel: 3 Prozesse mit je 10 Zeiteinheiten Rechenbedarf

◆ Reihenfolge in der „bereit“-Warteschlange: P1, P2, P3

• Zeitscheibengröße 1 • Zeitscheibengröße 10

P1 P2 P3 0

4

7

10

14

18

22

26

30

mittlere Wartezeit: (6+4+7)/3 = 5,7

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

28

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

10

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

29

4.5 Round-Robin Scheduling (4)

◆ Zeitscheibengröße 1: 5

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

4.5 Round-Robin Scheduling (4) 0

I

Technische Informatik I

◆ Zeitscheibengröße 1: 15

P1 P2 P3

20

25

0

30 28/18 Verweil-/Wartezeit 29/19 30/20

durchschnittliche Verweilzeit: 29 Zeiteinheiten = (28+29+30)/3 durchschnittliche Wartezeit: 19 Zeiteinheiten = (18+19+20)/3

5

10

15

20

25

30 28/18 Verweil-/Wartezeit 29/19 30/20

P1 P2 P3

durchschnittliche Verweilzeit: 29 Zeiteinheiten = (28+29+30)/3 durchschnittliche Wartezeit: 19 Zeiteinheiten = (18+19+20)/3 ◆ Zeitscheibengröße 10: 0

5

P1 P2 P3

10 15 10/0

20

25

30

20/10

Verweil-/Wartezeit 30/20

durchschnittliche Verweilzeit: 20 Zeiteinheiten = (10+20+30)/3 durchschnittliche Wartezeit: 10 Zeiteinheiten = (0+10+20)/3 Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

30

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

30

4.6 Multilevel-Queue Scheduling

4.6 Multilevel-Queue-Scheduling (2)

■ Verschiedene Schedulingklassen

■ Beispiel: Solaris/SunOS

◆ z.B. Hintergrundprozesse (Batch) und Vordergrundprozesse (interaktive Prozesse)

◆ Schedulingklassen • Systemprozesse

◆ jede Klasse besitzt ihre eigenen Warteschlangen (Queues) und verwaltet diese nach einer eigenen Schedulingstrategie

• Real-Time Prozesse • Time-Sharing Prozesse

◆ zwischen den Klassen gibt es ebenfalls eine Schedulingstrategie z.B. feste Prioritäten (Vordergrundprozesse immer vor Hintergrundprozessen)

• interaktive Prozesse ◆ Scheduling zwischen den Klassen mit fester Priorität (z.B. Real-Time-Prozesse vor Time-Sharing-Prozessen)

◆ Prozessauswahl 1. Schedulingklasse auswählen 2. in ausgewählter Klasse Prozess auswählen

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

31

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

32

I

34

4.7 Multilevel-Feedback-Queue Scheduling

■ Beispiel: Solaris/SunOS (fortges.)

■ Ähnlich Multilevel-Queue-Scheduling

◆ Auswahlstrategien der Schedulingklasen:

◆ Schedulingklassen

• Systemprozesse: FCFS

• meist viele Klassen, doch innerhalb der Klasse gleiche Strategie (z.B. Round-Robin)

• Real-Time Prozesse: statische Prioritäten

◆ Strategie zur Auswahl der Schedulingklassen

• Time-Sharing und interaktive Prozesse: ausgefeiltes Verfahren zur Sicherung von: – kurzen Reaktionszeiten – fairer Zeitaufteilung zwischen rechenintensiven und I/O-intensiven Prozessen – gewisser Benutzersteuerung realisiert mit Multilevel-Feedback-Queue-Scheduling

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

4.6 Multilevel-Queue-Scheduling (3)

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

Technische Informatik I

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

• meist prioritätengesteuert mit statischen Prioritäten (z.B. 1. Klasse vor 2. Klasse)

■ Zusätzlich bei MLFB: ◆ Transfer von Prozessen von einer Klasse in die andere (Feedback)

I

33

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

4.7 Multilevel-Feedback-Queue Scheduling (2)

4.7 Multilevel-Feedback-Queue Scheduling (3)

■ Beispiel:

■ Beispiel: Solaris/SunOS

◆ 5 Schedulingklassen mit eigener Bereit-Warteschlange und Strategie

◆ 60 Schedulingklassen mit jeweils Round-Robin-Strategie

◆ Prozesse können von einer zur anderen Warteschlange transferiert werden

• unterschiedliche Zeitscheibenlänge ◆ Auswahl der Klasse über statische Priorität • solange Prozesse in hochpriorer Klasse kommen keine anderen zum Zuge ◆ Transfer von Prozessen in andere Klassen/Prioritäten • Prozesse, die lange rechnen, wandern langsam in Klasse mit niedrigerer Priorität (bevorzugt interaktive Prozesse) • Prozesse, die lange warten müssen, wandern langsam wieder in höherpriore Klassen (Aging)

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

35

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

5 Prozesskommunikation

5 Prozesskommunikation (2)

■ Inter-Process-Communication (IPC)

■ Klassifikation nachrichtenbasierter Kommunikation

◆ mehrere Prozesse bearbeiten eine Aufgabe

• Kanäle (Pipes)

• übersichtlichere Struktur der Anwendung

• Briefkästen, Nachrichtenpuffer (Queues)

I

38

• Kommunikationsendpunkte (Sockets, Ports) • Unterbrechungen (Signals)

■ Kommunikation durch Nachrichten ◆ Nachrichten werden zwischen Prozessen ausgetauscht

◆ Übertragungsrichtung

■ Kommunikation durch gemeinsamen Speicher

• unidirektional

◆ Datenaustausch durch gemeinsam zugreifbare Speicherzellen

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

36

◆ Klassen

• Verkürzung der Bearbeitungszeit durch Parallelisierung (gleichzeitige Nutzung und Bearbeitung von Daten)

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

I

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

• bidirektional (voll-duplex, halb-duplex)

I

37

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

5 Prozesskommunikation (3)

6 Aktivitätsträger (Threads) ■ Mehrere Prozesse zur Strukturierung von Problemlösungen

◆ Übertragungs- und Aufrufeigenschaften

◆ Aufgaben eines Prozesses leichter modellierbar, wenn in mehrere kooperierende Prozesse unterteilt z.B. Anwendungen mit mehreren Fenstern (ein Prozess pro Fenster) z.B. Anwendungen mit vielen gleichzeitigen Aufgaben (Webbrowser)

• zuverlässig — unzuverlässig • gepuffert — ungepuffert • blockierend — nichtblockierend • stromorientiert — nachrichtenorientiert — RPC

◆ Multiprozessorsysteme werden erst mit mehreren parallel laufenden Prozessen ausgenutzt z.B. wissenschaftliches Hochleistungsrechnen (Aerodynamik etc.)

◆ Adressierung • implizit: UNIX Pipes • explizit: Sockets

◆ Client-Server-Anwendungen unter UNIX: pro Anfrage wird ein neuer Prozess gestartet z.B. Webserver

• globale Adressierung: Sockets, Ports • Gruppenadressierung: Multicast, Broadcast

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

39

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

40

I

42

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

6.1 Prozesse mit gemeinsamem Speicher

6.2 Aktivitätsträger

■ Gemeinsame Nutzung von Speicherbereichen durch mehrere Prozesse ▲ Nachteile ◆ viele Betriebsmittel zur Verwaltung eines Prozesses notwendig

★ Alternative: Aktivitätsträger (Threads) oder leichtgewichtige Prozesse (Lightweighted Processes, LWPs) ◆ Eine Gruppe von Threads nutzt gemeinsam eine Menge von Betriebsmitteln.

• Dateideskriptoren • Speicherabbildung

• Instruktionen

• Prozesskontrollblock

• Datenbereiche

◆ Prozessumschaltungen sind aufwändig.

• Dateien, Sockets etc. ◆ Jeder Thread repräsentiert eine eigene Aktivität:

★ Vorteil

• eigener Programmzähler

◆ In Multiprozessorsystemen sind echt parallele Abläufe möglich.

• eigener Registersatz • eigener Stack

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

41

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

6.2 Aktivitätsträger (2)

6.3 User-Level-Threads ■ Implementierung

◆ Umschalten zwischen zwei Threads einer Gruppe ist erheblich billiger als eine normale Prozessumschaltung.

◆ Instruktionen im Anwendungsprogramm schalten zwischen den Threads hin- und her (ähnlich wie der Scheduler im Betriebssystem)

• Es müssen nur die Register und der Programmzähler gewechselt werden (entspricht dem Aufwand für einen Funktionsaufruf).

◆ Betriebssystem sieht nur einen Thread

• Speicherabbildung muss nicht gewechselt werden.

★ Vorteile

• Alle Systemressourcen bleiben verfügbar.

◆ keine Systemaufrufe zum Umschalten erforderlich

■ Ein UNIX-Prozess ist ein Adressraum mit einem Thread

◆ effiziente Umschaltung

◆ Solaris: Prozess kann mehrere Threads besitzen

◆ Schedulingstrategie in der Hand des Anwenders

■ Implementierungen von Threads

▲ Nachteile

◆ User-level Threads

◆ Bei blockierenden Systemaufrufen bleiben alle User-Level-Threads stehen.

◆ Kernel-level Threads

◆ Kein Ausnutzen eines Multiprozessors möglich

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

43

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

I

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

44

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

6.4 Kernel-Level-Threads

6.5 Beispiel: LWPs und Threads (Solaris)

■ Implementierung

■ Solaris kennt Kernel-, User-Level-Threads und LWPs

◆ Betriebssystem kennt Kernel-Level-Threads

Adressraum 1

Adressraum 2

Adressraum 3

◆ Betriebssystem schaltet Threads um

User-level Threads

★ Vorteile

Solaris LWPs

◆ kein Blockieren unbeteiligter Threads bei blockierenden Systemaufrufen

▲ Nachteile

Kernel-level Threads

◆ weniger effizientes Umschalten ◆ Fairnessverhalten nötig (zwischen Prozessen mit vielen und solchen mit wenigen Threads)

Kernel

◆ Schedulingstrategie meist vorgegeben

Prozessor

nach Silberschatz, 1994 Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

45

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

46

7 Parallelität und Nebenläufigkeit

7 Parallelität und Nebenläufigkeit (2)

■ Mehrere Prozessen oder Threads

★ Nebenläufigkeit Zwei Prozesse heißen nebenläufig, wenn ihre Anweisungen unabhängig voneinander abgearbeitet werden. Dabei spielt es keine Rolle, ob die Anweisungen zeitlich durchmischt oder auch echt gleichzeitg bearbeitet werden.

★ Parallelität Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden.

◆ parallele Bearbeitung ist nebenläufig

◆ parallele Bearbeitung nur auf Multiprozessorsystemen

◆ nebenläufige Bearbeitung auch auf Monoprozessoren möglich

• zwei oder mehr Prozessoren können parallel Anweisungen bearbeiten

• zeitliche Durchmischung der Befehle mehrerer Prozesse oder Threads

Prozessor

parallele Bearbeitung

• Schedulingstrategie oft unabhängig von den bearbeiteten Befehlen (z.B. Round Robin, MLFB) Prozessor

Zeit

◆ Monoprozessor • keine parallele Abarbeitung von Befehlen möglich Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

47

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

nebenläufige Bearbeitung auf Monoprozessor

Zeit

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

48

I

50

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8 Koordinierung

8 Koordinierung (2)

■ Beispiel: zwei Prozesse, Beobachter und Protokollierer

■ Effekte:

◆ Mittels Induktionsschleife werden Fahrzeuge gezählt. Alle 10min druckt der Protokollierer die im letzten Zeitraum vorbeigekommene Anzahl aus.

◆ Fahrzeuge gehen „verloren“ ◆ Fahrzeuge werden doppelt gezählt

int cnt= 0; Observer on indication cnt= cnt+1; Logger every 10 minutes println( "Count="+cnt+"\n" ); cnt= 0;

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

49

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

8 Koordinierung (2)

8 Koordinierung (3)

■ Effekte:

▲ Fahrzeuge gehen „verloren“

◆ Fahrzeuge gehen „verloren“

◆ Nach dem Drucken wird der Protokollierer unterbrochen. Beobachter zählt weitere Fahrzeuge. Anzahl wird danach ohne Beachtung vom Protokollierer auf Null gesetzt.

◆ Fahrzeuge werden doppelt gezählt

■ Ursachen:

Observer

◆ Befehle einer Programmiersprache werden nicht unteilbar (atomar) abgearbeitet, da sie auf mehrere Maschinenbefehle abgebildet werden.

Logger println( "Count="+cnt+"\n" );

cnt= cnt+1; cnt= cnt+1;

◆ Keinesfalls werden mehrere Anweisungen zusammen atomar abgearbeitet.

cnt= 0;

◆ Prozesswechsel innerhalb einer Anweisung oder zwischen zwei zusammengehörigen Anweisungen können zu Inkonsistenzen führen.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

50

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

8 Koordinierung (4)

8 Koordinierung (5)

▲ Fahrzeuge werden doppelt gezählt:

■ Problem gekoppelt an gemeinsame Nutzung von Daten oder Betriebsmitteln

◆ Beobachter will Zähler erhöhen und holt sich diesen dazu in ein Register. Er wird unterbrochen und der Protokollierer setzt Anzahl auf Null. Beobachter erhöht Registerwert und schreibt diesen zurück. Dieser Wert wird erneut vom Protokollierer registriert. Observer

I

51

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

★ Lösung: kritische Abschnitte ◆ nur einer soll Zugang zu Daten oder Betriebsmitteln haben (gegenseitiger Ausschluss, Mutual Exclusion, Mutex)

Logger

◆ kritische Abschnitte erscheinen als zeitlich unteilbar

MOVE #1, D0 ADD cnt, D0

■ Wie kann der gegenseitige Ausschluss in kritischen Abschnitten erzielt werden?

println( "Count="+cnt+"\n" ); cnt= 0;

◆ Vorkehrungen, dass nicht mehrere Prozesse gleichzeitig im kritischen Abschnitt sind

MOVE D0, cnt [cnt= cnt+1;]

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

52

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

53

8 Koordinierung (6)

8.1 Gegenseitiger Ausschluss

■ Koordinierung allgemein:

■ Lösung des Beispiels

◆ Einschränkung der zeitlichen Durchmischung von Befehlsfolgen in nebenläufigen Prozessen/Aktivitätsträgern

◆ zwei zusammengehörige kritische Abschnitte int cnt= 0;

◆ letztlich Einschränkung der Nebenläufigkeit

Observer on indication

• gezielte Aufgabe der Unabhängigkeit bei der Befehlsausführung

★ Hinweis:

cnt= cnt+1;

◆ Im Folgenden wird immer von Prozessen die Rede sein. Koordinierung kann/muss selbstverständlich auch zwischen Threads stattfinden.

nur ein Prozess in einem der kritischen Abschnitte

Logger every 10 minutes println( "Count="+cnt+"\n" ); cnt= 0;

I

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

54

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

55

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.2 Gegenseitiger Ausschluss (2)

8.2 Gegenseitiger Ausschluss (3)

■ Zwei Prozesse wollen regelmäßig kritischen Abschnitt betreten

▲ Probleme der Lösung

◆ Annahme: Maschinenbefehle sind unteilbar (atomar)

◆ nur alternierendes Betreten des kritischen Abschnitts durch P0 und P1 möglich

■ 1. Versuch

◆ Implementierung ist unvollständig ◆ aktives Warten

int turn= 0;

Prozess 0 while( 1 ) { while( turn == 1 ); ... /* critical sec. */ ... turn= 1;

Prozess 1

... /* uncritical */ }

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

◆ ready0 zeigt an, dass Prozess 0 bereit für den kritischen Abschnitt ist ◆ ready1 zeigt an, dass Prozess 1 bereit für den kritischen Abschnitt ist

... /* uncritical */ }

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

■ Ersetzen von turn durch zwei Variablen ready0 und ready1

while( 1 ) { while( turn == 0); ... /* critical sec. */ ... turn= 0;

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

56

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

57

8.2 Gegenseitiger Ausschluss (4)

8.2 Gegenseitiger Ausschluss (5)

■ 2. Versuch

■ Gegenseitiger Ausschluss wird erreicht ◆ leicht nachweisbar durch Zustände von ready0 und ready1

boolean ready0= false; boolean ready1= false;

▲ Probleme der Lösung

while( 1 ) { ready0= true; while( ready1 );

◆ aktives Warten

Prozess 1

Prozess 0

◆ Verklemmung möglich

while( 1 ) { ready1= true; while( ready0 );

... /* critical sec. */

... /* critical sec. */

ready0= false;

ready1= false; ... /* uncritical */

... /* uncritical */ }

}

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

58

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

59

■ Harmlose Durchmischung P0

P1 ready1= true; while( ready0 ); + + ready1= false; + ready1= true; ... + = mehrfach, mind. einmal * = mehrfach oder gar nicht

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

P1

1

ausgeführte Anweisungen

ready0= true; while( ready1 ); + + ready0= false; + ready0= true; ...

◆ Durchspielen aller möglichen Durchmischungen

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

8.2 Gegenseitiger Ausschluss (7)

■ Betrachtung der nebenläufigen Abfolgen ready0= true; while( ready1 ); + + ready0= false; + ready0= true; ...

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.2 Gegenseitiger Ausschluss (6)

P0

I

Technische Informatik I

60

ready1= true; while( ready0 ); + + ready1= false; + ready1= true; ...

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

61

8.2 Gegenseitiger Ausschluss (7)

8.2 Gegenseitiger Ausschluss (7)

■ Harmlose Durchmischung P0

■ Harmlose Durchmischung P1

P0

2

ausgeführte Anweisungen

ready1= true; while( ready0 ); + + ready1= false; + ready1= true; ...

I

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

+ ready0= false; + ready0= true; ...

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

61

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

P0

4

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

P1

ready0= true; while( ready1 );

ausgeführte Anweisungen

61

5

ausgeführte Anweisungen ready1= true;

ready1= true; while( ready0 ); + + ready1= false; + ready1= true; ...

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

■ Harmlose Durchmischung P1

ready0= true; while( ready1 );

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

I

Technische Informatik I

8.2 Gegenseitiger Ausschluss (7)

■ Harmlose Durchmischung

* ready0= false; + ready0= true; ...

ready1= true; while( ready0 ); + + ready1= false; + ready1= true; ...

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.2 Gegenseitiger Ausschluss (7)

P0

3

ausgeführte Anweisungen

ready0= true; while( ready1 );

ready0= true; while( ready1 ); + + ready0= false; + ready0= true; ...

P1

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

* ready0= false; + ready0= true; ...

I

61

while( ready0 ); + + ready1= false; + ready1= true; ...

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

61

8.2 Gegenseitiger Ausschluss (7)

8.2 Gegenseitiger Ausschluss (7)

■ Harmlose Durchmischung P0 ready0= true; while( ready1 );

* ready0= false; + ready0= true; ...

■ Harmlose Durchmischung P1

ready1= true;

ausgeführte ready1= true; Anweisungen while( ready0 );

while( ready0 );

* ready0= false; + ready0= true; ...

while( ready0 ); + + ready1= false; + ready1= true; ...

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

61

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

61

■ Harmlose Durchmischung P1

P0

8

...

P1

9

ready1= true; ready1= true;

while( ready0 );

while( ready0 );

while( ready0 ); ready0= false;

while( ready0 ); ready0= false;

while( ready0 ); while( ready0 ); + + ready1= false; + ready1= true; ...

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

while( ready0 ); + + ready1= false; + ready1= true; ...

8.2 Gegenseitiger Ausschluss (7)

■ Harmlose Durchmischung

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

aktives Warten

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.2 Gegenseitiger Ausschluss (7)

+ ready0= true; ...

7

while( ready0 );

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

P0

P1

...

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

P0

6

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

+ ready0= true; ...

I

61

+ ready1= false; + ready1= true; ...

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

61

8.2 Gegenseitiger Ausschluss (8)

8.2 Gegenseitiger Ausschluss (8)

■ Verklemmung P0

■ Verklemmung P1

P0

1

P1

ausgeführte Anweisungen

2

ausgeführte Anweisungen ready0= true;

ready0= true; while( ready1 ); + + ready0= false; + ready0= true; ...

ready1= true; while( ready0 ); + + ready1= false; + ready1= true; ...

I

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

while( ready1 ); + + ready0= false; + ready0= true; ...

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

62

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

P0

3

ready1= true;

ready1= true;

while( ready1 );

while( ready0 ); + + ready1= false; + ready1= true; ...

while( ready1 ); + + ready0= false; + ready0= true; ...

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

P1

ready0= true;

ausgeführte Anweisungen

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

62

■ Verklemmung P1

ready0= true;

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

8.2 Gegenseitiger Ausschluss (8)

■ Verklemmung

while( ready1 ); + + ready0= false; + ready0= true; ...

I

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.2 Gegenseitiger Ausschluss (8)

P0

ready1= true; while( ready0 ); + + ready1= false; + ready1= true; ...

62

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

ausgeführte Anweisungen

while( ready0 ); + + ready1= false; + ready1= true; ...

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

4

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

62

8.2 Gegenseitiger Ausschluss (8)

8.2 Gegenseitiger Ausschluss (9)

■ Verklemmung (Lifelock) P0

■ 3. Versuch (Algorithmus von Peterson, 1981) P1

5

boolean ready0= false; boolean ready1= false; int turn= 0;

ready0= true; ready1= true; while( ready1 );

beide Prozesse warten aktiv

Prozess 0 while( 1 ) { ready0= true; turn= 1; while( ready1 && turn == 1 );

while( ready0 ); while( ready1 ); + + ready0= false; + ready0= true; ...

while( ready0 ); + + ready1= false; + ready1= true; ...

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

Prozess 1 while( 1 ) { ready1= true; turn= 0; while( ready0 && turn == 0 );

... /* critical sec. */

... /* critical sec. */

ready0= false;

ready1= false; ... /* uncritical */

... /* uncritical */ }

}

I

62

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

63

I

65

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.2 Gegenseitiger Ausschluss (10)

8.3 Spezielle Maschinenbefehle

■ Algorithmus implementiert gegenseitigen Ausschluss

■ Spezielle Maschinenbefehle können die Programmierung kritischer Abschnitte unterstützen und vereinfachen

◆ vollständige und sichere Implementierung

◆ Test-and-Set Instruktion

◆ turn entscheidet für den kritischen Fall von Versuch 2, welcher Prozess nun wirklich den kritischen Abschnitt betreten darf

◆ Swap Instruktion

◆ in allen anderen Fällen ist turn unbedeutend

■ Test-and-set

▲ Problem der Lösung

◆ Maschinenbefehl mit folgender Wirkung (Java-ähnliche Syntax)

◆ aktives Warten

boolean test_and_set( MemmoryBit lock ) { boolean tmp= lock.getBit(); lock.setBit(true); return tmp; }

★ Algorithmus auch für mehrere Prozesse erweiterbar ◆ Lösung ist relativ aufwendig

• Bit wird gesetzt; vorheriger Wert wird zurückgegeben ◆ Ausführung ist atomar Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

64

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

8.3 Spezielle Maschinenbefehle (2)

8.3 Spezielle Maschinenbefehle (3) ■ Swap

◆ Kritische Abschnitte mit Test-and-Set Befehlen

◆ Maschinenbefehl mit folgender Wirkung

MemoryBit lock= new MemoryBit(false);

Prozess 0

void swap( MemoryWord mem1, MemoryWord mem2 ) { int tmp= mem1.getWord(); mem1.setWord( mem2.getWord() ); mem2.setWord( tmp ); }

Prozess 1

while( 1 ) { while( test_and_set(lock) );

while( 1 ) { while( test_and_set(lock) );

... /* critical sec. */

... /* critical sec. */

lock.setBit(false);

lock.setBit(false);

• Inhalt zweier Speicherworte wird vertauscht ... /* uncritical */

◆ Ausführung ist atomar

... /* uncritical */

}

}

★ Code ist identisch und für mehr als zwei Prozesse geeignet

I

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

66

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

67

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.3 Spezielle Maschinenbefehle (4)

8.4 Kritik an den bisherigen Verfahren

■ Kritische Abschnitte mit Swap-Befehlen

★ Spinlock ◆ bisherige Verfahren werden auch Spinlocks genannt

MemoryWord lock= new MemoryWord( 0 );

Prozess 0

Technische Informatik I

◆ aktives Warten

Prozess 1

MemoryWord key= new MemoryWord( 0 ); while( 1 ) { key.setWord(1); while( key.getWord()==1 ) swap( lock, key );

MemoryWord key= new MemoryWord( 0 ); while( 1 ) { key.setWord(1); while( key.getWord()==1 ) swap( lock, key );

... /* critical sec. */

... /* critical sec. */

lock.setWord(0); ... /* uncritical */

lock.setWord(0); ... /* uncritical */

▲ Problem des aktiven Wartens ◆ Verbrauch von Rechenzeit ohne Nutzen ◆ Behinderung „nützlicher“ Prozesse ◆ Abhängigkeit von der Schedulingstrategie • nicht anwendbar bei nicht-verdrängenden Strategien

}

• schlechte Effizienz bei langen Zeitscheiben

■ Spinlocks kommen heute fast ausschließlich in Multiprozessorsystemen zum Einsatz

}

◆ bei kurzen kritischen Abschnitten effizient

★ Code ist identisch und für mehr als zwei Prozesse geeignet Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

◆ Koordinierung zwischen Prozessen von mehreren Prozessoren

I

68

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

69

8.5 Sperrung von Unterbrechungen

8.6 Semaphor

■ Sperrung der Systemunterbrechungen im Betriebssystems Prozess 0

■ Ein Semaphor (griech. Zeichenträger) ist eine Datenstruktur des Systems mit zwei Operationen (nach Dijkstra) Prozess 1

disable_interrupts();

disable_interrupts();

... /* critical sec. */

... /* critical sec. */

enable_interrupts();

enable_interrupts();

◆ P-Operation (proberen; passeren; wait; down) • wartet bis Zugang frei

... /* uncritical sec. */

◆ V-Operation (verhogen; vrijgeven; signal; up) • macht Zugang für anderen Prozess frei ◆ Datenstruktur für Zugangssteuerung: Integer-Wert

... /* uncritical sec. */

class Semaphore { int s; Semaphore( int init ) { s= init; }

◆ nur für kurze Abschnitte geeignet • sonst Datenverluste möglich ◆ nur innerhalb des Betriebssystems möglich

void P() { ... } void V() { ... }

• privilegierter Modus nötig ◆ nur für Monoprozessoren anwendbar

}

• bei Multiprozessoren arbeiten Prozesse eventuell echt parallel Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

70

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

I

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

71

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.6 Semaphor (2)

8.6 Semaphor (3)

■ Operationen des Semaphors

■ Implementierung kritischer Abschnitte mit einem Semaphor

◆ P-Operation Semaphore lock= new Semaphore( 1 ); void P() { while( s 0

∀ i, S i = S i – 1

V( { Si } )

TRUE

∀ i, S i = S i + 1

I

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

99

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

9.5 Philosophenproblem (5)

9.5 Philosophenproblem (6)

■ Implementierung mit PV-multiple–Semaphoren

■ Lösung 2: einer der Philosophen muss erst die andere Gabel aufnehmen

◆ Schnittstelle ähnlich Up-Down-Semaphore-Implementierung

Semaphore [] forks= new Semaphore[5] { 1, 1, 1, 1, 1 };

PVMultSemaphore forks= new PVMultSemaphore( 5, new int[5] {1,1,1,1,1} );

Philosoph i, i ∈ [0,3]

Philosoph i, i ∈ [0,4]

while( 1 ) { ... /* think */

while( 1 ) { ... /* think */

Philosoph 4 while( 1 ) { ... /* think */

forks[i].P(); forks[(i+1)%5].P();

forks[0].P(); forks[4].P();

... /* eat */

... /* eat */

forks[i].V() forks[(i+1)%5].V()

forks[0].V() forks[4].V()

forks.P( new int[2]{i, (i+1)%5} ); ... /* eat */ forks.V( new int[2]{i, (i+1)%5} ); }

}

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

100

}

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

101

9.5 Philosophenproblem (7)

10 Monitore ■ Einfaches Konzept zur Koordinierung (B. Hansen/Hoare 1975)

◆ Ablauf der asymmetrischen Lösung im ungünstigsten Fall

◆ Ziel: Vermeidung von Koordinierungsfehlern durch falsche Platzierung von Semaphoren

Philosoph 0

Philosoph 1Philosoph 2Philosoph 3 Philosoph 4 forks[0].P();forks[1].P(); forks[2].P(); forks[3].P(); forks[1].P();forks[2].P(); forks[0].P(); forks[3].P(); forks[4].P();

■ Monitor als programmiersprachliches Konstrukt mit ◆ privaten Variablen ◆ Prozeduren • laufen immer im gegenseitigen Ausschluss

◆ System verklemmt sich nicht

◆ Condition-Variables zum Blockieren • Aufruf von wait(c) führt zur Blockade an Condition-Variable c • Aufruf von signal(c) führt zur Deblockade eines Prozesses blockiert an Condition-Variable c • Blockieren und Deblockieren unter gegenseitigem Ausschluss – Freigabe der Sperre bei Blockieren – Belegen der Sperre vor Deblockierung

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

102

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

void put( char c ) { while( count == N ) wait( notFull );

I

103

I

105

■ Threaderzeugung class MyThread extends Thread { public void run() { ... /* thread code */ } }

char get( void ) { char c; while( count == 0 ) wait( notEmpty );

buffer[inslot]= c; inslot= (inslot+1)%N; count++; signal( notEmpty );

... Thread t= new MyThread();

c= buffer[outslot]; outslot= (outslot+1)%N; count--; signal( notFull ); return c;

}

...

◆ weitere Möglichkeiten ohne Vererbung (siehe Java-Dokumentation)

}

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

10.2 Beispiel: Java

monitor { char buffer[N]; int inslot= 0, outslot= 0, count= 0; condition notFull, notEmpty;

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

10.1 Beispiel: Erzeuger-Verbraucher

}

Technische Informatik I

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

104

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

10.2 Beispiel: Java (2)

10.2 Beispiel: Java (3) ■ Jedes Objekt stellt Monitor dar

class buffer { char buffer[]= new char[N]; int inslot= 0, outslot= 0, count= 0; synchronized public void put( char c ) { while( count == N ) try { wait(); } catch( ... ) {}

◆ wait und notify statt wait und signal ◆ notifyAll deblockiert alle am Objekt (Monitor) blockierten Threads

★ Näheres: siehe Java-Dokumentation

c= buffer[outslot]; outslot= (outslot+1)%N; count--; notifyAll(); return c; }

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

■ Nur eine implizite Condition-Variable

while( count == 0 ) try { wait(); } catch( ... ) {}

}

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

◆ expliziter Eintritt in den Monitor (lock) durch synchronized( obj ) { ... }

synchronized public char get( void ) { char c;

buffer[inslot]= c; inslot=(inslot+1)%N; count++; notifyAll();

}

◆ nur für synchronized Methoden

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

106

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-I-Proc.fm, 2004-07-29 16.41]

I

107

1 Einordnung

J Speicherverwaltung

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

1

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Ebene 6

Problemorientierte Sprache

Ebene 5

Assemblersprache

Ebene 4

Betriebssystem

Ebene 3

ISA (Instruction Set Architecture)

Ebene 2

Mikroarchitektur

Ebene 1

Digitale Logik

Ebene 0

Physik

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

2

J

4

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

2 Phänomen der Speicherverwaltung

2 Phänomen der Speicherverwaltung (2)

■ Beispiel: Initialisierung von großen Matrizen (geschrieben in C)

■ Beispiel: Initialisierung von großen Matrizen (geschrieben in C)

◆ Variante 1:

◆ Variante 2:

#define DIM 10000

#define DIM 10000

int main() { register long i, j; static long matrix[DIM][DIM];

int main() { register long i, j; static long matrix[DIM][DIM];

for( i= 0; i< DIM; i++ ) for( j= 0; j< DIM; j++ ) matrix[i][j]= 1;

for( j= 0; j< DIM; j++ ) for( i= 0; i< DIM; i++ ) matrix[i][j]= 1;

exit(0);

exit(0);

}

} ◆ Schleifen sind vertauscht

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

3

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

2 Phänomen der Speicherverwaltung (3)

2 Phänomen der Speicherverwaltung (4)

■ Messergebnisse (P4 2,6 GHz, 1G Hauptspeicher)

■ Ursachen

◆ Variante 1: User time= 0,55 sec; System time= 0,66 sec; Gesamtzeit= 1,34 sec

◆ Logischer Adressraum • Benutzte Adressen sind nicht die physikalischen Adressen

◆ Variante 2: User time= 19,1 sec; System time= 0,75 sec; Gesamtzeit= 22,3 sec

• Abbildung wird durch Hardware auf Seitenbasis vorgenommen (Seitenadressierung) • Variante 2 hat weniger Lokalität, d.h. benötigt häufig wechselnde Abbildungen

■ Ursachen ◆ Variante 1 geht sequentiell durch den Speicher

◆ Virtueller Speicher

◆ Variante 2 greift versetzt ständig auf den gesamten Speicherbereich zu

• Möglicher Adressraum ist größer als physikalischer Speicher

Beispiel: matrix[4][4] und die ersten fünf Zugriffe Variante 1

1 2 3 4 5

Variante 2

1 5

• Auf Seitenbasis werden Teile des benötigten Speichers ein- und ausgelagert • bei Variante 2 muss viel mehr Speicher ein- und ausgelagert werden

2

3

4

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

5

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

6

J

8

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

3 Speichervergabe

3.1 Problemstellung (2)

3.1 Problemstellung

■ Belegung des verfügbaren Hauptspeichers durch ◆ Benutzerprogramme

■ Verfügbarer Speicher

– Programmbefehle (Code, Binary)

0xffffffff

– Programmdaten

ROM

◆ Betriebssystem – Betriebssystemcode

Ein-/Ausgabegeräte

– Puffer

verfügbarer Hauptspeicher

RAM

verfügbarer Adressraum (hier mit 32 Bit breiten Adressen)

– Systemvariablen

★ Zuteilung des Speichers nötig

0 Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

7

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

3.2 Statische Speicherzuteilung

3.3 Dynamische Speicherzuteilung

■ Feste Bereiche für Betriebssystem und Benutzerprogramm

■ Segmente ◆ zusammenhängender Speicherbereich (Bereich mit aufeinanderfolgenden Adressen)

▲ Probleme: ◆ Begrenzung anderer Ressourcen (z.B. Bandbreite bei Ein-/Ausgabe wg. zu kleiner Systempuffer)

■ Allokation (Anforderung) und Freigabe von Segmenten

◆ Ungenutzter Speicher des Betriebssystems kann von Anwendungsprogramm nicht genutzt werden und umgekehrt

■ Ein Anwendungsprogramm besitzt üblicherweise folgende Segmente: ◆ Codesegment

★ Dynamische Speicherzuteilung einsetzen

◆ Datensegment ◆ Stacksegment (für Verwaltungsinformationen, z.B. bei Funktionsaufrufen)

▲ Suche nach geeigneten Speicherbereichen zur Zuteilung ★ Speicherzuteilungsstrategien nötig

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

9

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

0

8 A

B

16 C

D

B

10

16 C

D

J

12

Speicher

Speicher B 0 5

1 1 1 1 1 0 0 0

J

■ Verkettete Liste

■ Bitlisten 8

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

3.4 Freispeicherverwaltung (2)

■ Freie (evtl. auch belegte) Segmente des Speichers müssen repräsentiert werden

A

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

3.4 Freispeicherverwaltung

0

Technische Informatik I

F 5 3 B 14 4

Bitliste markiert belegte Speichereinheiten

B 8 6 F 18 2

B 20 4

1 1 1 1 1 1 1 1 belegt/frei Länge Anfang

1 1 0 0 1 1 1 1

Repräsentation auch von freien Segmenten Speichereinheiten gleicher Größe (z.B. 1 Byte, 64 Byte, 1024 Byte)

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

11

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

3.4 Freispeicherverwaltung (3)

3.5 Speicherfreigabe

■ Verkettete Liste in dem freien Speicher 0

8 A

3

B

16 C

■ Verschmelzung von Lücken 0

2

D

8 A

Speicher

Länge

B

3

16 C

2

D

Speicher

D

Speicher

nach Freigabe von B: 0

Mindestlückengröße muss garantiert werden

8 A

■ Zur Effizienzsteigerung eventuell Rückwärtsverkettung sinnvoll

9

16 C

2

★ Repräsentation letztlich auch von der Vergabestrategie abhängig

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

13

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

14

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

3.6 Vergabestrategien

3.7 Einsatz der Verfahren

■ First Fit

■ Einsatz im Betriebssystem

◆ erste passende Lücke wird verwendet

◆ Verwaltung des Systemspeichers ◆ Zuteilung von Speicher an Prozesse und Betriebssystem

■ Rotating First Fit / Next Fit

■ Einsatz innerhalb eines Prozesses

◆ wie First Fit aber Start bei der zuletzt zugewiesenen Lücke

◆ Verwaltung des Haldenspeichers (Heap)

■ Best Fit

◆ erlaubt dynamische Allokation von Speicherbereichen durch den Prozess (malloc und free)

◆ kleinste passende Lücke wird gesucht

■ Worst Fit

■ Einsatz für Bereiche des Sekundärspeichers

◆ größte passende Lücke wird gesucht

◆ Verwaltung bestimmter Abschnitte des Sekundärspeichers z.B. Speicherbereich für Prozessauslagerungen (Swap space)

▲ Probleme: ◆ Speicherverschnitt ◆ zu kleine Lücken

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

15

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

16

4 Mehrprogrammbetrieb

4.2 Relokation

4.1 Problemstellung

■ Festlegung absoluter Speicheradressen in den Programmbefehlen ◆ z.B. ein Sprungbefehl in ein Unterprogramm oder ein Ladebefehl für eine Variable aus dem Datensegment

▲ Mehrere Prozesse benötigen Hauptspeicher ◆ Prozesse an verschiedenen Stellen im Hauptspeicher

P1

■ Absolutes Binden (Compile Time) ◆ Adressen stehen fest ◆ Programm kann nur an bestimmter Speicherstelle korrekt ablaufen

zwei Prozesse und deren Codesegmente im Speicher

P2

■ Statisches Binden (Load Time) ◆ Hauptspeicher nicht ausreichend

◆ Beim Laden (Starten) des Programms werden die absoluten Adressen angepasst (reloziert)

◆ Speicherschutz zwischen Betriebssystem und Prozessen sowie zwischen Prozessen untereinander

◆ Relokationsinformation nötig, die vom Compiler oder Assembler geliefert wird

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

17

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

int main() { exit(0); }

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

18

4.2 Relokation (3)

■ Compilevorgang (Erzeugung der Relokationsinformation) C-Programm

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

4.2 Relokation (2)

test.c

J

Technische Informatik I

test.s

test.o

test.o

Assembler main: pushl %ebp movl %esp,%ebp pushl $0 call exit addl $4,%esp movl %ebp,%esp popl %ebp ret

Erzeugung beim Compilevorgang

■ Binde- und Ladevorgang

Bindemodul

Bindemodul

Lademodul

Speicherabbild

0000 0001 0003 0005 000a 000d 000f 0010

0000 0001 0003 0005 000a 000d 000f 0010

... 2130 2131 2133 2135 213a 213d 213f 2140 ...

main: 0

main: 0

0006: exit ADDR32

0006: exit ADDR32

0036: ADDR32 TXT

ersetze Adresse von exit

ersetze Adresse relativ zum Codesegment

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

55 89E5 6A00 E800000000 83C404 89EC 5D C3

... 0030 0031 0033 0035 003a 003d 003f 0040 ...

55 89E5 6A00 E800000000 83C404 89EC 5D C3

ersetze Adresse von exit  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

Prozess

test

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

19

55 89E5 6A00 E848010000 83C404 89EC 5D C3

Adressen absolut zum Codesegm. z.B.: 2100

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

55 89E5 6A00 E848220000 83C404 89EC 5D C3

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

20

4.2 Relokation (4)

4.3 Ein-, Auslagerung (Swapping)

■ Relokationsinformation im Bindemodul

■ Segmente eines Prozesses werden auf Hintergrundspeicher ausgelagert und im Hauptspeicher freigegeben

◆ erlaubt das Binden von Modulen in beliebige Programme

◆ z.B. zur Überbrückung von Wartezeiten bei E/A oder Round-Robin Schedulingstrategie

■ Relokationsinformation im Lademodul ◆ erlaubt das Laden des Programms an beliebige Speicherstellen

■ Einlagern der Segmente in den Hauptspeicher am Ende der Wartezeit

◆ absolute Adressen werden erst beim Laden generiert

★ Alternative

P1

◆ Programm benutzt keine absoluten Adressen und kann daher immer an beliebige Speicherstellen geladen werden

Hauptspeicher

P1

P2

Hintergrundspeicher P2

▲ Aus-, Einlagerzeit ist hoch ◆ Latenzzeit der Festplatte ◆ Übertragunszeit Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

21

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

◆ Prozesse erhalten einen logischen Adressraum

◆ Kollisionen mit eventuell neu im Hauptspeicher befindlichen Segmenten

1

Partition 1

physikalischer Adressraum

logischer Adressraum

■ Mögliche Lösung: Partitionierung des Hauptspeichers

Partition 2

ROM

◆ In jeder Partition läuft nur ein Prozess

0x450000

◆ Einlagerung erfolgt wieder in die gleiche Partition

0x54ffff 0x450000

◆ Speicher kann nicht optimal genutzt werden

0x1fffff 0x100000

0xfffff

BS

0

Betriebssystem

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

RAM

0

0x100000

Das Segment des logischen Adressraums kann an jeder beliebige Stelle im physikalischen Adressraum liegen.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

22

■ Hardwareunterstützung: Umsetzung logischer in physikalische Adressen

◆ kann nur an gleiche Stelle im Hauptspeicher wieder eingelagert werden

2

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

4.4 Segmentierung

▲ Prozess ist statisch gebunden

Partition 3

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

4.3 Ein-, Auslagerung (2)

3

J

Technische Informatik I

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

23

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

24

4.4 Segmentierung (2)

4.4 Segmentierung (2)

■ Realisierung mit Übersetzungstabelle Segmenttabellenbasisregister

■ Realisierung mit Übersetzungstabelle 02

0000 4a02

Segmenttabellenbasisregister

logische Adresse

Segmenttabelle Startadr.

02

0000 4a02

Unterbrechung

ffe1 3a02

logische Adresse

Segmenttabelle

Länge

Startadr.

00 01 02 ffe0 f000 00 4fff ...

Länge

00 01 02 ffe0 f000 00 4fff ... ja

ffe1 3a02

physikalische Adresse

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

25

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

physikalische Adresse

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

25

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

4.4 Segmentierung (3)

4.4 Segmentierung (4)

■ Hardware wird MMU (Memory Management Unit) genannt

■ Zugriffsschutz einfach integrierbar ◆ z.B. Rechte zum Lesen, Schreiben und Ausführen von Befehlen, die von der MMU geprüft werden

■ Schutz vor Segmentübertretung ◆ Unterbrechung zeigt Speicherverletzung an

▲ Fragmentierung des Speichers durch häufiges Ein- und Auslagern

◆ Programme und Betriebssystem voreinander geschützt

◆ es entstehen kleine, nicht nutzbare Lücken

■ Prozessumschaltung durch Austausch der Segmentbasis

★ Kompaktifizieren

◆ jeder Prozess hat eigene Übersetzungstabelle (gehört zum Kontext)

◆ Segmente werden verschoben, um Lücken zu schließen; Segmenttabelle wird jeweils angepasst

■ Ein- und Auslagerung vereinfacht ◆ nach Einlagerung an beliebige Stelle muss lediglich die Übersetzungstabelle angepasst werden

▲ lange E/A Zeiten für Ein- und Auslagerung

■ Gemeinsame Segmente möglich

◆ nicht alle Teile eines Segments werden gleich häufig genutzt

◆ Codesegmente (Befehlssegmente) ◆ Datensegmente (Shared Memory) Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

26

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

27

4.5 Kompaktifizieren

5 Seitenadressierung (Paging)

■ Verschieben von Segmenten

■ Einteilung des logischen Adressraums in gleichgroße Seiten, die an beliebigen Stellen im physikalischen Adressraum liegen können

◆ Erzeugen von weniger aber größeren Lücken ◆ Verringern des Verschnitts

◆ Lösung des Fragmentierungsproblem

◆ aufwendige Operation, abhängig von der Größe der verschobenen Segmente

◆ keine Kompaktifizierung mehr nötig

Ausgangslage

700k verschoben

P1 400k 700k 1000k

300k P2 400k

1400k 1800k 2100k

300k verschoben

P1 400k 700k

logischer Adressraum

ROM

P2

P1

Kacheln (Frames)

400k

P3

1000k

1100k 1400k

P3 300k

1000k 2100k

Seiten (Pages)

P3 1800k 2100k

J

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

28

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

29

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

5.1 MMU mit Seiten-Kacheltabelle

5.1 MMU mit Seiten-Kacheltabelle (2)

■ Tabelle setzt Seiten in Kacheln um SKT Basisregister

RAM

P2

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

physikalischer Adressraum

0

0

0

◆ Vereinfacht Speicherbelegung und Ein-, Auslagerungen

▲ Seitenadressierung erzeugt internen Verschnitt 00002 12a

◆ letzte Seite eventuell nicht vollständig genutzt

logische Adresse

■ Seitengröße ◆ kleine Seiten verringern internen Verschnitt, vergrößern aber die SeitenKacheltabelle (und umgekehrt)

Seiten-Kacheltabelle Startadr.

◆ übliche Größen: 512 Bytes — 8192 Bytes

00000 00001 00002 ffe0 fxxx

▲ große Tabelle, die im Speicher gehalten werden muss

00003 00004 00005

▲ nur ein „Segment“ pro Kontext (in dieser Variante) ...

▲ viele implizite Speicherzugriffe nötig

ffe0f

12a

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

★ Kombination mit Segmentierung

physikalische Adresse

J

30

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

31

5.2 Segmentierung und Seitenadressierung logische Adresse

Segmentregister

1

5.2 Segmentierung und Seitenadressierung (2) ▲ noch mehr implizite Speicherzugriffe

0002 12a

▲ große Tabellen im Speicher Segmenttabelle

Seiten-Kacheltabelle

SKT Zeiger Seitenzahl

Startadr.

0 1 2

★ Mehrstufige Seitenadressierung mit Ein- und Auslagerung

0000 0001 0002 ffe0 fxxx

000f ...

0003 0004 0005 ... ja

Unterbrechung

physikalische Adresse

ffe0f

12a

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

32

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

33

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

5.3 Ein- und Auslagerung von Seiten

5.4 Mehrstufige Seitenadressierung

■ Es ist nicht nötig ein gesamtes Segment aus- bzw. einzulagern

■ Beispiel: zweifach indirekte Seitenadressierung

◆ Seiten können einzeln ein- und ausgelagert werden

logische Adresse

3 02 03 12a

■ Hardware-Unterstützung Seiten-Kacheltabelle Startadr. Präsenzbit

0000 0001 0002 ffe0 fxxx X ...

◆ Ist das Präsenzbit gesetzt, bleibt alles wie bisher. ...

◆ Ist das Präsenzbit gelöscht, wird eine Unterbrechung ausgelöst (Page fault).

...

◆ Die Unterbrechungsbehandlung kann nun für das Laden der Seite vom Hintergrundspeicher sorgen und den Speicherzugriff danach wiederholen (benötigt HW Support in der CPU).

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

34

...

...

... ...

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

...

J

35

5.4 Mehrstufige Seitenadressierung

5.5 Translation Look-Aside Buffer

■ Beispiel: zweifach indirekte Seitenadressierung logische Adresse

■ Schneller Registersatz wird konsultiert bevor auf die SKT zugegriffen wird:

3 02 03 12a

3

SKT Basisregister

02

Seiten-Kacheltabelle

03

...

Startadr.

... ...

00000 00001 00002 ffe0 fxxx

...

... ...

...

■ Aus- und einlagerbare Tabellen ◆ alle Einträge mit Präsenzbit (auch in höheren Ebenen)

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

35

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

12a

physikalische Adresse

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

36

J

38

6 Fallstudie: Pentium

■ Schneller Zugriff auf Seitenabbildung, falls Information im vollassoziativen Speicher des TLB

■ Physikalische Adresse ◆ 32 bit breit

◆ keine impliziten Speicherzugriffe nötig

■ Segmente

■ Bei Kontextwechseln muss TLB gelöscht werden (Flush)

◆ CS – Codesegment: enthält Instruktionen ◆ DS – Datensegment

■ Bei Zugriffen auf eine nicht im TLB enthaltene Seite wird die entsprechende Zugriffsinformation in den TLB eingetragen

◆ SS – Stacksegment ◆ ES, FS, GS – zusätzliche Segmente

◆ Ein alter Eintrag muss zur Ersetzung ausgesucht werden

■ TLB Größe

◆ Befehle beziehen sich auf eines oder mehrere der Segmente

◆ Pentium: Daten TLB = 64, Code TLB = 32, Seitengröße 4K

■ Segmentadressierung

◆ Sparc V9: Daten TLB = 64, Code TLB = 64, Seitengröße 8K

◆ 16 bit breiter Segmentselektor zum Verweis auf das Segments

◆ Größere TLBs bei den üblichen Taktraten zur Zeit nicht möglich

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

ffe0f

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

5.5 Translation Look-Aside Buffer (2)

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

Translation Look-Aside Buffer (TLB) 00002 a012 00004 ffe0 f 3 00002 bfff 00028 ffe04f 00002 ffe0 f 00032 1234 5

...

▲ Noch mehr implizite Speicherzugriffe  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

logische Adresse

00003 00004 00005

◆ Tabellen sind kleiner (ideal: Seitengröße)

Technische Informatik I

00002 12a

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

◆ für jedes Segment: Register für Segmentselektor

J

37

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

6.1 Real Mode Adressierung

6.2 Protected Mode Adressierung

■ Adressgenerierung im Real Mode

■ Vier Betriebsmodi (Stufen von Privilegien)

◆ 16 bit breiter Segmentselektor wird als 20 bit breite Adresse interpretiert und auf die logische Adresse addiert

◆ Stufe 0: höchste Privilegien (privilegierte Befehle, etc.): BS Kern ◆ Stufe 1: BS Treiber

Segmentselektor

logische Adresse

◆ Stufe 2: BS Erweiterungen

19

19 15

◆ Stufe 3: Benutzerprogramme

3 0 0

0

0 ◆ Speicherverwaltung kann nur in Stufe 0 konfiguriert werden

■ Segmentselektoren enthalten Privlegierungsstufe 20

◆ Stufe des Codesegments entscheidet über Zugriffserlaubnis

0

■ Segmentselektoren werden als Indizes interpretiert

physikalische Adresse

◆ Tabellen von Segmentdeskriptoren • Globale Deskriptor Tabelle • Lokale Deskriptor Tabelle

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

39

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

40

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

6.2 Protected Mode Adressierung (2)

6.3 Adressberechnung bei Segmentierung

■ Deskriptortabelle

■ Verwendung der Protected mode Adressierung

◆ enthält bis zu 8192 Segmentdeskriptoren

Segmentselektor 15 3 0

◆ Inhalt des Segmentdeskriptors:

logische Adresse 31

0

• physikalische Basisadresse wähle aus

• Längenangabe

LDTR GDTR

• Granularität (Angaben für Bytes oder Seiten) • Präsenzbit

Basisadr. 32 bit

• Privilegierungsstufe

Länge 20 bit

x 4096

Unterbrechung

◆ globale Deskriptortabelle für alle Prozesse zugänglich (Register GDTR) ◆ lokale Deskriptortabelle pro Prozess möglich (Register LDTR gehört zum Prozesskontext)

ja

... ... 31

0

physikalische Adresse Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

41

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

42

6.4 Adressberechnung bei Paging

6.4 Adressberechnung bei Paging (2)

■ Seitenadressierung wird der Segmentierung nachgeschaltet Segmentselektor 15 3 0

■ Zweistufige Seitenadressierung ◆ Directory — Page table

logische Adresse 31

0

◆ Seitengröße fest auf 4096 Bytes

■ Inhalt des Seitendeskriptor

segmentierte Adresse 31 21 11 0

Segmentierung:

◆ Kacheladresse ◆ Dirty Bit: Seite wurde beschrieben

CR3 (Page directory base register)

◆ Access Bit: Seite wurde gelesen oder geschrieben ◆ Schreibschutz: Seite nur lesbar

Page Table

Page Directory

◆ Präsenzbit: Seite ausgelagert (31 Bits für BS-Informationen nutzbar) ◆ Kontrolle des Prozessorcaches 31

■ Getrennte TLBs für Codesegment und Datensegmente

0

...

...

◆ 64 Einträge für Datenseiten; 32 Einträge für Codeseiten physikalische Adresse

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

43

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

44

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

6.5 Physical-Address-Extension (PAE)

6.5 Physical-Address-Extension (PAE) (2)

■ Nachgeschaltete dreistufige Seitenadressierung Segmentselektor 15 3 0

■ Ab Pentium Pro ◆ vierelementige Tabelle von Page-Directory-Pointers

logische Adresse 31

0

◆ 24 statt 20 Bit breite physikalische Adressumsetzung für den Seitenanfang ◆ 64 Bit statt 32 Bit breite Tabelleneinträge

segmentierte Adresse 31 29 20 11 0

Segmentierung:

◆ spezieller Chipsatz erforderlich

■ Adressierbarer Hauptspeicher von 64 GByte

CR3

Page Dir. Pointers

Page Dir.

Page Table

35 ...

0

... physikalische Adresse

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

45

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

46

7 Virtueller Speicher

7.1 Demand Paging

■ Entkoppelung des Speicherbedarfs vom verfügbaren Hauptspeicher

■ Bereitstellen von Seiten auf Anforderung

◆ Prozesse benötigen nicht alle Speicherstellen gleich häufig • bestimmte Befehle werden selten oder gar nicht benutzt (z.B. Fehlerbehandlungen)

virtueller Adressraum

• bestimmte Datenstrukturen werden nicht voll belegt ◆ Prozesse benötigen evtl. mehr Speicher als Hauptspeicher vorhanden

■ Idee ◆ Vortäuschen eines großen Hauptspeichers ◆ Einblenden benötiger Speicherbereiche ◆ Abfangen von Zugriffen auf nicht-eingeblendete Bereiche ◆ Bereitstellen der benötigen Bereiche auf Anforderung ◆ Auslagern nicht-benötigter Bereiche

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

47

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

G

7 11

4

0 1 0 0 0 1

D A G

G

F B

E

E

Präsenzbit

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

SKT

0 1 2 3 4 5 6 7

virtueller Adressraum

E F

C

Technische Informatik I

Hintergrundspeicher

Kacheln im Hauptspeicher Unterbrechung

virtueller Adressraum

Betriebssystem

SKT

G

C A

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

48

J

50

■ Reaktion auf Seitenfehler

SKT

lade v in F

E F

0 1 2 3 4 5 6 7

Hintergrundspeicher

7.1 Demand Paging (3)

■ Reaktion auf Seitenfehler A B C D

A B C D

Kacheln im Hauptspeicher

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

7.1 Demand Paging (2)

0 1 2 3 4 5 6 7 8 9 10 11 12

0 1 2 3 4 5 6 7 8 9 10 11 12

SKT 2 1 14 0 1 1 5 0 0 0 0 0 7 1 11 0 0 0 4 1

C C A

D A G

F B

G

E

E

Präsenzbit

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

49

0 1 2 3 4 5 6 7 8 9 10 11 12

A B C D

Betriebssystem

lade v in F

Kacheln im Hauptspeicher 0 1 2 3 4 5 6 7

SKT

E F

G

7 11

4

0 1 0 0 0 1

Ermitteln der ausgelagerten Seite

C

F C A G

Hintergrundspeicher

D A G Einlagern der Seite

F B

E

E

Präsenzbit

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

7.1 Demand Paging (4)

7.1 Demand Paging (5)

■ Reaktion auf Seitenfehler

■ Reaktion auf Seitenfehler

A B C D

lade v in F

SKT

E F

G

7 0

4

0 1 1 0 0 1

Hintergrundspeicher

SKT

Kacheln im Hauptspeicher 0 1 2 3 4 5 6 7

F C A

virtueller Adressraum

0 1 2 3 4 5 6 7 8 9 10 11 12

Betriebssystem

Anpassen der SKT

virtueller Adressraum

SKT

C D A G

F B

G

E

E

Präsenzbit

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

51

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

0 1 2 3 4 5 6 7 8 9 10 11 12

A B C D

Betriebssystem

Wiederholen des Zugriffs

Kacheln im Hauptspeicher

lade v in F

0 1 2 3 4 5 6 7

SKT

E F

G

7 0

4

0 1 1 0 0 1

Hintergrundspeicher

F C A

C D A G

F B

G

E

E

Präsenzbit

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

52

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

7.1 Demand Paging (6)

7.2 Seitenersetzung

▲ Performanz von Demand paging

■ Was tun, wenn keine freie Kachel vorhanden?

◆ Keine Seitenfehler

◆ Eine Seite muss verdrängt werden, um Platz für neue Seite zu schaffen! ◆ Auswahl von Seiten, die nicht geändert wurden (Dirty bit in der SKT)

• effektive Zugriffszeit zw. 10 und 200 Nanosekunden ◆ Mit Seitenfehler

◆ Verdrängung erfordert Auslagerung, falls Seite geändert wurde

• p sei Wahrscheinlichkeit für Seitenfehler; p nahe Null

■ Vorgang:

• Annahme: Zeit zum Einlagern einer Seite vom Hintergrundspeicher gleich 25 Millisekunden (8 ms Latenz, 15 ms Positionierzeit, 1 ms Übertragungszeit)

◆ Seitenfehler (Page fault): Unterbrechung ◆ Auslagern einer Seite, falls keine freie Kachel verfügbar

• Annahme: normale Zugriffszeit 100 ns

◆ Einlagern der benötigten Seite

• Effektive Zugriffszeit:

◆ Wiederholung des Zugriffs

( 1 – p ) × 100 + p × 25000000 = 100 + 24999900 × p

▲ Problem

▲ Seitenfehler müssen so niedrig wie möglich gehalten werden

◆ Welche Seite soll ausgewählt werden?

■ Abwandlung: Demand zero für nicht initialisierte Daten Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

53

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

54

8 Ersetzungsstrategien

8.1 First-In, First-Out

■ Betrachtung von Ersetzungsstrategien und deren Wirkung auf Referenzfolgen

■ Älteste Seite wird ersetzt ■ Notwendige Zustände:

■ Referenzfolge

◆ Alter bzw. Einlagerungszeitpunkt für jede Kachel

◆ Folge von Seitennummern, die das Speicherzugriffsverhalten eines Prozesses abbildet

■ Ablauf der Ersetzungen (9 Einlagerungen)

◆ Ermittlung von Referenzfolgen z.B. durch Aufzeichnung der zugegriffenen Adressen

Referenzfolge Kachel 1

• Reduktion der aufgezeichneten Sequenz auf Seitennummern Hauptspeicher

• Zusammenfassung von unmittelbar hintereinanderstehenden Zugriffen auf die gleiche Seite

Kontrollzustände (Alter pro Kachel)

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

J

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

55

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

0

Kachel 2

>

Kachel 3

>

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

■ Notwendige Zustände:

■ Notwendige Zustände:

◆ Alter bzw. Einlagerungszeitpunkt für jede Kachel

1

2

1

1

Kachel 2

3

4

1

2

5

1

2

3

4

5

Referenzfolge Kachel 1

2

2

3

4

J

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

Hauptspeicher

1

2

3

1

1

1

2

2

Kachel 2 Kachel 3

0

1

Kachel 2

>

0

Kachel 3

>

>

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

1

5

56

■ Ablauf der Ersetzungen (9 Einlagerungen)

Kachel 3

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

5

◆ Alter bzw. Einlagerungszeitpunkt für jede Kachel

■ Ablauf der Ersetzungen (9 Einlagerungen)

Kachel 1

2

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

■ Älteste Seite wird ersetzt

Kontrollzustände (Alter pro Kachel)

1

Technische Informatik I

■ Älteste Seite wird ersetzt

Hauptspeicher

4

1

Kachel 1

8.1 First-In, First-Out

Kachel 1

3

Kachel 2

8.1 First-In, First-Out

Referenzfolge

2

Kachel 3

◆ Beispiel für eine Referenzfolge: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

Technische Informatik I

1

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

Kontrollzustände (Alter pro Kachel)

J

56

4

1

2

5

0

1

2

Kachel 2

>

0

1

Kachel 3

>

>

0

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

2

3

4

5

3

Kachel 1

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

1

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

56

8.1 First-In, First-Out

8.1 First-In, First-Out

■ Älteste Seite wird ersetzt

■ Älteste Seite wird ersetzt

■ Notwendige Zustände:

■ Notwendige Zustände:

◆ Alter bzw. Einlagerungszeitpunkt für jede Kachel

◆ Alter bzw. Einlagerungszeitpunkt für jede Kachel

■ Ablauf der Ersetzungen (9 Einlagerungen) Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

1

1

4

2

2

2

3

3

Kachel 3

2

0

Kachel 1

0

1

Kachel 2

>

Kachel 3

>

Kachel 2 Kachel 3 Kachel 1

Kontrollzustände (Alter pro Kachel)

■ Ablauf der Ersetzungen (9 Einlagerungen)

0

1

Kachel 2

>

0

1

2

Kachel 3

>

>

0

1

1

2

5

1

2

3

5

Referenzfolge Kachel 1 Hauptspeicher

Kontrollzustände (Alter pro Kachel)

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

4

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

56

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

■ Notwendige Zustände:

■ Notwendige Zustände:

◆ Alter bzw. Einlagerungszeitpunkt für jede Kachel

2

3

4

1

2

1

1

1

4

4

4

2

2

2

1

1

3

3

3

2

2

0

1

2

Kachel 3 0

1

Kachel 2

>

0

1

2

0

1

Kachel 3

>

>

0

1

2

0

5

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

1

1

4

4

2

2

2

1

3

3

3

2

0

1

0

1

2

0

>

0

1

2

5

1

2

3

4

J

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

5

56

■ Ablauf der Ersetzungen (9 Einlagerungen)

1

Kachel 2

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

1

2

◆ Alter bzw. Einlagerungszeitpunkt für jede Kachel

■ Ablauf der Ersetzungen (9 Einlagerungen)

Kachel 1

1

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

■ Älteste Seite wird ersetzt

Kontrollzustände (Alter pro Kachel)

4

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

■ Älteste Seite wird ersetzt

Hauptspeicher

3

Technische Informatik I

8.1 First-In, First-Out

Kachel 1

2

Kachel 2

8.1 First-In, First-Out

Referenzfolge

1

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

1

2

3

4

5

Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

5

1

1

1

4

4

4

5

2

2

2

1

1

1

3

3

3

2

2

Kachel 2 Kachel 3

Kontrollzustände (Alter pro Kachel)

J

56

Kachel 1

0

1

2

0

1

2

0

Kachel 2

>

0

1

2

0

1

2

Kachel 3

>

>

0

1

2

0

1

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

1

2

3

4

J

5

56

8.1 First-In, First-Out

8.1 First-In, First-Out

■ Älteste Seite wird ersetzt

■ Älteste Seite wird ersetzt

■ Notwendige Zustände:

■ Notwendige Zustände:

◆ Alter bzw. Einlagerungszeitpunkt für jede Kachel

◆ Alter bzw. Einlagerungszeitpunkt für jede Kachel

■ Ablauf der Ersetzungen (9 Einlagerungen) Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

5

1

1

1

1

4

4

4

5

5

2

2

2

1

1

1

1

3

3

3

2

2

2

Kachel 3

2

0

1

2

0

1

Kachel 1

0

1

Kachel 2

>

Kachel 3

>

Kachel 2 Kachel 3 Kachel 1

Kontrollzustände (Alter pro Kachel)

■ Ablauf der Ersetzungen (9 Einlagerungen)

0

1

Kachel 2

>

0

1

2

0

1

2

3

Kachel 3

>

>

0

1

2

0

1

2

2

3

5

Referenzfolge Kachel 1 Hauptspeicher

Kontrollzustände (Alter pro Kachel)

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

4

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

56

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

■ Notwendige Zustände:

■ Notwendige Zustände:

◆ Alter bzw. Einlagerungszeitpunkt für jede Kachel

2

3

4

1

2

5

1

2

3

1

1

1

4

4

4

5

5

5

5

2

2

2

1

1

1

1

1

3

3

3

3

2

2

2

2

2

2

0

1

2

0

1

2

3

Kachel 3 0

1

Kachel 2

>

0

1

2

0

1

2

3

4

0

Kachel 3

>

>

0

1

2

0

1

2

3

4

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

5

1

2

1

1

1

4

4

4

5

5

5

2

2

2

1

1

1

1

1

3

3

3

2

2

2

2

2

0

1

2

0

1

2

0

1

2

0

1

2

3

4

>

0

1

2

0

1

2

3

3

4

J

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

5

56

■ Ablauf der Ersetzungen (9 Einlagerungen)

1

Kachel 2

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

2

◆ Alter bzw. Einlagerungszeitpunkt für jede Kachel

■ Ablauf der Ersetzungen (9 Einlagerungen)

Kachel 1

1

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

■ Älteste Seite wird ersetzt

Kontrollzustände (Alter pro Kachel)

4

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

■ Älteste Seite wird ersetzt

Hauptspeicher

3

Technische Informatik I

8.1 First-In, First-Out

Kachel 1

2

Kachel 2

8.1 First-In, First-Out

Referenzfolge

1

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

4

5

Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

5

1

2

3

4

1

1

1

4

4

4

5

5

5

5

5

2

2

2

1

1

1

1

1

3

3

3

3

3

2

2

2

2

2

4

Kachel 2 Kachel 3

Kontrollzustände (Alter pro Kachel)

J

56

Kachel 1

0

1

2

0

1

2

0

1

2

3

4

Kachel 2

>

0

1

2

0

1

2

3

4

0

1

Kachel 3

>

>

0

1

2

0

1

2

3

4

0

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

5

56

8.1 First-In, First-Out

8.1 First-In, First-Out (2)

■ Älteste Seite wird ersetzt

■ Größerer Hauptspeicher mit 4 Kacheln (10 Einlagerungen)

■ Notwendige Zustände:

Referenzfolge

◆ Alter bzw. Einlagerungszeitpunkt für jede Kachel

Kachel 1

■ Ablauf der Ersetzungen (9 Einlagerungen) Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

5

1

2

3

4

5

1

1

1

4

4

4

5

5

5

5

5

5

2

2

2

1

1

1

1

1

3

3

3

3

3

3

2

2

2

2

2

4

4

Kachel 2 Kachel 3

Kontrollzustände (Alter pro Kachel)

Hauptspeicher

Kachel 1

0

1

2

0

1

2

0

1

2

3

4

5

Kachel 2

>

0

1

2

0

1

2

3

4

0

1

2

Kachel 3

>

>

0

1

2

0

1

2

3

4

0

1

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

56

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

3

4

1

2

5

1

2

3

4

5

1

1

1

1

1

5

5

5

5

4

4

2

2

2

2

2

2

1

1

1

1

5

3

3

3

3

3

3

2

2

2

2

4

4

4

4

4

4

3

3

3

Kachel 2 Kachel 3 Kachel 4

Kontrollzustände (Alter pro Kachel)

Kachel 1

0

1

2

3

4

5

0

1

2

3

0

1

Kachel 2

>

0

1

2

3

4

5

0

1

2

3

0

Kachel 3

>

>

0

1

2

3

4

5

0

1

2

3

Kachel 4

>

>

>

0

1

2

3

4

5

0

1

2

■ FIFO Anomalie (Belady’s Anomalie, 1969)

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

57

8.2 Optimale Ersetzungsstrategie

■ Vorwärtsabstand

■ Vorwärtsabstand

◆ Zeitdauer bis zum nächsten Zugriff auf die entsprechende Seite

◆ Zeitdauer bis zum nächsten Zugriff auf die entsprechende Seite

■ Strategie B0 (OPT oder MIN) ist optimal (bei fester Kachelmenge): minimale Anzahl von Einlagerungen/Ersetzungen (hier 7)

■ Strategie B0 (OPT oder MIN) ist optimal (bei fester Kachelmenge): minimale Anzahl von Einlagerungen/Ersetzungen (hier 7)

◆ „Ersetze immer die Seite mit dem größten Vorwärtsabstand!“ Referenzfolge Kachel 1

1

2

3

4

1

2

5

1

◆ „Ersetze immer die Seite mit dem größten Vorwärtsabstand!“ 2

3

4

5

Referenzfolge

1

Kachel 1

Kachel 2

Hauptspeicher

Kachel 3 Kontrollzustände (Vorwärtsabstand)

2

1

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.2 Optimale Ersetzungsstrategie

Hauptspeicher

1

4

Kachel 2

>

Kachel 3

>

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

2

1

1

Kachel 2

3

4

1

2

5

1

2

3

4

5

2

Kachel 3

Kachel 1

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

1

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

Kontrollzustände (Vorwärtsabstand)

J

58

Kachel 1

4

3

Kachel 2

>

4

Kachel 3

>

>

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

58

8.2 Optimale Ersetzungsstrategie

8.2 Optimale Ersetzungsstrategie

■ Vorwärtsabstand

■ Vorwärtsabstand

◆ Zeitdauer bis zum nächsten Zugriff auf die entsprechende Seite

◆ Zeitdauer bis zum nächsten Zugriff auf die entsprechende Seite

■ Strategie B0 (OPT oder MIN) ist optimal (bei fester Kachelmenge): minimale Anzahl von Einlagerungen/Ersetzungen (hier 7)

■ Strategie B0 (OPT oder MIN) ist optimal (bei fester Kachelmenge): minimale Anzahl von Einlagerungen/Ersetzungen (hier 7)

◆ „Ersetze immer die Seite mit dem größten Vorwärtsabstand!“ Referenzfolge Kachel 1 Hauptspeicher

1

2

3

1

1

1

2

2

Kachel 2 Kachel 3

Kontrollzustände (Vorwärtsabstand)

4

1

2

5

1

◆ „Ersetze immer die Seite mit dem größten Vorwärtsabstand!“ 2

3

5

Kachel 1 Hauptspeicher

4

3

2

Kachel 2

>

4

3

Kachel 3

>

>

7

Kontrollzustände (Vorwärtsabstand)

J

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

58

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

2

3

4

1

1

1

1

2

2

2

3

4

Kachel 2

Kachel 1

4

3

2

1

Kachel 2

>

4

3

2

Kachel 3

>

>

7

7

1

2

5

1

2

3

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

4

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

5

58

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.2 Optimale Ersetzungsstrategie

8.2 Optimale Ersetzungsstrategie

■ Vorwärtsabstand

■ Vorwärtsabstand

◆ Zeitdauer bis zum nächsten Zugriff auf die entsprechende Seite

◆ Zeitdauer bis zum nächsten Zugriff auf die entsprechende Seite

■ Strategie B0 (OPT oder MIN) ist optimal (bei fester Kachelmenge): minimale Anzahl von Einlagerungen/Ersetzungen (hier 7)

■ Strategie B0 (OPT oder MIN) ist optimal (bei fester Kachelmenge): minimale Anzahl von Einlagerungen/Ersetzungen (hier 7)

◆ „Ersetze immer die Seite mit dem größten Vorwärtsabstand!“ Referenzfolge Kachel 1

1

2

3

4

1

1

1

1

1

1

2

2

2

2

3

4

4

Kachel 2 Kachel 3

Kontrollzustände (Vorwärtsabstand)

1

Kachel 3

Technische Informatik I

Hauptspeicher

Referenzfolge

3

Kachel 1

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

4

Kachel 1

4

3

2

1

3

Kachel 2

>

4

3

2

1

Kachel 3

>

>

7

7

6

2

5

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

1

◆ „Ersetze immer die Seite mit dem größten Vorwärtsabstand!“ 2

3

4

5

Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

1

1

1

1

1

1

2

2

2

2

2

3

4

4

4

Kachel 2 Kachel 3

Kontrollzustände (Vorwärtsabstand)

J

58

Kachel 1

4

3

2

1

3

2

Kachel 2

>

4

3

2

1

3

Kachel 3

>

>

7

7

6

5

5

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

1

2

3

4

J

5

58

8.2 Optimale Ersetzungsstrategie

8.2 Optimale Ersetzungsstrategie

■ Vorwärtsabstand

■ Vorwärtsabstand

◆ Zeitdauer bis zum nächsten Zugriff auf die entsprechende Seite

◆ Zeitdauer bis zum nächsten Zugriff auf die entsprechende Seite

■ Strategie B0 (OPT oder MIN) ist optimal (bei fester Kachelmenge): minimale Anzahl von Einlagerungen/Ersetzungen (hier 7)

■ Strategie B0 (OPT oder MIN) ist optimal (bei fester Kachelmenge): minimale Anzahl von Einlagerungen/Ersetzungen (hier 7)

◆ „Ersetze immer die Seite mit dem größten Vorwärtsabstand!“ Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

5

1

1

1

1

1

1

1

2

2

2

2

2

2

3

4

4

4

5

Kachel 2 Kachel 3

Kontrollzustände (Vorwärtsabstand)

Kachel 1

4

3

2

1

3

2

1

Kachel 2

>

4

3

2

1

3

2

Kachel 3

>

>

7

7

6

5

5

1

◆ „Ersetze immer die Seite mit dem größten Vorwärtsabstand!“ 2

3

5

Hauptspeicher

Kontrollzustände (Vorwärtsabstand)

J

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

58

2

3

4

1

2

5

1

1

1

1

1

1

1

1

1

2

2

2

2

2

2

2

3

4

4

4

5

5

Kachel 2

Kachel 1

4

3

2

1

3

2

1

>

Kachel 2

>

4

3

2

1

3

2

1

Kachel 3

>

>

7

7

6

5

5

4

2

3

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

4

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

5

58

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.2 Optimale Ersetzungsstrategie

8.2 Optimale Ersetzungsstrategie

■ Vorwärtsabstand

■ Vorwärtsabstand

◆ Zeitdauer bis zum nächsten Zugriff auf die entsprechende Seite

◆ Zeitdauer bis zum nächsten Zugriff auf die entsprechende Seite

■ Strategie B0 (OPT oder MIN) ist optimal (bei fester Kachelmenge): minimale Anzahl von Einlagerungen/Ersetzungen (hier 7)

■ Strategie B0 (OPT oder MIN) ist optimal (bei fester Kachelmenge): minimale Anzahl von Einlagerungen/Ersetzungen (hier 7)

◆ „Ersetze immer die Seite mit dem größten Vorwärtsabstand!“ Referenzfolge Kachel 1

◆ „Ersetze immer die Seite mit dem größten Vorwärtsabstand!“

1

2

3

4

1

2

5

1

2

1

1

1

1

1

1

1

1

1

2

2

2

2

2

2

2

2

3

4

4

4

5

5

5

Kachel 2 Kachel 3

Kontrollzustände (Vorwärtsabstand)

1

Kachel 3

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Hauptspeicher

Referenzfolge Kachel 1

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

4

Kachel 1

4

3

2

1

3

2

1

>

>

Kachel 2

>

4

3

2

1

3

2

1

>

Kachel 3

>

>

7

7

6

5

5

4

3

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

3

4

5

Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

5

1

2

3

1

1

1

1

1

1

1

1

1

3

2

2

2

2

2

2

2

2

2

3

4

4

4

5

5

5

5

Kachel 2 Kachel 3

Kontrollzustände (Vorwärtsabstand)

J

58

Kachel 1

4

3

2

1

3

2

1

>

>

>

Kachel 2

>

4

3

2

1

3

2

1

>

>

Kachel 3

>

>

7

7

6

5

5

4

3

2

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

4

J

5

58

8.2 Optimale Ersetzungsstrategie

8.2 Optimale Ersetzungsstrategie

■ Vorwärtsabstand

■ Vorwärtsabstand

◆ Zeitdauer bis zum nächsten Zugriff auf die entsprechende Seite

◆ Zeitdauer bis zum nächsten Zugriff auf die entsprechende Seite

■ Strategie B0 (OPT oder MIN) ist optimal (bei fester Kachelmenge): minimale Anzahl von Einlagerungen/Ersetzungen (hier 7)

■ Strategie B0 (OPT oder MIN) ist optimal (bei fester Kachelmenge): minimale Anzahl von Einlagerungen/Ersetzungen (hier 7)

◆ „Ersetze immer die Seite mit dem größten Vorwärtsabstand!“ Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

5

1

2

3

4

1

1

1

1

1

1

1

1

1

3

4

2

2

2

2

2

2

2

2

2

2

3

4

4

4

5

5

5

5

5

Kachel 2 Kachel 3

Kontrollzustände (Vorwärtsabstand)

◆ „Ersetze immer die Seite mit dem größten Vorwärtsabstand!“

Kachel 1

4

3

2

1

3

2

1

>

>

>

>

Kachel 2

>

4

3

2

1

3

2

1

>

>

>

Kachel 3

>

>

7

7

6

5

5

4

3

2

1

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

5

Kachel 1 Hauptspeicher

Kontrollzustände (Vorwärtsabstand)

58

4

1

2

5

1

2

3

4

5

1

1

1

1

1

1

1

3

4

4

2

2

2

2

2

2

2

2

2

2

2

3

4

4

4

5

5

5

5

5

5

Kachel 2

Kachel 1

4

3

2

1

3

2

1

>

>

>

>

>

Kachel 2

>

4

3

2

1

3

2

1

>

>

>

>

Kachel 3

>

>

7

7

6

5

5

4

3

2

1

>

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

58

J

60

■ Implementierung von B0 nahezu unmöglich

1

2

3

4

1

2

5

1

2

3

4

5

1

1

1

1

1

1

1

1

1

1

4

4

2

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

3

3

3

3

3

4

4

4

5

5

5

5

5

5

Kachel 2 Kachel 3 Kachel 4 Kontrollzustände (Vorwärtsabstand)

3

1

8.2 Optimale Ersetzungsstrategie (3)

■ Vergrößerung des Hauptspeichers (4 Kacheln): 6 Einlagerungen

Hauptspeicher

2

1

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.2 Optimale Ersetzungsstrategie (2)

Kachel 1

1

Kachel 3

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Referenzfolge

Referenzfolge

Kachel 1

4

3

2

1

3

2

1

>

>

>

>

>

Kachel 2

>

4

3

2

1

3

2

1

>

>

>

>

Kachel 3

>

>

7

6

5

4

3

2

1

>

>

>

Kachel 4

>

>

>

7

6

5

5

4

3

2

1

>

◆ Referenzfolge müsste vorher bekannt sein ◆ B0 meist nur zum Vergleich von Strategien brauchbar

■ Suche nach Strategien, die möglichst nahe an B0 kommen ◆ z.B. Least recently used (LRU)

◆ keine Anomalie Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

59

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

8.3 Least Recently Used (LRU)

8.3 Least Recently Used (LRU)

■ Rückwärtsabstand

■ Rückwärtsabstand

◆ Zeitdauer, seit dem letzten Zugriff auf die Seite

◆ Zeitdauer, seit dem letzten Zugriff auf die Seite

■ LRU Strategie (10 Einlagerungen)

■ LRU Strategie (10 Einlagerungen)

◆ „Ersetze die Seite mit dem größten Rückwärtsabstand°!“ Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

5

◆ „Ersetze die Seite mit dem größten Rückwärtsabstand°!“ 1

2

3

4

5

Referenzfolge

1

Kachel 1

Kachel 2

Hauptspeicher

Kachel 3 Kontrollzustände (Rückwärtsabstand)

0

Kachel 2

>

Kachel 3

>

Kontrollzustände (Rückwärtsabstand)

J

Technische Informatik I [2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

61

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

1

Kachel 2

4

1

2

5

1

2

3

4

5

2

Kachel 1

0

1

Kachel 2

>

0

Kachel 3

>

>

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

61

8.3 Least Recently Used (LRU)

■ Rückwärtsabstand

■ Rückwärtsabstand

◆ Zeitdauer, seit dem letzten Zugriff auf die Seite

◆ Zeitdauer, seit dem letzten Zugriff auf die Seite

■ LRU Strategie (10 Einlagerungen)

■ LRU Strategie (10 Einlagerungen)

◆ „Ersetze die Seite mit dem größten Rückwärtsabstand°!“ Referenzfolge Kachel 1

1

2

3

1

1

1

2

2

Kachel 2 Kachel 3

Kontrollzustände (Rückwärtsabstand)

1

3

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.3 Least Recently Used (LRU)

Hauptspeicher

2

Kachel 3

Kachel 1

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

1

4

1

2

5

0

1

2

Kachel 2

>

0

1

Kachel 3

>

>

0

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

2

3

4

5

Referenzfolge Kachel 1 Hauptspeicher

3

Kachel 1

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

◆ „Ersetze die Seite mit dem größten Rückwärtsabstand°!“ 1

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

1

2

3

4

1

1

1

4

2

2

2

3

3

Kachel 2 Kachel 3

Kontrollzustände (Rückwärtsabstand)

J

61

Kachel 1

0

1

2

0

Kachel 2

>

0

1

2

Kachel 3

>

>

0

1

1

2

5

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

1

2

3

4

J

5

61

8.3 Least Recently Used (LRU)

8.3 Least Recently Used (LRU)

■ Rückwärtsabstand

■ Rückwärtsabstand

◆ Zeitdauer, seit dem letzten Zugriff auf die Seite

◆ Zeitdauer, seit dem letzten Zugriff auf die Seite

■ LRU Strategie (10 Einlagerungen)

■ LRU Strategie (10 Einlagerungen)

◆ „Ersetze die Seite mit dem größten Rückwärtsabstand°!“ Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

1

1

1

4

4

2

2

2

1

3

3

3

Kachel 2 Kachel 3

Kontrollzustände (Rückwärtsabstand)

Kachel 1

0

1

2

0

1

Kachel 2

>

0

1

2

0

Kachel 3

>

>

0

1

2

2

5

◆ „Ersetze die Seite mit dem größten Rückwärtsabstand°!“ 1

2

3

5

Hauptspeicher

Kontrollzustände (Rückwärtsabstand)

J

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

61

2

3

4

1

2

1

1

1

4

4

4

2

2

2

1

1

3

3

3

2

Kachel 2

Kachel 1

0

1

2

0

1

2

Kachel 2

>

0

1

2

0

1

Kachel 3

>

>

0

1

2

0

5

1

2

3

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

4

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

5

61

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.3 Least Recently Used (LRU)

8.3 Least Recently Used (LRU)

■ Rückwärtsabstand

■ Rückwärtsabstand

◆ Zeitdauer, seit dem letzten Zugriff auf die Seite

◆ Zeitdauer, seit dem letzten Zugriff auf die Seite

■ LRU Strategie (10 Einlagerungen)

■ LRU Strategie (10 Einlagerungen)

◆ „Ersetze die Seite mit dem größten Rückwärtsabstand°!“ Referenzfolge Kachel 1

1

2

3

4

1

2

5

1

1

1

4

4

4

5

2

2

2

1

1

1

3

3

3

2

2

Kachel 2 Kachel 3

Kontrollzustände (Rückwärtsabstand)

1

Kachel 3

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Hauptspeicher

Referenzfolge Kachel 1

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

4

Kachel 1

0

1

2

0

1

2

0

Kachel 2

>

0

1

2

0

1

2

Kachel 3

>

>

0

1

2

0

1

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

◆ „Ersetze die Seite mit dem größten Rückwärtsabstand°!“ 1

2

3

4

5

Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

5

1

1

1

1

4

4

4

5

5

2

2

2

1

1

1

1

3

3

3

2

2

2

Kachel 2 Kachel 3

Kontrollzustände (Rückwärtsabstand)

J

61

Kachel 1

0

1

2

0

1

2

0

1

Kachel 2

>

0

1

2

0

1

2

0

Kachel 3

>

>

0

1

2

0

1

2

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

2

3

4

J

5

61

8.3 Least Recently Used (LRU)

8.3 Least Recently Used (LRU)

■ Rückwärtsabstand

■ Rückwärtsabstand

◆ Zeitdauer, seit dem letzten Zugriff auf die Seite

◆ Zeitdauer, seit dem letzten Zugriff auf die Seite

■ LRU Strategie (10 Einlagerungen)

■ LRU Strategie (10 Einlagerungen)

◆ „Ersetze die Seite mit dem größten Rückwärtsabstand°!“ Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

5

1

2

1

1

1

4

4

4

5

5

5

2

2

2

1

1

1

1

1

3

3

3

2

2

2

2

Kachel 2 Kachel 3

Kontrollzustände (Rückwärtsabstand)

◆ „Ersetze die Seite mit dem größten Rückwärtsabstand°!“

Kachel 1

0

1

2

0

1

2

0

1

2

Kachel 2

>

0

1

2

0

1

2

0

1

Kachel 3

>

>

0

1

2

0

1

2

0

3

5

Hauptspeicher

Kontrollzustände (Rückwärtsabstand)

J

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

61

2

3

4

1

2

5

1

2

3

1

1

1

4

4

4

5

5

5

3

2

2

2

1

1

1

1

1

1

3

3

3

2

2

2

2

2

Kachel 2

Kachel 1

0

1

2

0

1

2

0

1

2

0

Kachel 2

>

0

1

2

0

1

2

0

1

2

Kachel 3

>

>

0

1

2

0

1

2

0

1

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

4

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

5

61

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.3 Least Recently Used (LRU)

8.3 Least Recently Used (LRU)

■ Rückwärtsabstand

■ Rückwärtsabstand

◆ Zeitdauer, seit dem letzten Zugriff auf die Seite

◆ Zeitdauer, seit dem letzten Zugriff auf die Seite

■ LRU Strategie (10 Einlagerungen)

■ LRU Strategie (10 Einlagerungen)

◆ „Ersetze die Seite mit dem größten Rückwärtsabstand°!“ Referenzfolge Kachel 1

◆ „Ersetze die Seite mit dem größten Rückwärtsabstand°!“

1

2

3

4

1

2

5

1

2

3

4

1

1

1

4

4

4

5

5

5

3

3

2

2

2

1

1

1

1

1

1

4

3

3

3

2

2

2

2

2

2

Kachel 2 Kachel 3

Kontrollzustände (Rückwärtsabstand)

1

Kachel 3

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Hauptspeicher

Referenzfolge Kachel 1

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

4

Kachel 1

0

1

2

0

1

2

0

1

2

0

1

Kachel 2

>

0

1

2

0

1

2

0

1

2

0

Kachel 3

>

>

0

1

2

0

1

2

0

1

2

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

5

Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

5

1

2

3

4

5

1

1

1

4

4

4

5

5

5

3

3

3

2

2

2

1

1

1

1

1

1

4

4

3

3

3

2

2

2

2

2

2

5

Kachel 2 Kachel 3

Kontrollzustände (Rückwärtsabstand)

61

Kachel 1

0

1

2

0

1

2

0

1

2

0

1

2

Kachel 2

>

0

1

2

0

1

2

0

1

2

0

1

Kachel 3

>

>

0

1

2

0

1

2

0

1

2

0

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

61

8.3 Least Recently Used (2)

8.3 Least Recently Used (3)

■ Vergrößerung des Hauptspeichers (4 Kacheln): 8 Einlagerungen Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

5

1

2

3

4

5

1

1

1

1

1

1

1

1

1

1

1

5

2

2

2

2

2

2

2

2

2

2

2

3

3

3

3

5

5

5

5

4

4

4

4

4

4

4

4

3

3

3

Kachel 2 Kachel 3 Kachel 4

Kontrollzustände (Rückwärtsabstand)

■ Keine Anomalie

Kachel 1

0

Kachel 2 Kachel 3 Kachel 4

◆ Allgemein gilt: Es gibt eine Klasse von Algorithmen (Stack-Algorithmen), bei denen keine Anomalie auftritt: • Bei Stack-Algorithmen ist bei n Kacheln zu jedem Zeitpunkt eine Untermenge der Seiten eingelagert, die bei n+1 Kacheln zum gleichen Zeitpunkt eingelagert wären! • LRU: Es sind immer die letzten n benutzten Seiten eingelagert • B0: Es sind die n bereits benutzten Seiten eingelagert, die als nächstes zugegriffen werden

1

2

3

0

1

2

0

1

2

3

0

>

0

1

2

3

0

1

2

0

1

2

3

>

>

0

1

2

3

0

1

2

3

0

1

◆ Implementierung von LRU nicht ohne Hardwareunterstützung möglich

>

>

>

0

1

2

3

4

5

0

1

2

◆ Es muss jeder Speicherzugriff berücksichtigt werden

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

▲ Problem

62

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

63

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.3 Least Recently Used (4)

8.4 Second Chance (Clock)

■ Hardwareunterstützung durch Zähler

■ Einsatz von Referenzbits

◆ CPU besitzt einen Zähler, der bei jedem Speicherzugriff erhöht wird (inkrementiert wird)

◆ Referenzbit im Seitendeskriptor wird automatisch durch Hardware gesetzt, wenn die Seite zugegriffen wird

◆ bei jedem Zugriff wird der aktuelle Zählerwert in den jeweiligen Seitendeskriptor geschrieben

• einfacher zu implementieren • weniger zusätzliche Speicherzugriffe

◆ Auswahl der Seite mit dem kleinsten Zählerstand

• moderne Prozessoren bzw. MMUs unterstützen Referenzbits (z.B. Pentium: Access bit)

▲ Aufwendige Implementierung

■ Ziel: Annäherung von LRU

◆ viele zusätzliche Speicherzugriffe

◆ das Referenzbit wird beim ersten Zugriff zunächst auf 1 gesetzt ◆ wird eine Opferseite gesucht, so werden die Kacheln reihum inspiziert ◆ ist das Referenzbit 1, so wird es auf 0 gesetzt (zweite Chance) ◆ ist das Referenzbit 0, so wird die Seite ersetzt

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

64

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

65

8.4 Second Chance (2)

8.4 Second Chance (2)

■ Implementierung mit umlaufendem Zeiger (Clock) Referenzbit

A 1 I 1

■ Implementierung mit umlaufendem Zeiger (Clock)

B 0

H 0

I 1

C 1

G 1

Referenzbit

A 1 B 0

H 0

D 1

C 0

G 1

F 1 E 0

D 1 F 1 E 0

◆ an der Zeigerposition wird Referenzbit getestet

◆ an der Zeigerposition wird Referenzbit getestet

• falls Referenzbit eins, wird Bit gelöscht

• falls Referenzbit eins, wird Bit gelöscht

• falls Referenzbit gleich Null, wurde ersetzbare Seite gefunden

• falls Referenzbit gleich Null, wurde ersetzbare Seite gefunden

• Zeiger wird weitergestellt; falls keine Seite gefunden: Wiederholung

• Zeiger wird weitergestellt; falls keine Seite gefunden: Wiederholung

◆ falls alle Referenzbits auf 1 stehen, wird Second chance zu FIFO Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

◆ falls alle Referenzbits auf 1 stehen, wird Second chance zu FIFO

J

66

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

Referenzbit

A 1

B 0

I 1

C 0

G 1

B 0

H 0

D 1

C 0

G 1

F 1 E 0

D 0 F 1 E 0

◆ an der Zeigerposition wird Referenzbit getestet

◆ an der Zeigerposition wird Referenzbit getestet

• falls Referenzbit eins, wird Bit gelöscht

• falls Referenzbit eins, wird Bit gelöscht

• falls Referenzbit gleich Null, wurde ersetzbare Seite gefunden

• falls Referenzbit gleich Null, wurde ersetzbare Seite gefunden

• Zeiger wird weitergestellt; falls keine Seite gefunden: Wiederholung

• Zeiger wird weitergestellt; falls keine Seite gefunden: Wiederholung

◆ falls alle Referenzbits auf 1 stehen, wird Second chance zu FIFO Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

66

■ Implementierung mit umlaufendem Zeiger (Clock)

Referenzbit

H 0

J

8.4 Second Chance (2)

■ Implementierung mit umlaufendem Zeiger (Clock) A 1

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.4 Second Chance (2)

I 1

Technische Informatik I

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

◆ falls alle Referenzbits auf 1 stehen, wird Second chance zu FIFO

J

66

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

66

8.4 Second Chance (2)

8.4 Second Chance (2)

■ Implementierung mit umlaufendem Zeiger (Clock)

■ Implementierung mit umlaufendem Zeiger (Clock)

Referenzbit

A 1 I 1

B 0

H 0

I 1

C 0

G 1

Referenzbit

A 1 B 0

H 0

D 0

C 0

G 1

F 1 E 0

D 0 F 1 E 0

◆ an der Zeigerposition wird Referenzbit getestet

◆ an der Zeigerposition wird Referenzbit getestet

• falls Referenzbit eins, wird Bit gelöscht

• falls Referenzbit eins, wird Bit gelöscht

• falls Referenzbit gleich Null, wurde ersetzbare Seite gefunden

• falls Referenzbit gleich Null, wurde ersetzbare Seite gefunden

• Zeiger wird weitergestellt; falls keine Seite gefunden: Wiederholung

• Zeiger wird weitergestellt; falls keine Seite gefunden: Wiederholung

◆ falls alle Referenzbits auf 1 stehen, wird Second chance zu FIFO Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

◆ falls alle Referenzbits auf 1 stehen, wird Second chance zu FIFO

J

66

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Referenzfolge Kachel 1

B 0 Hauptspeicher

C 0

G 1

66

■ Ablauf bei drei Kacheln (9 Einlagerungen)

Referenzbit

H 0

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

8.4 Second Chance (3)

■ Implementierung mit umlaufendem Zeiger (Clock)

I 1

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.4 Second Chance (2)

A 1

J

Technische Informatik I

1

2

3

4

1

2

5

1

2

3

4

5

1

1

1

4

4

4

5

5

5

5

5

5

2

2

2

1

1

1

1

1

3

3

3

3

3

3

2

2

2

2

2

4

4

Kachel 2 Kachel 3

D 0 F 1 E 0

Kontrollzustände (Referenzbits)

Seite wird ersetzt ◆ an der Zeigerposition wird Referenzbit getestet • falls Referenzbit eins, wird Bit gelöscht

Kachel 1

1

1

1

1

1

1

1

1

1

0

0

1

Kachel 2

0

1

1

0

1

1

0

1

1

1

1

1

Kachel 3

0

0

1

0

0

1

0

0

1

0

1

1

Umlaufzeiger

2

3

1

2

3

1

2

2

2

3

1

1

• falls Referenzbit gleich Null, wurde ersetzbare Seite gefunden • Zeiger wird weitergestellt; falls keine Seite gefunden: Wiederholung ◆ falls alle Referenzbits auf 1 stehen, wird Second chance zu FIFO Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

66

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

67

8.4 Second Chance (4)

8.4 Second Chance (5)

■ Vergrößerung des Hauptspeichers (4 Kacheln): 10 Einlagerungen Referenzfolge Kachel 1 Hauptspeicher

1

2

3

4

1

2

5

1

2

3

4

5

1

1

1

1

1

1

5

5

5

5

4

4

2

2

2

2

2

2

1

1

1

1

5

3

3

3

3

3

3

2

2

2

2

4

4

4

4

4

4

3

3

3

Kachel 2 Kachel 3 Kachel 4

Kontrollzustände (Refernzbits)

■ Second chance zeigt FIFO Anomalie

Kachel 1

1

1

1

1

1

1

1

1

1

1

1

1

Kachel 2

0

1

1

1

1

1

0

1

1

1

0

1

Kachel 3

0

0

1

1

1

1

0

0

1

1

0

0

Kachel 4

0

0

0

1

1

1

0

0

0

1

0

0

Umlaufzeiger

2

3

4

1

1

1

2

3

4

1

2

3

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

68

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

◆ Wenn alle Referenzbits gleich 1, wird nach FIFO entschieden

■ Erweiterung ◆ Modifikationsbit kann zusätzlich berücksichtigt werden (Dirty bit) ◆ drei Klassen: (0,0), (1,0) und (1,1) mit (Referenzbit, Modifikationsbit) ◆ Suche nach der niedrigsten Klasse (Einsatz im MacOS)

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

69

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

8.5 Freiseitenpuffer

9 Seitenadressierung und Mehrprogrammbetrieb

■ Statt eine Seite zu ersetzen wird permanent eine Menge freier Seiten gehalten

▲ Problem: Verteilung der Kacheln an mehrere Prozessen ■ Begrenzungen

◆ Auslagerung geschieht im „voraus“

◆ Maximale Seitenmenge: begrenzt durch Anzahl der Kacheln

◆ Effizienter: Ersetzungszeit besteht im Wesentlichen nur aus Einlagerungszeit

◆ Minimale Seitenmenge: abhängig von der Prozessorarchitektur

■ Behalten der Seitenzuordnung auch nach der Auslagerung ◆ Wird die Seite doch noch benutzt bevor sie durch eine andere ersetzt wird, kann sie mit hoher Effizienz wiederverwendet werden.

• Mindestens die Anzahl von Seiten nötig, die theoretisch bei einem Maschinenbefehl benötigt werden (z.B. zwei Seiten für den Befehl, vier Seiten für die adressierten Daten)

◆ Seite wird aus Freiseitepuffer ausgetragen und wieder dem entsprechenden Prozess zugeordnet.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

70

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

71

9 Seitenadressierung und Mehrprogrammbetrieb

9.1 Lokale Ersetzungsstrategien

■ Lokale und globale Ersetzungsstrategie

■ Gleiche Zuordnung ◆ Anzahl der Prozesse bestimmt die Kachelmenge, die ein Prozess bekommt

◆ lokal: Prozess ersetzt nur immer seine eigenen Seiten

■ Größenabhängige Zuordnung

• statische Zuteilung von Seiten pro Prozess

◆ Größe des Programms fließt in die zugeteilte Kachelmenge ein

• Seitenfehler-Verhalten liegt nur in der Verantwortung des Prozesses ◆ global: Prozess ersetzt auch Seiten anderer Prozesse • dynamisches Verhalten der Prozesse berücksichtigbar • bessere Effizienz, da ungenutzte Seiten von anderen Prozessen verwendet werden können

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

72

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

73

J

75

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

9.2 Seitenflattern (Thrashing)

9.3 Deaktivieren von Prozessen

■ Ausgelagerte Seite wird gleich wieder angesprochen

■ Einführung von „Superzuständen“

◆ Prozess verbringt mehr Zeit mit dem Warten auf das Beheben von Seitenfehler als mit der eigentlichen Ausführung

S. blockiert Warten auf Seite Seitenfehler

■ Ursachen ◆ Prozess ist nahe am Seitenminimum

laufend

◆ zu viele Prozesse gleichzeitig im System

deaktivieren

bereit

◆ schlechte Ersetzungsstrategie

bereit aktivieren

★ Lokale Ersetzungsstrategie behebt Thrashing zwischen Prozessen ★ Zuteilung einer genügend großen Zahl von Kacheln behebt Thrashing innerhalb der Prozessseiten

blockiert aktiver Prozess

◆ Begrenzung der Prozessanzahl

deaktivieren

blockiert inaktiver Prozess

◆ inaktiver Prozess benötigt keine Kacheln; Prozess ist vollständig ausgelagert (swapped out) Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

74

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

9.3 Deaktivieren von Prozessen (2)

9.4 Arbeitsmengenmodell

■ Sind zuviele Prozesse aktiv, werden welche deaktiviert

■ Menge der Seiten, die ein Prozess wirklich braucht (Working set)

◆ Kacheln teilen sich auf weniger Prozesse auf

◆ kann nur angenähert werden, da üblicherweise nicht vorhersehbar

◆ Verbindung mit dem Scheduling nötig

■ Annäherung durch Betrachten der letzten ∆ Seiten, die angesprochen wurden

• Verhindern von Aushungerung

◆ geeignete Wahl von ∆

• Erzielen kurzer Reaktionszeiten ◆ guter Kandidat: Prozess mit wenigen Seiten im Hauptspeicher

• zu groß: Überlappung von lokalen Zugriffsmustern zu klein: Arbeitsmenge enthält nicht alle nötigen Seiten

• geringe Latenz bei Wiedereinlagerung bzw. wenige Seitenfehler bei Aktivierung und Demand paging

1

2

3

4

1

2

5

1

2



3 4 5 Referenzfolge

• Hinweis: ∆ > Arbeitsmenge, da Seiten in der Regel mehrfach hintereinander angesprochen werden

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

76

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

77

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

9.4 Arbeitsmengenmodell (2)

9.5 Arbeitsmengenbestimmung mit Zeitgeber

■ Annäherung der Zugriffe durch die Zeit

■ Annäherung der Arbeitsmenge mit

◆ bestimmtes Zeitintervall ist ungefähr proportional zu Anzahl von Speicherzugriffen

◆ Referenzbit ◆ Altersangabe pro Seite (Zeitintervall ohne Benutzung) ◆ Timer-Interrupt (durch Zeitgeber)

▲ Virtuelle Zeit des Prozesses muss gemessen werden ◆ nur die Zeit relevant, in der der Prozess im Zustand laufend ist

■ Algorithmus

◆ Verwaltung virtueller Uhren pro Prozess

◆ durch regelmäßigen Interrupt wird mittels Referenzbit die Altersangabe fortgeschrieben: • ist Referenzbit gesetzt (Seite wurde benutzt) wird das Alter auf Null gesetzt; • ansonsten wird Altersangabe erhöht. • Es werden nur die Seiten des gerade laufenden Prozesses „gealtert“. ◆ Seiten mit Alter > ∆ sind nicht mehr in der Arbeitsmenge des jeweiligen Prozesses

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

78

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

79

9.5 Arbeitsmengenbestimmung mit Zeitgeber (2)

9.6 Arbeitsmengenbestimmung mit WSClock

▲ Ungenau: System ist aber nicht empfindlich auf diese Ungenauigkeit

■ Algorithmus WSClock (Working set clock)

◆ Verringerung der Zeitintervalle: höherer Aufwand, genauere Messung

◆ arbeitet wie Clock ◆ Seite wird nur dann ersetzt, wenn sie nicht zur Arbeitsmenge ihres Prozesses gehört oder der Prozess deaktiviert ist

▲ Ineffizient ◆ große Menge von Seiten zu betrachten

◆ Bei Zurücksetzen des Referenzbits wird die virtuelle Zeit des jeweiligen Prozesses eingetragen, die z.B. im PCB gehalten und fortgeschrieben wird ◆ Bestimmung der Arbeitsmenge erfolgt durch Differenzbildung von virtueller Zeit des Prozesses und Zeitstempel in der Kachel

J

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

80

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

4

PCB

3 5

∆=3

1

2

virtuelle Prozesszeit

4

A 1 3

Referenzbit

6

G 1 4

C 0 4

E 0 0

PCB

3 5

∆=3

virtuelle Prozesszeit

A 0 6 B 1 1

F 1 1

81

■ WSClock Algorithmus

6

G 1 4

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

9.6 Arbeitsmengenbestimmung mit WSClock (2)

■ WSClock Algorithmus 2

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

9.6 Arbeitsmengenbestimmung mit WSClock (2)

1

J

Technische Informatik I

F 1 1

D 0 1

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

C 0 4

E 0 0

Zeitstempel der Kachel

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

B 1 1

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

Referenzbit

J

82

D 0 1

Zeitstempel der Kachel

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

82

9.6 Arbeitsmengenbestimmung mit WSClock (2)

9.6 Arbeitsmengenbestimmung mit WSClock (2)

■ WSClock Algorithmus 1

2 4

■ WSClock Algorithmus PCB

3 6

5

∆=3

1

2

virtuelle Prozesszeit

4

A 0 6 G 1 4

G 1 4

C 0 4

E 0 0 Referenzbit

D 0 1

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

Referenzbit

J

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

82

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

PCB

3 5

∆=3

1

2

virtuelle Prozesszeit

4

A 0 6

Referenzbit

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

82

PCB

3 6

5

∆=3

virtuelle Prozesszeit

A 0 6 B 0 6

G 1 4

C 0 4

E 0 0

J

Technische Informatik I

■ WSClock Algorithmus

6

F 1 1

Zeitstempel der Kachel

9.6 Arbeitsmengenbestimmung mit WSClock (2)

■ WSClock Algorithmus

G 1 4

D 0 1

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

9.6 Arbeitsmengenbestimmung mit WSClock (2)

4

virtuelle Prozesszeit

C 0 4

E 0 0

Zeitstempel der Kachel

2

5

B 0 6

F 1 1

Technische Informatik I

1

6

∆=3

A 0 6 B 1 1

F 1 1

PCB

3

F 1 1

D 0 1

Technische Informatik I Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

C 0 4

E 0 0

Zeitstempel der Kachel

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

B 0 6

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

Referenzbit

J

82

Referenzbit = 0 aber Seite noch in Arbeitsmenge (5–4 < 3)

D 0 1

Zeitstempel der Kachel

Technische Informatik I  1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

J

82

9.6 Arbeitsmengenbestimmung mit WSClock (2)

9.6 Arbeitsmengenbestimmung mit WSClock (2)

■ WSClock Algorithmus 1

2 4

■ WSClock Algorithmus PCB

3 6

5

∆=3

1

2

virtuelle Prozesszeit

4

A 0 6 G 1 4

G 1 4

C 0 4

E 0 0 Referenzbit

D 0 1

 1997-2004, Franz J. Hauck, Verteilte Systeme, Univ. Ulm

Referenzbit

J

[2004s-TI1-J-Mem.fm, 2004-07-29 16.41]

82

Reproduktion oder Verwendung dieser Unterlage bedarf in jedem Fall der Zustimmung des Autors.

virtuelle Prozesszeit

Referenzbit = 0 Seite nicht mehr in Arbeitsmenge (5–1