Betriebssysteme Ausgearbeitet

105
1 Stichworte Notizen Prof. W. Burkard 1 Betriebssysteme am Beispiel Fachhochschule Pforzheim Prof. W. Burkard FB 7, Studiengang Wirtschaftsinformatik Linux 2 Stichworte Notizen Prof. W. Burkard 2 Überblick klassische Betriebssysteme Einführung und Überblick Hardware-Grundlagen Prozessverwaltung Speicherverwaltung Dateisysteme Ein-/Ausgabe Deadlocks Einführung in Linux/Unix Überblick, Installation, System-Grundlagen Dateisystem, die Shell, Task-Management, Linux administrieren, die grafische Oberfläche Linux im Netz: NIS und NFS Praxisteil Java-Threads Threads und Prozesse in Java die Synchronisationsproblematik und ihre Lösungen Interprozesskommunikation

description

 

Transcript of Betriebssysteme Ausgearbeitet

Page 1: Betriebssysteme   Ausgearbeitet

1

Stichworte

Notizen

Prof. W. Burkard 1

Betriebssystemeam Beispiel

Fachhochschule PforzheimProf. W. Burkard

FB 7, Studiengang Wirtschaftsinformatik

Linux

2

Stichworte

Notizen

Prof. W. Burkard 2

Überblick

● klassische Betriebssysteme■ Einführung und Überblick■ Hardware-Grundlagen■ Prozessverwaltung ■ Speicherverwaltung■ Dateisysteme■ Ein-/Ausgabe■ Deadlocks

● Einführung in Linux/Unix■ Überblick, Installation, System-Grundlagen■ Dateisystem, die Shell, Task-Management, ■ Linux administrieren, die grafische Oberfläche■ Linux im Netz: NIS und NFS

● Praxisteil Java-Threads■ Threads und Prozesse in Java■ die Synchronisationsproblematik und ihre Lösungen■ Interprozesskommunikation

finmar01
Hervorheben
finmar01
Überarbeitet
finmar01
Überprüft
finmar01
Nicht genehmigt
finmar01
Genehmigt
Marcus
Schreibmaschinentext
Marcus
Schreibmaschinentext
Page 2: Betriebssysteme   Ausgearbeitet

3

Stichworte

Notizen

Prof. W. Burkard 3

Organisation der Vorlesung

Teilnehmer■ Betriebswirte SG Wirtschaftinformatik ■ Bachelor of Information Systems■ Ingenieure der Elektrotechnik Diplom/Bachelor

Pflichtprogramm für alle Ingenieure

Pflichtteil Betriebswirte

Woch

e 1W

oche 2

Woch

e 4

Woch

e 3

Woch

e 5

Woch

e 7

Woch

e 6

Woch

e 8W

oche 9

Woch

e 10W

oche 11

Woch

e 13

Woch

e 12

Woch

e 14

Betriebssysteme Theorie (7) Linux / Unix-Teil (4)Thread-

Programming (3)

für Betriebswirte keine Pflicht

4

Stichworte

Notizen

Prof. W. Burkard 4

Literatur

[Tannen95] Andrew S. Tannenbaum, Moderne Betriebssysteme , Hanser-Verlag München/Wien 1995

[Oechsle01] Rainer Oechsle, Parallele Programmierung mit Java Threads, Hanser-Verlag München/Wien 2001

[Nehmer01] Jürgen Nehmer und Peter Sturm, Systemsoftware (Grundlagen moderner Betriebssysteme), dpunkt-Verlag, Heidelberg 2001

[Kredel02] H. Kredel & A. Yoshida, Thread- und Netzwerkprogrammierung mit Java,dpunkt-Verlag, Heidelberg 2002

[Brause98] Rüdiger Brause, Betriebssysteme, Springer-Verlag, Berlin 1998[Siegert98] H.J.Siegert, Betriebssysteme eine Einf., Oldenbourg-V. München 1998[Steen95] Maarten van Steen, Computer and Network Organization ,

Prentice-Hall, München 1995[Stucky97] Wolffried Stucky, Der Rechner als System,

Teubner-Verlag, Stuttgart 1997

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 3: Betriebssysteme   Ausgearbeitet

5

Stichworte

Notizen

Prof. W. Burkard 5

Aufgaben der Betriebssysteme

Definition:

Das Betriebssystem steuert und verwaltet die vorhandenen Betriebsmittel eines Rechnersund stellt den Anwendern und den Anwendungsprogrammen Schnittstellen zur Verfügung,die den möglichst einfachen und damit effiziente Umgang mit den Ressourcen ermöglichen.

Aufgaben:

• Verwalten vorhandener Ressourcen: •Prozessoren, •Speicher, •Peripherie-Geräte, •Prozesse

• Anbieten abstrakter Schnittstellen zu den Betriebsmitteln• Steuern und Überwachen der Anwendungs-Software• Realisieren von Kommunikationswegen zwischen den

einzelnen Ressourcen des Systems,den Anwendungsprogrammen und dem Menschen

6

Stichworte

Notizen

Prof. W. Burkard 6

Geschichte der Betriebssysteme

Generation 1: Generation2:

Rechner ohne Betriebssystem, keine Idee des Stapelbetriebes mit getrenntenUnterscheidung der Anwender in Systemen für Eingabe, Verarbeitung, Ausgabe. Entwickler,Operateur, Programmierer Der teuere Rechner wurde besser ausgenutzt, und Nutzer. ( bis Mitte der 50er) durch Verringern der Stillstandszeiten.

finmar01
Schreibmaschinentext
finmar01
Rechteck
finmar01
Rechteck
finmar01
Durchstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Textfeld
Ein Betriebssystem ist die Software, die die Verwendung (den Betrieb) eines Computers ermöglicht. Es verwaltet Betriebsmittel wie Speicher, Ein- und Ausgabegeräte und steuert die Ausführung von Programmen.
Page 4: Betriebssysteme   Ausgearbeitet

7

Stichworte

Notizen

Prof. W. Burkard 7

Mehrprogrammbetrieb● Mehrere Jobs werden im Hauptspeicher gehalten.● Wenn ein Job auf das Ende einer I/O-Operation wartet, wird die CPU einem anderen

Job zugeteilt.● d.h. es können zu einem bestimmten Zeitpunkt mehrere Jobs “in Arbeit” sein.● ABER: Nur ein in “Warteposition” gehender Job gibt die CPU frei

==> non-preemptive-scheduling● Job-Spooling (Simultaneous Peripheral Operation On Line) =

Zwischenlagerung der ankommenden Jobs auf Magnetplatte, so dass beimFreiwerden einer Partition ein neuer Job sofort nachgeladen werden konnte

● Speicherpartitionierung = Aufteilung des Hauptspeichers in separate Teile, in dieje ein Job geladen werden kann

Synonyme Begriffe: Job = Task = Prozeß (aber nur bedingt = Thread )

Speicherbereich für das Betriebssystem

Speicher-partiton 1

“Job 1”

Speicher-partiton 2

“Job 2”...

Speicher-partiton 3

“Job 3”

Speicher-partiton n

“Job n”

8

Stichworte

Notizen

Prof. W. Burkard 8

Timesharing

= Variante des Mehrprogrammbetriebes● Bisheriges Problem: zu lange Antwortzeiten verhinderten interaktives Arbeiten● Lösung: Betriebssystem weist die CPU den Jobs explizit zu und “entreist” sie

ihnen wieder, auch unabhängig von deren Bearbeitungsstand !!● d.h. das BS stellt sicher, dass die aktiven Jobs innerhalb einer gewissen

Zeitspanne immer wieder auf der CPU ein Stück weiterlaufen.● ==> preemptive-scheduling

Forderungen an einen guten Scheduling-Algorithmus:● Fairness: Jeder Job erhält gerechten Anteil an CPU-Zeit● Effizienz: CPU ist immer voll ausgelastet● Antwortzeit: Ist für interaktive Nutzer minimal● Verweilzeit: Stapeljobs bleiben möglichst kurz im System● Durchsatz: Möglichst viele Aufträge je Zeiteinheit

!! Widersprüchliche Ziele!!� �������� �� �� � �� � � �� �� � �

finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Rechteck
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Beschriftung
nur ein Job gibt CPU frei, und zwar der der gerade dran war
finmar01
Beschriftung
das BS weist explizit die Jobs zu
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Textfeld
Time-Sharing war der erste konzeptionelle Ansatz in der Computertechnologie mehrere Benutzer an einem Computer quasi gleichzeitig arbeiten zu lassen, in dem sie sich die Rechenzeit des einzigen vorhandenen Prozessors teilten. Jedem einzelnen Benutzer erschien es dabei so, als hätte er die gesamten Ressourcen des Computer stets für sich allein zur Verfügung. Heutzutage wird der Begriff Time-Sharing, wenn er überhaupt noch verwendet wird, häufig irrtümlich mit dem Multitasking gleichgesetzt. Auch wenn beide Konzepte das quasi parallele Arbeiten an einem Prozessor betreffen, so beruht
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 5: Betriebssysteme   Ausgearbeitet

9

Stichworte

Notizen

Prof. W. Burkard 9

vernetzte Rechner

neue Herausforderungen: Betriebssysteme mehrerer Rechner müssen miteinander kommunizierenRessourcenverteilung über Rechnergrenzen hinwegEntstehung von Arbeitsteilung und Spezialisierung im Verbund (=>Client/Server)

Netzwerkbetriebssystem:Jeder Rechner im Netz hat sein eigenes Betriebssystem. Die Benutzer sind sich der Netzstruktur bewußt und greifen explizit auf nicht-lokale Ressourcen zu.

verteilte Betriebssysteme:Das gesamte Netz erscheint dem Anwender gegenüber wie ein einziger Rechner. Auf welchem Rechner ein Prozeß läuft und/oder wo eine Datei real gespeichert wird, ist dem Anwender nicht bekannt. Der Zugriff auf die verteilten Ressourcen erfolgt automatisch, möglichst effizient und bleibt dem Anwender verborgen.

10

Stichworte

Notizen

Prof. W. Burkard 10

Betriebssystem? Was ist das eigentlich?

SAP/R3 MS-Office Browser ...

Compiler Editoren M M S

B E T R I E B S S Y S T E M

Maschinensprache

Mikroprogramme

physikalisches Gerät

Anwendungsprogramme

Systemprogramme

Hardware

MMS = Mensch-Maschine-Schnittstelle, in der RegelKommandointerpreter bzw. grafische Benutzeroberfläche

finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
GUI
finmar01
Linien
finmar01
Beschriftung
Schnittstelle
finmar01
Schreibmaschinentext
Schnittstelle zw. Anwendungsprogrammen und Hardware
Page 6: Betriebssysteme   Ausgearbeitet

11

Stichworte

Notizen

Prof. W. Burkard 11

Softwarestrukturen in einem Rechner

MMS = Mensch-Maschine-Schnittstelle, in der RegelKommandointerpreter bzw. grafische Benutzeroberfläche

12

Stichworte

Notizen

Prof. W. Burkard 12

Wozu brauchen wir ein BS?

Es bietet...... den Anwendungen einen komfortablen Zugriff zu den Hardwareressourcen eines

Rechners... somit wichtige Brückenfunktion zwischen Anwendung und Rechnerhardware... Koordination von unabhängigen Anwendungen, so dass sie sich bei Mehrbenutzer-

bzw. Mehrprogrammbetrieb beim Ressourcenzugriff nicht in die Quere kommen.

Was aber heißt „komfortabler Zugriff“ ?

Beispiel: Eine Anwendung will Daten persistent auf externem Medium speichern. Dafür gibt’s mehrere Alternativen:

● Direktes Abspeichern von Blöcken auf einer Festplatte● Benutzung eines Dateisystems, das seinerseits eine Festplatte bzw. Blöcke nutzt● Benutzung eines Datenbank-Systems, das auf einem Dateisystem aufsetzt, das ...● Verwendung persistenter Objekte in einer OO-Programmierumgebung, die eine

Datenbank als Unterstützung voraussetzt, die auf einem Dateisystem fußt, das ...

I

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Textfeld
Java: Klasse = Bauplan
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Linien
finmar01
Kreis
finmar01
Schreibmaschinentext
Daten sind persistent, wenn sie die Lebensdauer in der Applikation, in der sie entstanden sind, überleben.
finmar01
Schreibmaschinentext
-Klasse ist ein Plan, es beschreibt wie ein Objekt auszusehen hat
finmar01
Bleistift
finmar01
Textfeld
objektorientierte Programmierung
Page 7: Betriebssysteme   Ausgearbeitet

13

Stichworte

Notizen

Prof. W. Burkard 13

Wozu brauchen wir ein BS?

Das Beispiel zeigt:● Es wird immer ein Gerät benutzt (Festplatte)● Es gibt mehrere unterschiedliche Abstraktionsebenen● Welche Abstraktionsebene gewählt wird ist sehr stark von der Anwendung abhängig● Wie lassen sich die Dienste einer Abstraktionsebene nutzen ?● � es gibt ein Laufzeitpaket, d.h. einer Anwendung wird eine Menge von Funktionen

zur Verfügung gestellt, die den Zugang zu den gebotenen Diensten ermöglicht. (Application Programming Interface API )

● Die gebotenen Dienste können vom BS selbst oder aber von anderen Serviceleistern erbracht werden (dann aber ist das BS nur als Vermittler tätig)

● Die Dienste des Betriebsystems werden also durch einen „ganz normalen“Prozeduraufruf angefordert.

● Dieser „ganz normale“ Prozeduraufruf wird system call (Systemaufruf) genannt und mündet in aller Regel in einem TRAP (Einsprung in den Betriebssystemkern)

II

14

Stichworte

Notizen

Prof. W. Burkard 14

Wozu brauchen wir ein BS?

Der direkte Umgang der Anwendungsprogramme mit der Hardware ist aus mehreren Gründen problematisch:

● Schnittstellen zu Geräte-Controllern sind heute zwar weitgehend genormt, aber dennoch unhandlich.

● Koordination von Prozessor und anderen Komponenten mit den hardwareseitig verfügbaren Hilfsmitteln (Interruptmechanismen, Zyklisches Abfragen (Polling) ) führt zu schwer durchschaubaren Progammstrukturen, die wir auf Anwendungsebene nicht haben wollen.

● Direkter Hardwarezugriff bedeutet in Mehrbenutzerbetrieb schwerwiegende Schutzprobleme durch unvermeidbare Benutzung privilegierter Instruktionen

● Ohne unterstützende Software ist die Abwicklung unabhängiger Benutzeraktivitäten in einem Multiuserbetrieb undenkbar, Koordinationsaufwand zu komplex.

� Anwender wünschen sich indirekten Zugang zur Hardware über eine Dienstschicht, die quasi eine virtuelle Maschine darstellt und komfortabel benutzbar ist.

III

finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
Schnittstelle einer Anwendung zu einem Dienst der Abstraktionsebene
finmar01
Beschriftung
Eine Programmierschnittstelle ist eine Schnittstelle, die von einem Softwaresystem anderen Programmen zur Anbindung an das System zur Verfügung gestellt wird. Oft wird dafür die Abkürzung API (für engl. application programming interface, deutsch: „Schnittstelle zur Anwendungsprogrammierung“) verwendet. Im Gegensatz zu einer Binärschnittstelle (ABI) definiert eine API nur die Verwendung der Schnittstellen auf Quelltextebene. Neben dem Zugriff auf Datenbanken, die Hardware wie Festplatte oder Grafikkarte kann eine API auch das Erstellen von Komponenten der grafischen Benutzeroberfläche ermöglichen oder vereinfachen. Heutzutage stellen auch viele Internetdienste APIs zur Verfügung (für Beispiele siehe die Weblinks). Im weiteren Sinne wird die Schnittstelle jeder Bibliothek (Library) als API bezeichnet.
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Beschriftung
TRAP (Falltür) = entladen des Prozesses aus dem Speicher und Ergebnisse des system calls verschicken an das BS
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
Ein Systemaufruf, auch Systemcall (von engl. system call) oder kurz Syscall, ist in der Computertechnik eine Methode, um von einem Benutzer-Prozess aus Aufgaben im Systemkontext ausführen zu lassen.
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Kreis
finmar01
Kreis
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 8: Betriebssysteme   Ausgearbeitet

15

Stichworte

Notizen

Prof. W. Burkard 15

Grundlagen: Systemaufrufe

● Anwendungsprogramme kommunizieren mit dem Betriebssystem indem sie Systemaufrufe tätigen. ==> Aufruf von Systemfunktionen

● Anwendungsentwicklungssysteme müssen alle Systemaufrufe in Bibliotheken vorrätig halten.

● Die Bibliotheksfunktionen rufen durch sogenannte TRAPs das Betriebssystem

Beispiel: Lesen von Datei ● im Programmcode stehe:

anzahl = read(Dateiname,Zielspeicherplatz-im-Hauptspeicher, Anzahl-zu-lesender-Bytes)

● Bibliotheksfunktion read prüft die Parameter und startet dann das BS mit den angegebenen Parametern durch einen TRAP

● Betriebssystem suspendiert den laufenden Prozeß und erledigt die geforderte Aufgabe. Dann schreibt es die Anzahl der gelesenen Bytes in die entsprechende Prozeßvariable und schaltet den Prozeß wieder “rechenbereit”.

● Prozeß läuft bei der Bibliotheksfunktion wieder weiter.● Bibliotheksfunktion liefert der rufenden Funktion die Anzahl gelesener Bytes

16

Stichworte

Notizen

Prof. W. Burkard 16

System callsProblem:● Wie verhindert man, dass bei Verschiebungen des BS im Speicher die Anwendungen neu

kompiliert werden müssen, um die Systemprozeduren korrekt anzusprechen ?

Lösung:● Speichern aller Aufrufparameter auf dem Stack und Auslösen eines speziellen

Hardwaresignals (sogenannter Softwareinterrupt) ● Wie bei einem „normalen“ Hardware-Interrupt speichert der Prozessor seinen aktuellen

Stand, springt in die Interruptbehandlung und erledigt den geforderten Job, um dann an die Stelle des Abbruches zurückzukehren.

● Die Interruptbehandlungsroutine ist somit der zentrale Einsprungpunkt in den BS-Kern

● Da nach einem Systemaufruf die nächste Instruktion nicht gleich ausgeführt wird, sondern die Befehlsausführung am BS-Einsprung plötzlich „aufhört“, wird der Softwareinterrupt auch als Falltür (trap door, kurz TRAP) bezeichnet

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Kreis
finmar01
Kreis
finmar01
Beschriftung
Programmcounter Register in CPU
finmar01
Beschriftung
Prozessor Status
finmar01
Schreibmaschinentext
Stack = Stapel (Aufgabenliste) BS = Betriebssystem Interrupt = Unterbrechung
finmar01
Schreibmaschinentext
java.lang -> automatisch geladene Bib (enthält READ, OUT, etc.)
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Bleistift
finmar01
Hervorheben
finmar01
Beschriftung
fällt in Falltür
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Schreibmaschinentext
-mitten im Programm "system call" -der Zustand wird gespeichert (stack) und zu einem späteren Zeitpunkt genauso wieder hergestellt -die Anwendung bekommt davon nichts mit
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 9: Betriebssysteme   Ausgearbeitet

17

Stichworte

Notizen

Prof. W. Burkard 17

Architekturbeispiel Linux / Unix

MMS = Mensch-Maschine-Schnittstelle, in der RegelKommandointerpreter bzw. grafische Benutzeroberfläche

18

Stichworte

Notizen

Prof. W. Burkard 18

Architekturbeispiel Mach

MMS = Mensch-Maschine-Schnittstelle, in der RegelKommandointerpreter bzw. grafische Benutzeroberfläche

finmar01
Durchstreichen
finmar01
Beschriftung
Anwender
finmar01
Beschriftung
Experten
finmar01
Schreibmaschinentext
-kritische Anweisung=>sperren von Interrupts -user mode können keine kritischen Programme schreiben; verschiedene Level gibt es im Prozessoren- user-mode nur oberflächlich -kernel mode nur für kurze Abschnitte des Betriebssystem
finmar01
Beschriftung
alles außer kritische Dinge
finmar01
Beschriftung
alles möglich
finmar01
Unterstreichen
Page 10: Betriebssysteme   Ausgearbeitet

19

Stichworte

Notizen

Prof. W. Burkard 19

Schichtung und Systemaufrufe bei W2K

MMS = Mensch-Maschine-Schnittstelle, in der RegelKommandointerpreter bzw. grafische Benutzeroberfläche

20

Stichworte

Notizen

Prof. W. Burkard 20

Ein- und Mehrprozessorsysteme

Massen-speicher

Prozessor

BS- Anw. 1 Anw. 2 ... Anw. nKern

Simples Einprozessorsystem

Im einfachsten klassischen Fall gibt es nur einen Prozessor, derHauptspeicher und Massenspeicher benutzt, um das Betriebssystem (BS) und die Anwendungsprogramme auszuführen

Bei der Rechnerarchitektur, für die ein Betriebssystem Ressourcen verwalten soll, müssen grundsätzliche Konfigurationen unterschieden werden

I

MMS = Mensch-Maschine-Schnittstelle, in der RegelKommandointerpreter bzw. grafische Benutzeroberfläche

finmar01
Schreibmaschinentext
kernel mode verlagert Dienste in den user mode, dadurch sichert es die stabilität des kernel mode
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
von Neumann-Architektur
finmar01
Beschriftung
Anwendungsprogramme
finmar01
Beschriftung
Betriebssystem
Page 11: Betriebssysteme   Ausgearbeitet

21

Stichworte

Notizen

Prof. W. Burkard 21

Ein- und Mehrprozessorsysteme

Massen-speicher

Prozessor 1

BS- Anw. 1 Anw. 2 ... Anw. nKern

Multiprozessorsystem (enge Kopplung)

• Einprozessorsysteme können mit mehreren Prozessoren aufgerüstet werden

• Durch unterschiedliche Kopplungskonzepte entstehen unterschiedliche Architekturen

• Die einfachste Architektur sieht nur eine Vervielfachung der CPU vor, alle CPUs hängen dann

parallel an einem Verbindungsnetzwerk (Multi-Master-Systembus)

• Der Systembus verbindet die Prozessoren auf der einen Seite mit den Speichermodulen auf der

anderen Seite.

• Bei intensiver Nutzung wird der Bus zum Flaschenhals � Leistungseinbußen

II

Massen-speicher

Multi-Master-Systembus

Prozessor 2 Prozessor n...

MMS = Mensch-Maschine-Schnittstelle, in der RegelKommandointerpreter bzw. grafische Benutzeroberfläche

22

Stichworte

Notizen

Prof. W. Burkard 22

Ein- und Mehrprozessorsysteme

Massen-speicher

Prozessor 1

Multiprozessorsystem (lose Kopplung)

Interessante Beobachtung bei Mehrprozessorsystemen:

Oft spricht jeder Prozessor nur einen eng umgrenzten Speicherbereich an

( in dem sich die von ihm gerade abgearbeitete Anwendung befindet )

Daher die Idee: Aufteilen des Speichers und enger an den Prozessor binden

III

Massen-speicher

Multi-Master-Systembus

Prozessor 2 Prozessor n...

BS- Anw. 1 Kern

BS- Anw. n Kern

BS- Anw. 2 Kern

MMS = Mensch-Maschine-Schnittstelle, in der RegelKommandointerpreter bzw. grafische Benutzeroberfläche

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
immer nur verdopplung
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Schreibmaschinentext
bearbeiten zusammen anwendungen hintereinander
finmar01
Schreibmaschinentext
bearbeiten getrennt voneinander anwendungen parallel
finmar01
Beschriftung
durch dieses Design tauchen andere Probleme auf
finmar01
Schreibmaschinentext
-> symmetrisches Multiprozessing => prinzipiell verteilen sich die Prozesse auf mehrere CPU´s
finmar01
Schreibmaschinentext
Probleme: CPU1 lagert im Cache und CPU2 soll mit Werten aus CPU1 weiterrechnen -> hat die aber noch nicht! CPU->Cache->Bus-RAM
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Textfeld
seriell
finmar01
Textfeld
parallel
finmar01
Hervorheben
finmar01
Hervorheben
Page 12: Betriebssysteme   Ausgearbeitet

23

Stichworte

Notizen

Prof. W. Burkard 23

Ein- und Mehrprozessorsysteme

Rechnernetz / Cluster

Was geschieht, wenn man jedem Prozessor ein eigenes Betriebssystem gibt?

Vollkommen unabhängige Rechner mit jeweils eigenem (eventuell unterschiedlichem)

Betriebssystem werden lose über ein Netzwerk gekoppelt

Cluster = sehr schnelles Netzwerk räumlich dicht beieinander stehender Rechner

IV

Massen-speicher

Prozessor 1

BS- Anw. Kern

Verbindungsnetzwerk LAN, WAN ...

Massen-speicher

Prozessor 2

BS- Anw. Kern

...

MMS = Mensch-Maschine-Schnittstelle, in der RegelKommandointerpreter bzw. grafische Benutzeroberfläche

24

Stichworte

Notizen

Prof. W. Burkard 24

Grundlagen: Prozesse

MERKE: Prozesse sind das wesentliche Konzept aller Betriebssysteme

Ein Prozeß ist ein in Ausführung befindliches Programm!

Er umfaßt:● den ausführbaren Programmcode● die Programmdaten (Variablen und

Konstanten des Programmes)● den Programmzähler (zeigt auf die

aktuell zu bearbeitende Anweisung)● Stack und Stackpointer ( Zwischenpuffer

für beim Programmlauf anfallende Daten)● alle weiteren Informationen, die das

Betriebssystem zur Ausführung des Programmes benötigt

Prozeßtabelle=Tabelle des Betriebssystems, in der alle Infos eines jeden Prozesses gespeichert sind

Threads („Handlungsfäden“) = leichtgewichtige Prozesse innerhalb von Prozessen, vom Anwendungsprogrammierer definiert!

Prozeß

Daten (Heap)

Programmcode

Stapel (Stack)

CPU-RegisterProzeß

-Kontext

Datei-Info, Zugriffsrechte

MMU-Register

Kernel-Stack

finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
-lose gekoppelte-parallel-Architektur =1000 Rechner über Hochleistungsnetz mit einander verbunden -viele einzelne Rechner = Cluster -nicht mit Bus sondern über LAN verbunden
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Textfeld
Klausuraufgabe: Unterschied zw. Algorithmus(1), Programm(2), Prozess(3) zu 1) - löst ein theoretisches Problem durch eine endliche und in ihrer Reihenfolge definierte Sequenz einzelner Schritte - Beschreibung einer Problemlösung - deterministisch (selbe Eingabe=selbe Lösung) zu 2) - praktische Möglichkeit (PRAXIS) - enthält Algorithmen (ausführbar) zu 3) - in Ausführung befindliches Programm - löst das Programm
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
Page 13: Betriebssysteme   Ausgearbeitet

25

Stichworte

Notizen

Prof. W. Burkard 25

Prozesse leben und sterben...

Das Betriebssystem erzeugt, verwaltet und eliminiert Prozesse.

Ein Prozeß kann andere Prozesse erzeugen ==> Prozeßbaumgängige Systemaufrufe (System-Calls):

■ “erzeuge Kindprozeß B“■ “lösche mich”■ “Ich warte auf Ende meines Kindprozesses E”■ “Ersetze im Prozeß F den Programmcode durch Code yyy”■ “ich brauche mehr Speicher”

Prozesse können miteinander und mit dem BS “reden” ==> Interprozeßkommunikation

Prozesse in Timesharing-Systemen haben einen Besitzer ==> Sicherheitsproblemuid = user identification gid = group identification

Prozeß A

Prozeß B Prozeß C

Prozeß D Prozeß E Prozeß F

26

Stichworte

Notizen

Prof. W. Burkard 26

Grundlagen: Dateien

● Zur Erinnerung: Das BS verbirgt die Physik einer Festplatte (Zylinder,Spuren...) und schafft dem Anwender eine einfache Schnittstelle: Dateien

● Das Konzept der Dateien und Dateiverzeichnisse

Wurzelverzeichnis (root directory)

BenutzerSystemPogramme

SAP/R3MS-Office UteKarlAnna

Studienangelegenh.DAUrlaub

finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Kreis
finmar01
Linien
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
- erster Prozess entsteht beim booten - BS übernimmt
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Schreibmaschinentext
erstes Dienst(Prozess) unter Windows -> Explorer = Kommandointerpreter
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
Programme werden zwangsweise daran gehindert, versehentlich oder absichtlich auf den Speicherbereich anderer Programme zuzugreifen oder das Betriebssystem anders als durch standardisierte „Eingänge“ zu benutzen. Hardwareseitige Voraussetzung ist eine Speicherverwaltungseinheit (MMU), die Speicherschutz unterstützt.
Page 14: Betriebssysteme   Ausgearbeitet

27

Stichworte

Notizen

Prof. W. Burkard 27

Handhabung von Dateien

● Vor dem Lesen oder Schreiben muß man eine Datei öffnen==> Zugriffsrechte regeln den Zugriff

● Idee: Eine Datei sei ein Ding, in welches man hineinschreiben oder aus dem man lesen kann ==> dann sind viele Geräte auch “Dateien” !!!

Also:● normale Datei: blockorientierte Byteansammlung auf der Festplatte/Diskette● spezielle Form: zeichenorientierte „Dateien“, z.B. Tastatur, Bildschirm, Drucker● Pipe, eine „Datei“ für die Interprozesskommunikation

A B

Zwei Prozesse, die durch zwei Pipes verbunden sind. Eine Pipeist unidirektional, man kann sie nur lesen ODER schreiben!

28

Stichworte

Notizen

Prof. W. Burkard 28

Grundlagen:

Kommandointerpreter

● Das Betriebssystem ist also das Programm, das alle Systemaufrufe ausführt.

● Der Kommandointerpreter ist das Programm, das dem Anwender einen Zugang zum Betriebssystem verschafft, wenn keine Anwendung da ist, die das tun könnte !!!

● textuelle Kommandointerpreter (z.B. DOS: Command.com)stellen eine einfache Sprache zur Verfügung, um Systemaufrufe sinnvoll zu nutzen. Beispiel: DIR DEL COPY

● grafische Benutzeroberflächen: (grafische Interpreter)stellen eine erweiterte MMS (Mensch-Maschine-Schnittstelle) zur Verfügung:Der Computer ist für den Anwender das, was die MMS ihm zeigt.

● Alternativ-Begriff: shell

finmar01
Unterstreichen
finmar01
Schreibmaschinentext
Explorer = Kommandointerpreter in Windows
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
Peripherie
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Linien
finmar01
Textfeld
aus Tastatur wir gelesen wie in einer Datei / in Drucker schreibt man wie in eine Datei
finmar01
Beschriftung
Art Zwischenablage / virtuelle Verbindung zw. Prozessen
finmar01
Textfeld
Pipe wird von Prozess erstellt und autom. von Windows beendet
finmar01
Hervorheben
finmar01
Beschriftung
nur eine Richtung
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
cmd
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Textfeld
Kommandointerpreter = Notprogramm
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2007 For Evaluation Only.
Page 15: Betriebssysteme   Ausgearbeitet

29

Stichworte

Notizen

Prof. W. Burkard 29

“Ummantelung” des Systems durch Kommandointerpreter

...Treiber A Treiber B Treiber C Treiber n

...Gerät A Gerät B Gerät C Gerät n

shell-Kommandos Dienstprogramme Anwendungen

Betriebssystemkern mit allen Systemfunktionen

grafische oder textuelle Shell(z.B. Windows-Oberfläche bzw.

command.com)

30

Stichworte

Notizen

Prof. W. Burkard 30

Monolithische Betriebsystemstrukturen

Das Betriebssystem ist EIN Programm, eine unstrukturierte Ansammlung von Systemfunktionen, die sich auch gegenseitige uneingeschränkt nutzen können.

Es unterscheidet lediglich User- und Kernel-Modus:

finmar01
Unterstreichen
finmar01
Textfeld
original Interpreter (shell) kann ersetzt werden (in config.sys): durch anderes Programm -> gesamtes System dann aber nur noch so mächtig wie dieses Programm!
finmar01
Unterstreichen
finmar01
Kreis
finmar01
Bleistift
finmar01
Kreis
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Rechteck
finmar01
Bleistift
finmar01
Hervorheben
finmar01
Textfeld
Als monolithischen Kernel bezeichnet man einen Betriebssystemkern, in dem nicht nur Funktionen zu Speicher- und Prozessverwaltung und zur Kommunikation zwischen den Prozessen, sondern auch Treiber für die Hardwarekomponenten und möglicherweise weitere Funktionen direkt eingebaut sind.
Page 16: Betriebssysteme   Ausgearbeitet

31

Stichworte

Notizen

Prof. W. Burkard 31

Virtuelle Maschinen

Idee: Bau eines leistungsfähigen Multiuser-Multitasking-Systems durch Verwendung vorhandener, einfacher Betriebssysteme, denen ein “Verteiler” untergeschoben wird. (Beispiel PC/MOS386)

DOS DOS DOS

virtuelle MS-DOS-PCs

PC-MOS386-Betriebssystem

die “nackte” Hardware des PC

modifiziertes MSDOS-BIOS

hier: Systemaufruf

hier: TRAP (unter DOS sind dies SW-Interrupts)

hier: Ein- /Ausgabe-operation

hier: TRAP ins MOS

32

Stichworte

Notizen

Prof. W. Burkard 32

Client-Server-Architekturin einem Rechner:

BS-Kern bzw. Netzwerk sichern die Kommunikation zwischen C+Sin einem Netz:

BetriebssystemkernKernmodus

... BenutzermodusClient-Prozeß

Client-Prozeß

Client-Prozeß

Server-Prozeß

Server-Prozeß

KlientKern

Rechner 1

Netzwerk

KlientKern

Rechner 2

KlientKern

Rechner 3

KlientKern

Rechner n

Nachricht vom Client zum Server

...

finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Schreibmaschinentext
Vgl. VPN = virtuelles privates Netzwerk in einem öffentlichen reellen Netz
finmar01
Beschriftung
natives BS
finmar01
Schreibmaschinentext
Eine IP-Adresse identifiziert einen Rechner. Eine Port-Nr. identifiziert eine Anwendung. -> Schlussendlich kommunizieren die Anwendungen, nicht die Rechner!
finmar01
Bleistift
finmar01
Bleistift
finmar01
Unterstreichen
finmar01
Schreibmaschinentext
Eindeutige Identifizierung durch IP+PORT = SOCKET-NUMBER
finmar01
Rechteck
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 17: Betriebssysteme   Ausgearbeitet

33

Stichworte

Notizen

Prof. W. Burkard 33

Alles klar ??1. Nennen Sie die Aufgaben von Betriebssystemen

2. Erläutern Sie den Unterschied zwischen preemptive und non-preemptive scheduling

3. Warum wird Spooling heute insbesondere bei der Ausgabe auf Drucker verwendet?

4. Worin liegt der Vorteil, wenn die Shell nicht Teil des Betriebssystems ist?5. Warum macht das in verteilten Systemen beliebte Client/Server-Modell auch in

Einzelplatzrechnern Sinn ?

6. Warum benötigt ein PC mit nur einem Prozeß keine Prozeßtabelle?

7. welche der nachstehenden Aktionen sollten nur im Kern und niemals im Benutzermodus laufen?- Sperren aller Unterbrechungsleitungen- Lesen der Tageszeit- Setzen der Tageszeit

finmar01
Abgelehnt
finmar01
Schreibmaschinentext
NEIN! Dann zurück zu Seite 1!
finmar01
Hervorheben
finmar01
Schreibmaschinentext
zu 1) Prozesse aufrufen, beenden, speichern und koordinieren. Komfortabler Zugriff auf Hardware-Ressourcen. Schafft Kommunikationswege zw. den einzelnen Ressourcen des Systems, den Anwendungsprogrammen und dem Menschen. Steuern und überwachen von Software. zu 2) non-preemtive = laufender Prozess gibt CPU frei preemptive = das BS gibt frei zu 3) Druckaufträge werden im "Stack" gespeichert und dann nacheinander gedruckt,d.h. Drucker gibt frei zu 4) Wenn BS abstürzt kann man durch shell neustarten. zu 5) Weil beim Einzelplatzrechner das BS somit die Kommunikation zw. Clientprozessen und Server- prozessen sichert. zu 6) Da es nur einen Prozess gibt, ist die Tabelle nicht nötig, da er nicht switchen muss. zu 7) kernel modus -Sperren aller Unterbrechungsleitungen (niemals dürfen Interuppts gesperrt werden) -Setzen der Tagesezeit (niemals dürfen Prozesse Zeiten ändern) user mode -Lesen der Tageszeit
Page 18: Betriebssysteme   Ausgearbeitet

34

Stichworte

Notizen

Prof. W. Burkard 34

Hardware-Grundlagen

• fast alle heutigen Rechner basieren auf einem 1944 von Eckert, Mauchly und von Neumann entwickelten Architekturprinzip.

• Demnach besteht ein Computer aus einem Prozessor, einem Speicher und ein oder mehreren Ein-/Ausgabe-Geräten

• Die einzelnen Systemkomponenten sind über insgesamt drei Busse miteinander verknüpft

• Der Adressbus adressiert einzelne Datenzellen eines Speicherbausteins oder E/A-Gerätes (Breite je nach System 16,32,64 Bit (= Signalleitungen), dadurch Festlegung des adressierbaren physikalischen Speichers)

• Steuerbus regelt die Lese- und Schreiboperationen zwischen Prozessor und Speicher bzw. IO, nennt also z.B. die Flussrichtung der Daten

• Der Datenbus dient der eigentlichen Informationsübertragung der Bits zwischen Prozessor und Speicher / IO

35

Stichworte

Notizen

Prof. W. Burkard 35

Die CPU in der von-Neumann-Architektur

finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
ein Bus verbindet mindestens 2 (oder mehrere) Stationen miteinander
finmar01
Bleistift
finmar01
Textfeld
uni- direkt- ional
finmar01
Beschriftung
bidirektional/8 Leitungen
finmar01
Schreibmaschinentext
paralleler Bus hat mehrere Leitungen
finmar01
Bleistift
finmar01
Unterstreichen
finmar01
Beschriftung
ALU = arithmetic logic unit
finmar01
Textfeld
Eine arithmetisch-logische Einheit (englisch arithmetic logic unit, daher oft abgekürzt ALU) ist ein elektronisches Rechenwerk, welches in Prozessoren zum Einsatz kommt.
finmar01
Beschriftung
Das Steuerwerk (englisch Control Unit, kurz CU) ist der Kern des Mikroprozessors. Im Steuerwerk befinden sich Befehlsregister und Befehlsdecoder. Seine Aufgabe ist die Abarbeitung des Programms, d.h. Befehl für Befehl eines Programmes werden durch das Steuerwerk des Mikroprozessors ausgeführt.
finmar01
Bleistift
finmar01
Schreibmaschinentext
Taschenrechner != CPU, da kein Steuerwerk
finmar01
Schreibmaschinentext
Steuerwerk interpretiert Befehlsregister und inkrementiert Programmcounter um 1 und übergibt dann den Befehl an CPU, diese Wertet aus, und bekommt dann neuen Befehl.
finmar01
Rechteck
finmar01
Rechteck
finmar01
Linien
finmar01
Textfeld
beide Richtungen
Page 19: Betriebssysteme   Ausgearbeitet

36

Stichworte

Notizen

Prof. W. Burkard 36

Der zentrale Prozessor (CPU)

• Die Aufgabe der CPU ist die sequentielle Ausführung einer Instruktionsfolge (Programm)

• Alle Instruktionen liegen zusammen mit den zu verarbeitenden Daten im Speicher des Rechners

• Bei jeder einzelnen Befehlsausführung werden Daten in der CPU verarbeitet ODER zwischen CPU und Speicher (bzw. IO-Gerät) bewegt

• Die CPU umfasst mindestens einen Registersatz, eine Recheneinheit (ALU) und ein Steuerwerk

• Register sind CPU-interne, sehr schnelle (ca. 1ns) Speicherzellen mit deren Inhalten die ALU rechnen kann

• Zwei Register sind von zentraler Bedeutung:

• Programmzähler (PC) enthält die Adresse der nächsten auszuführenden Instruktion

• Kellerregister (SP) zeigt auf das Ende des Stack und dient zur Realisierung von Unterprogrammaufrufen mit Parameterübergabe

• Die ALU manipuliert Prozessorregister. Neben arithmetischen Operationen für ganze und Gleitkommazahlen stellt sie Logik- und Testfunktionen zur Verfügung (z.B. Vergleiche)

• Das Steuerwerk ist der Interpreter für den Instruktionssatz einer CPU und koordiniert alle Einzelaktivitäten bei der Ausführung der einzelnen Instruktionen

37

Stichworte

Notizen

Prof. W. Burkard 37

Die von-Neumann-Architektur

finmar01
Unterstreichen
finmar01
Schreibmaschinentext
wie unterscheidet man daten und instruktionen? -gar nicht!
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
Cache
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Bleistift
finmar01
Schreibmaschinentext
E/A Register wird behandelt wie Haupt- speicher (d.h. wie eine spezielle Datei)
Page 20: Betriebssysteme   Ausgearbeitet

38

Stichworte

Notizen

Prof. W. Burkard 38

Der Bus in der von-Neumann-Architektur

1010010110100101

12345678

Zelle 4schreiben

39

Stichworte

Notizen

Prof. W. Burkard 39

Gängige Systembusse

finmar01
Unterstreichen
finmar01
Schreibmaschinentext
nur die CPU darf den Adressbus benutzen!
finmar01
Textfeld
Datenbus [Bearbeiten] Ein Datenbus überträgt Daten zwischen Computerbestandteilen innerhalb eines Computers oder zwischen verschiedenen Computern. Anders als bei einem Anschluss, bei dem ein Gerät mit einem anderen Gerät über eine oder mehrere Leitungen verbunden ist, kann ein Bus mehrere Peripheriegeräte über den gleichen Satz von Leitungen miteinander verbinden. Die Bezeichnung als Datenbus wird in mehrfachem Zusammenhang verwendet: · mit Betonung auf Daten: zur Abgrenzung gegenüber gemeinsamen Anschlüssen, wie der Stromversorgung · mit Betonung auf Bus: zur Unterscheidung der Topologie, wie z. B. direkten Punkt-zu-Punkt-Verbindungen · bei parallelen Bussen: zur Unterscheidung von Adress- oder Steuerleitungen
finmar01
Textfeld
Adressbus [Bearbeiten] Ein Adressbus ist in der Computertechnologie - im Gegensatz zum Datenbus - ein Bus, der nur Speicheradressen überträgt. Die Busbreite, also die Anzahl der Verbindungsleitungen, bestimmt dabei, wieviel Speicher direkt adressiert werden kann. Wenn ein Adressbus n Adressleitungen hat, können 2n Speicherstellen adressiert werden. Dieser Bus ist unidirektional und wird vom jeweiligen Busmaster (s. a. oben) angesteuert. Letzterer ist meistens die CPU, aber vor allem DMA-fähige Bausteine können diesen Bus auch übernehmen, wenn sie aktiv werden.
finmar01
Textfeld
Steuerbus (Kontrollbus) [Bearbeiten] Der Steuerbus ist ein Teil des Bussystems, welcher die Steuerung (engl. control) des Bussystems bewerkstelligt. Hierzu zählen unter anderem die Leitungen für die Interrupt-Steuerung, Buszugriffssteuerung, der Taktung (falls ein Bustakt erforderlich ist), Reset- und Statusleitungen. Welche der Leitungen in einem Bus eingesetzt sind, ist von der Art und Struktur des Busses abhängig. In Multi-Master-Systemen, in denen mehr als ein Subsystem die Buskontrolle übernehmen kann, ist ein Arbiter als Entscheidungsinstanz erforderlich.
finmar01
Unterstreichen
finmar01
Schreibmaschinentext
Cache mit vollem CPU-Takt, sonst "Flaschenhalseffekt"->"Pipelining"
Page 21: Betriebssysteme   Ausgearbeitet

40

Stichworte

Notizen

Prof. W. Burkard 40

Maschinenbefehle und Daten im Speicher

41

Stichworte

Notizen

Prof. W. Burkard 41

Instruktionssatz und Adressierungsarten

• Die Menge aller vom Steuerwerk verstandenen Befehle definiert den Instruktionssatz eines Prozessors.

• Die Befehle lassen sich kategorisieren:

• Arithmetik-, Logik- und Schiebeoperationen

• Operationen zur Beeinflussung der weiteren Befehlsausführungsreihenfolge

• Lade- und Speicheroperationen dienen dem Austausch von Daten zwischen CPU und Speicher

• Hierbei unterscheidet man diverse Adressierungsarten:

• Registeradressierung: Ziel oder Quelle ist ein CPU-Register

• Absolute Adressierung: Ziel / Quelle ist eine Speicherzelle / Gerätezelle

• Relative Adressierung: in einem CPU-Register steht ein Basiswert, relativ zu dem ein Offset angegeben wird um Ziel / Quelle zu benennen

• Indirekte Adressierung: Ziel / Quelle ist der Inhalt eines Register oder einer Speicherzelle

finmar01
Schreibmaschinentext
pipelining=>64bit datenbus schickt benachbarte Speicherzellen gleich mit
finmar01
Beschriftung
kommt noch!
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
Programmcounter
finmar01
Schreibmaschinentext
Schiebeoperationen: ...
Page 22: Betriebssysteme   Ausgearbeitet

42

Stichworte

Notizen

Prof. W. Burkard 42

Sprungbefehle und Unterprogramme

• Alle gängigen Prozessoren verfolgen ein streng sequentielles Verarbeitungsmodell, d.h. na ch Beendigung der aktuellen Operation wird mit der Bearbeitung des Befehls fortgefahren, der im Speicher nachfolgt.

• Durch Sprungbefehle kann dieser Ablauf beeinflusst werden

• unbedingter Sprungbefehl: die sequentielle Abfolge wird auf jeden Fall beendet und statt dessen an einer angegebenen Adresse fortgesetzt

• bedingter Sprungbefehl: abhängig von einer Bedingung erfolgt der Sprung zu einer anderen Speicheradresse ( z. B. wenn Inhalt eines Registers = 0 )

• Absoluter Sprung: Zieladresse wird fest vorgegeben

• Relativer Sprung: Angabe der Zieladresse ist relativ zur aktuellen Position

� relative Sprünge machen Programme relokierbar (verschiebbar im Speicher)

• Beim Sprung in ein Unterprogramm (JSR Jump SubRoutine) wird zusätzlich erst noch die aktuell folgende Speicheradresse auf den Stack gespeichert um bei Ende der Subroutine von dort wieder in den Programmcounter geladen zu werden

43

Stichworte

Notizen

Prof. W. Burkard 43

Synchrone und asynchrone Unterbrechungen

• Die reguläre Programmabarbeitung kann auch durch Unterbrechungen (Interrupts) verändert werden

• Synchrone Unterbrechungen = unmittelbare Folge der aktuellen Befehlsabarbeitung, also synchron zum aktuellen Befehl. Beispiele:

• Es wird gerade durch 0 dividiert (Exception)

• Es wird auf eine nicht existente Speicherstelle zugegriffen (Exception)

• Es wird explizit vom Programmierer durch den Aufruf eines entsprechenden CPU-Befehls ein Interrupt erzeugt (TRAP)

• Asynchrone Unterbrechungen = Ereignisse im Computer, die über besondere Leitungen an die CPU geleitet werden (Steuerbus!)

• asynchron = in keinem kausalen Zusammenhang zum aktuellen Befehl

• Beispiele: IO-Gerät meldet relevantes Ereignis ( Taste gedrückt, Paket auf Netzkarte eingetroffen, DMA beendet, usw...

• Maskierung = Unterbinden einer CPU-Reaktion auf einen Interrupt

Unterbrechung

synchron asynchron

Trap InterruptException

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Schreibmaschinentext
d.h. Maschinensprache
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
bsp. Bedingung Speicherzelle: 1299 und 1300 1299 CMP AX;BX (Compare A mit B) 1300 JNE +3000 (Jump-Not-Equal) Bedingung=wenn A gleich B dann JUMP nach 4300
finmar01
Schreibmaschinentext
synchrone: sofortige Abarbeitung der Folge -im eigenen Befehl wird bemerkt, dass es nicht weiter geht! (springt dann) -vorgegebene Sprünge
finmar01
Linien
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
boolsche Algebra (siehe sonst wo!)
finmar01
Rechteck
finmar01
Beschriftung
Sperren eines Interrupts
Page 23: Betriebssysteme   Ausgearbeitet

44

Stichworte

Notizen

Prof. W. Burkard 44

Die Interrupt-Service-Tabelle

• Beim Eintreffen einer (nicht maskierten) Unterbrechung wird hardwaremässig der aktuelle Prozessorzustand (also alle Register) auf dem Stack gespeichert

• Dann erfolgt ein indirekter Sprung über eine im Speicher befindliche Sprungtabelle

• Jede Unterbrechung hat folglich einen festen Index in dieser Sprungtabelle

• In der Tabelle steht die Anfangsadresse der zugehörigen Interrupt-Service-Routine

• Die Fortführung eines unterbrochenen Programms erfolgt später durch Wiederherstellen des Prozessorzustandes

Sprung-tabelle

Speicher

012...k..n

Unterbrechung k

Interrupt-Service-Routinezur Unterbrechung k:Hier stehen die Befehle mit denen der Sachverhalt erledigt wird

001010111011101011110101010011101100101111010101001101

45

Stichworte

Notizen

Prof. W. Burkard 45

Unterbrechungsvektoren des PC

Unterbrechung Name

0 Division durch 01 Einzelschritt-Modus2 Nicht-Maskierbar3 Haltepunkt4 Überlauf5 Bildschirm drucken6 - reserviert -7 - reserviert -8 8253 Systemzeitgeber9 TastaturA - reserviert -B - reserviert -C - reserviert -D - reserviert -E Diskette/FestplatteF - reserviert -

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Schreibmaschinentext
IRET = Interrupt Return (holt sich vom Stapel alles zurück, auch den Programmcounter und es geht dort weiter wo aufgehört wurde)
finmar01
Textfeld
Interrupt 9 = Tastatur
finmar01
Linien
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Kreis
finmar01
Linien
finmar01
Linien
finmar01
Linien
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
was wird bei Interrupt gemacht?
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Linien
finmar01
Linien
finmar01
Schreibmaschinentext
-Tabelle hat alle Unterbrechungsarten aufgelistet -...
Page 24: Betriebssysteme   Ausgearbeitet

46

Stichworte

Notizen

Prof. W. Burkard 46

Ausführungsmodi

• Moderne Prozessoren unterstützen mehrere Modi der Programmausführung mit abgestuften Privilegien

• Typisch: privilegierter Modus und Normalmodus

• Intel- Prozessoren bieten 4 Abstufungen (Schutzringe 0 – 3)

• Ring 0: höchste Privilegierung

• Ring 3: Normalmodus

• Modi sind für die Umsetzung von Schutzkonzepten erforderlich

• Der Modus hat Einfluss auf die Ausführbarkeit einzelner Befehle

• Beispiel Intel: • spezielle I/O-Befehle sind nur in privilegierten Ringen möglich

• Ausführung im Normalmodus führt zu synchroner Unterbrechung (Exception)

• Maskierung von Interrupts erfordert ebenfalls privilegierten Modus

• Bestimme Register der CPU sind nur im privilegierten Modus erreichbar/änderbar

• Keller und Statusregister existieren mehrfach, d.h. für jeden Modus getrennt

• Interrupts schalten die CPU zwangsweise in einen privilegierten Modus, es gibt keine Befehle hierfür, d.h. gezielter Wechsel von Ring 3 nach „innen“ geht nur über TRAP

• Rücksprung in den Normalmodus erfolgt über entsprechenden Befehl

47

Stichworte

Notizen

Prof. W. Burkard 47

Speicher in der von-Neumann-Architektur

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Schreibmaschinentext
SUMME d. Befehle Ring 0 Ring 1 Ring 2 Ring 3
finmar01
Linien
finmar01
Linien
finmar01
Linien
finmar01
Hervorheben
finmar01
Beschriftung
Privilegierung steigt
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
Wortlänge=Datenbusbreite
finmar01
Linien
finmar01
Rechteck
finmar01
Textfeld
/nicht bitweise
finmar01
Linien
finmar01
Beschriftung
dynamischer RAM: -innerhalb weniger ms verloren, müssen immer gelesen und wieder beschrieben werden
finmar01
Textfeld
statisches RAM: -mit Transistoren, Cache -groß, teuer, sehr schnell
finmar01
Linien
finmar01
Beschriftung
langsam
Page 25: Betriebssysteme   Ausgearbeitet

48

Stichworte

Notizen

Prof. W. Burkard 48

RAM und ROM• Speicher aus CPU-Sicht = hardwareabhängige

Anzahl von Speicherzellen, ansprechbar durch entsprechende Belegung des Adressbusses

• � Der physische Adressraum wird durch die Breite des Adressbusses begrenzt

• Computer sind selten voll ausgebaut, d.h. Lücken im Adressraum (lösen bei Zugriff eine Exception aus)

• Speicher besteht überwiegend aus RAM-Bausteinen, die ihren Inhalt bei fehlender Stromversorgung verlieren

• Kleiner Speicherteil ist mit ROM-Bausteinen bestückt,nur lesbar, behalten aber ihren Inhalt auch ohne Strom

• Im ROM befindet sich der Urlader des Systems, also derjenige Code, den die CPU beim „Aufwachen“ ausführt

� das ROM muss so in den Adressraum eingefügt sein, dass es diejenige Adresse mit einschließt auf die der Program-Counter nach einem CPU-Reset zeigt

• Heutige Speicherbausteine haben Zugriffszeiten von rund 10 ns und sind damit cirka 10 mal langsamer als aktuelle Prozessoren

� Zwischenpuffer erforderlich ( Cache )

SIMM-Baustein 72 Pin

DIMM-Baustein 168-Pin

Notebook DIMM-Baustein 144 Pins

DDR-RAM Baustein 184 Pins

49

Stichworte

Notizen

Prof. W. Burkard 49

Performance durch Caching

Speicher

2639

Adresse von CPUCache Miss

• Ein Cache ist ein kleiner, aber sehr schneller Puffer, in dem je zwei Dinge vermerkt werden: eine Speicheradresse und ihr Inhalt

• Cache Hit: CPU greift auf gepufferte Adresse zu, Cache liefert den Inhalt

• Cache Miss: Adresse nicht im Cache � langsames Nachladen nötig

• Deferred Write: Schreiben der CPU wirkt nur auf Cache, Speicher wird später aktualisiert � temporäre Speicherinkonsistenz, aber schnell

• Write Through: CPU-Schreibzugriff geht durch auf Speicher

� langsamer, aber sicherer

Cache

Adresse Daten

1312 148

2639 756

5265 28

finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
ROM = Read-Only-Memory RAM = Random-Access-Memory
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Bleistift
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
erst in Cache gespeichert, wenn Zeit dann in Speicher
finmar01
Beschriftung
direkt in Speicher, nicht erst in Cache
Page 26: Betriebssysteme   Ausgearbeitet

50

Stichworte

Notizen

Prof. W. Burkard 50

Referenzlokalität und Cache-Temperatur

Gedanke: Cache lohnt sich nur, wenn mittlere Zugriffszeit t D des Systems sinkt !

Wie bestimmt sich tD ? � abhängig von der Trefferwahrscheinlichkeit p des Caches

tD = p * tCache + (1 – p) * t Speicher

Heutige Caches erreichen (auch wenn sie relativ klein sind ) Trefferraten von über 90 %

Warum ?Referenzlokalität = für aktuell zugegriffene Speicherzellen besteht eine deutlich höhere

Wahrscheinlichkeit, dass sie in naher Zukunft wieder angesprochen werden

� Warum ? Schleifen, Variablenzugriff, sequentielles Verarbeitungsmodell

� Konsequenz: Auch die Speicherzellen in der aktuellen Umgebung werden mit hoher Wahrscheinlichkeit angesprochen

� Cache-Line: Caches steigern die Trefferrate, weil sie beim Speicherzugriff in einem Burst gleich mehrere aufeinanderfolgende Speicherzellen laden ( Prefetch)

Kalter Cache / heißer Cache: Cache muss sich an die Programmausführung anpassen „warm fahren“d.h. Programm startet => kalter Cache, da viele neue Speicherstellen angesprochenwährend Programm läuft => Cache wird besser, da sich viele Zugriffe wiederholen

51

Stichworte

Notizen

Prof. W. Burkard 51

Die Speicherhierarchie

Durch Kaskadieren, d.h. durch abgestufte Caches wird Systemleistung optimiert:• Nahe an der CPU: kleinster, aber schnellster Cache (teuer!)

• Weiter weg: Cache wird größer, aber langsamer (billiger!)

Level-1-Cache: direkt auf CPU-Baustein integriert, läuft mit vollem Prozessortakt, oft in Instruktionscache und Datencache getrennt (wegen unterschiedlicher Lokalität von Daten und Programmen)

Level-2-Cache: kann die Leistung des Level-1-Cache niemals erreichen, da externer Baustein, d.h. längere Signalwege somit Zeitbedarf! Heute im PC üblich: 512 KByte +

Hauptspeicher, 64 MB und mehr, ca. 10 ns

Level-2-Cache, 512 KB -2 MB, ca. 3 ns

Level-1-Cache, 64-512 KB, < 1 - 2 ns

CPU-Register, 1-2 KB, <1ns

finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
Vorraussage: wir brauchen es wieder
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 27: Betriebssysteme   Ausgearbeitet

52

Stichworte

Notizen

Prof. W. Burkard 52

Ein- und Ausgabegeräte

• Geräte werden üblicherweise nicht direkt an den Prozessorbus angeschlossen

• Ein E/A-Controller übernimmt die Vermittlerrolle zwischen Prozessor und Gerät

Beispiel Drucker: ein zu druckendes Zeichen wird dadurch ausgeben, dass es dem E/A-Controller der parallelen Schnittstelle übergeben wird, der es über das Druckerkabel gibt

• Komplizierte Geräte verfügen über einen eigenen Prozessor und Speicher, bilden im E/A-Controller somit ein eigenes kleines Computersystem

• Die Interaktion zwischen Prozessor und E/A-Controller geschieht über den Prozessorbus

• Jeder E/A-Controller stellt einen E/A-Adressbereich mit bestimmten Registern im Adressraum der CPU zur Verfügung

• Kommandoregister � dienen der Übermittlung von Befehlen an das Gerät

• Statusregister � dienen der Abfrage des Controller- bzw. Gerätezustands

• Datenregister � dienen dem eigentlichen Informationsaustausch

Beispiel Drucker . . .E/A-Controller

Prozessorbus

53

Stichworte

Notizen

Prof. W. Burkard 53

Bei speicherbasierter EA sind die Register eines Controllers nicht von den normalen Speicherstellen zu unterscheiden. Zugriff erfolgt über normale Lese- Schreib-Operationen und ohne Einschränkungen bei den Adressierungsarten.

Ein- / Ausgabe - Architekturvarianten

P r o z e s s o r b u s

Speicher

L2-Cache

Interrupts

Speicherbus

Speicher

L2-Cache

E/A-Controller E/A-Controller

InterruptsBei einem dedizierten EA-Bus werden EA-Controller über spezielle CPU-Befehle angesprochen. (z.B. IN und OUT -Befehle bei INTEL-CPUs). Für die Auswahl der Controller/Register wird auch hier der Adressbus verwendet, der Steuerbus hat aber weitere Signalleitungen um EA-Zugriff von Speicherzugriff zu trennen

E / A - B u s

E/A-ControllerE/A-Controller

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
finmar01
Schreibmaschinentext
-es gibt eine Steuerleitung: Memory/IO -diese gibt Signal ob IO oder Memory -selber CPU-Befehl für beides -spezielle IO-Befehle IN/OUT->Steuerbus auf IO -alle Speicherstellen sind sowohl als Memory wie auch als IO-Adresse verwendbar
Page 28: Betriebssysteme   Ausgearbeitet

54

Stichworte

Notizen

Prof. W. Burkard 54

• E/A-Buscontroller sind eine spezielle Form des E/A-Controllers

• Sie stellen ausgangsseitig einen standardisierten Bus für den Anschluss der eigentlichen Geräte-Controller zur Verfügung

• Vorteile:

• An den sehr schnellen, in der Länge aber massiv begrenzten Prozessorbus sind nur wenige Komponenten angeschlossen

• Keine Beeinträchtigung der Systemleistung durchlangsame E/A-Geräte

• Bus-Controller übernimmt eine Reihe von Grundfunktionen (Interrupt-Handling, DMA) für alle Geräte-Controller � CPU-Entlastung

• Durch standardisierte Gerätebusse können einzelne E/A-Controller in unterschiedlichen Computerarchitekturen integriert werden

• Gängige Vertreter: PCI und SCSI

• Busmaster-Fähigkeit = einzelne E/A-Controller am Gerätebus können zeitweise die Initiative beim Datentransfer übernehmen � Datentransport ohne CPU möglich, z.B. Festplatt kopiert Daten zum CD-Brenner ohne dass die CPU involviert ist

E/A-Buscontroller

P r o z e s s o r b u s

Speicher

L2-Cache

Interrupts

E/A-Controller

Bus-Controller

E/A-ControllerE/A-Controller

E/A-Controller

finmar01
Unterstreichen
finmar01
Schreibmaschinentext
DMA=Direct Memory Access Fähigkeit des Adressbus zu manipulieren Bsp.:DVD on the fly brennen -OHNE DMA: Bus-Controller->Interrupt an CPU, CPU schaufelt Daten in RAM und dann in Brenner -MIT DMA: DVD-L. benutzt Adressbus und kopiert Daten sofort an Brenner Problem: Wer benutzt wann den Adressbus? -wird über Takt geregelt (Taktdiagramm) -exaktes Timing wer wann
finmar01
Schreibmaschinentext
Erwartungen: -wie CPU -was machen Busse -wie IO gesteuert -wie Speicher
finmar01
Rechteck
Page 29: Betriebssysteme   Ausgearbeitet

55

Stichworte

Notizen

Prof. W. Burkard 55

Das Prozeßmodell in Betriebssystemen

• alle ausführbaren Programme werden als sequentielle Prozesse gesehen

• jeder Prozeß besitzt seinen (virtuellen) Prozessor und läuft (scheinbar) kontinuierlich ab

• die Prozesse laufen scheinbar parallel zueinander ab.

• in Wirklichkeit aber wird der Prozessor “schnell” von Prozeß zu Prozeß geschaltetdies macht der Scheduler (Scheduling-Algorithmus)

� Vorsicht bei

a-priori-Zeitannahmen in

Programmen !!

Problem: wachsende Verzögerung V

bei wachsender Prozesszahl n

Vd = * k , bei n Tasks, die je k Zeit laufen und keine IO benötigen (reiner CPU-Burst)

Zeit

Pro

zeß

A

B

C

D

V=0

V=1

V=2

V=3

n – 12

56

Stichworte

Notizen

Prof. W. Burkard 56

Was bringen mehrere parallele Prozesse ?

Grundsätzliche Überlegung:In einem Prozeß wechseln sich Berechnungen und Ein/Ausgaben ab.Beispiel: Lesen von Daten von der Festplatte, modifizieren, dann speichern. Benötigt Lesen und Speichern 40 msec, die Bearbeitung 10 msec � dann wartet die CPU 80 % ihrer Zeit untätig !!!

Multiprogramming-GradEin Prozeß verbringe den Bruchteil pseiner Zeit mit Warten auf Ein/Ausgabe. Bei n Prozessen im Speicher, ist die Wahrscheinlichkeit, daß alle gleichzeitig im Wartezustand sind p n. Die CPU-Auslastung ist dann 1 - p n

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Schreibmaschinentext
SCHEDULING!!!
finmar01
Schreibmaschinentext
Bsp.: einer bleibt stehen (Menschenbeispiel)
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
Realität = 98-99% macht die CPU nichts! Bei mehreren Prozessen steigt die Auslastung und die Wartezeit sinkt.
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 30: Betriebssysteme   Ausgearbeitet

57

Stichworte

Notizen

Prof. W. Burkard 57

Performanceanalyse

Jeder Prozeß besitze 20% CPU-Nutzung ( bzw. 80% sei Warten auf I/O )

58

Stichworte

Notizen

Prof. W. Burkard 58

Die Realität: CPU-Bursts

● Sobald ein Prozess eine E/A-Operation veranlasst, wird er vom BS von der CPU genommen, und diese einem anderen Prozess gegeben. Der blockierte Prozess wartet auf das Ende der gestarteten E/A ohne dabei die CPU zu nutzen .

● Ein Prozess wechselt somit ständig zwischen Abschnitten, in denen er die CPU nutzt (CPU-Bursts) und solchen, indenen er E/A-Geräte benutzt (IO-Bursts).

● Beides gleichzeitig macht keinen Sinn, derProzess kann z.B. nicht weiterrechnen, wenn die Daten vom Datenträger noch nicht da sind!

● CPU- Bursts sind im Verhältnis zu IO-Bursts sehr kurz:Übliche Werte liegen im Bereich weniger Millisekunden, gegenüber IO-Bursts, die oft 100 mal länger sind !

reale CPU-Burst-Verteilung

0

20

40

60

80

100

120

140

160

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32

Dauer des CPU-Burst in msec

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Kreis
finmar01
Kreis
finmar01
Linien
finmar01
Linien
finmar01
Textfeld
verbrauchte CPU-Zeit
finmar01
Schreibmaschinentext
ohne die anderen Prozesse wäre Auftrag 1 schon 10:20 fertig, durch die Teilung aber brauch er 2 Minuten länger. ABER: Alle 4 Prozesse nacheinander würden 55min brauchen. In diesem Bsp. brauchen sie nur 31,7 Minuten. Die Pausezeiten werden mit der wachsenden Anzahl an Prozessen geringer und damit wird es effizienter!
finmar01
Beschriftung
normale Zeit -A1 = 20min -A2 = 15min -A3+A4 = 10min
finmar01
Beschriftung
errechnet durch 20%=4min 80%=16min
finmar01
Rechteck
finmar01
Linien
finmar01
Textfeld
1-pn
finmar01
Beschriftung
10:00
finmar01
Beschriftung
10:10
finmar01
Bleistift
finmar01
Textfeld
5min
finmar01
Kreis
finmar01
Linien
finmar01
Linien
finmar01
Linien
finmar01
Textfeld
5*0,18=0,9
finmar01
Hervorheben
finmar01
Rechteck
finmar01
Linien
finmar01
Textfeld
Durst, Bedarf
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
CPU-Burst = Prozess der CPU braucht
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 31: Betriebssysteme   Ausgearbeitet

59

Stichworte

Notizen

Prof. W. Burkard 59

Was ist eigentlich ein Prozeß ?

• Ein Prozess ist ein einzelner sequentieller Ablauf in einem Rechner, (ein ablaufendes Anwenderprogramm ist z.B. ein Benutzerprozess)

• Da alle Prozesse gleichzeitig stattfinden, müsste für jeden Prozess auch ein Prozessor vorhanden sein !?

• Die Anzahl der Prozesse schwankt aber im laufenden Betrieb und ist meist deutlich größer als die Zahl der vorhandenen Prozessoren ! Was tun ? �

Das Betriebssystem muss die vorhandenen Prozessoren auf die gegebenen Prozesse verteilen. Dieses Zeitmultiplexverfahren wird Scheduling genannt.

• Dabei wird zu bestimmten Zeitpunkten ein sogenannter Kontextwechsel durchgeführt,d.h. der Zustand des aktuellen Prozesses wird gesichert und der früher gesicherte Zustand eines anderen Prozesses wird wieder vom Prozessor übernommen.

• Benutzerprozesse führen Benutzeraufträge (Anwendungsprogramme) aus, Systemprozesse führen Dienste des BS aus, sind also Teil des Betriebssystems

• Jeder Prozess (NICHT Thread!) läuft in einem eigenen Prozessadressraum ab. Ein Prozess kann nur dann auf Objekte (z.B. Variablen ...) eines anderen Prozesses zugreifen, wenn das BS entsprechende Mechanismen hierfür zur Verfügung stellt

� IPC = Inter-Process-Communication

60

Stichworte

Notizen

Prof. W. Burkard 60

... und was ist dann ein Thread ?

• Bei vielen Anwendungen werden keine völlig separaten Prozesse benötigt

• Dennoch will man innerhalb der einen Anwendung parallele Handlungen ermöglichen

Was h eißt das ?

• Alle Handlungsfäden (= Threads) sollen im gleichen Prozesskontext ablaufen, somitein Adressraum für alle Threads

• Konsequenz: alle Threads haben zunächst uneingeschränkten gegenseitigen Zugriff auf ihre Objekte und teilen sich die Ressourcen (geöffnete Dateien, Variablen, Code, ... )

Wie wird das implementiert?

• Einfachste Lösung: die Threads übergeben sich gegenseitig reihum die Kontrolle (sogenanntes Coroutinen-Konzept) �

Dann müssen alle Threads sich gegenseitig kennen, der Anwendungsprogrammierer muss ein Scheduling-Verfahren implementieren bzw. berücksichtigen => schlechter Ansatz, besonders bei wachsender Thread-Anzahl

• Besser: keine Implementierung vom Anwendungsprogrammierer, sondern verfügbarer Dienst des BS. Dann werden die Umschaltzeiten zwar minimal länger, bleiben aber immer noch deutlich unter dem Kontext-Switch von „richtigen“ Prozessen. Warum ?

finmar01
Unterstreichen
finmar01
Unterstreichen
Marcus
Textfeld
Prozess: Unter einem Prozess (lat. procedere = voranschreiten; PPP: processus) versteht man eine definierte oder wahrscheinliche Aufeinanderfolge von Zuständen eines Systems in Abhängigkeit von den Vorbedingungen und den äußeren Einflüssen. Der Ablauf eines Prozesses kann vorgegeben sein, meist aber auch eigenständig gestaltet werden.
Marcus
Beschriftung
Ein Ausführungsstrang bzw. eine Ausführungsreihenfolge der Abarbeitung der Software auf einem Prozessor.
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Beschriftung
Dienst des Betriebssystems mit dessen Hilfe 2 Prozesse kommunizieren (Pipes)
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
Marcus
Hervorheben
finmar01
Textfeld
Ein (Kernel) Thread ist Teil eines Prozesses und teilt sich mit den anderen vorhandenen Threads des zugehörigen Prozesses eine Reihe von Betriebsmitteln, nämlich das Codesegment, das Datensegment und die verwendeten Dateideskriptoren. Allerdings bewahrt jeder Thread seinen eigenen Befehlszähler und seinen eigenen Stack. Durch die gemeinsame Nutzung des Speicherbereichs kann es natürlich auch zu Konflikten kommen. Diese müssen durch den Einsatz von Synchronisationsmechanismen aufgelöst werden. Da Threads, die dem selben Prozess zugeordnet sind, den gleichen Adressraum verwenden, ist eine Kommunikation zwischen diesen Threads von vornherein möglich (vgl. mit Interprozesskommunikation bei Prozessen). Threads innerhalb des gleichen Prozesses verwenden voneinander unabhängige Stapel (Stacks), die unterschiedlichen Abschnitten des Adressraums zugeordnet sind. Andere Betriebsmittel werden von allen Threads gemeinsam verwendet. Jeder „Programmfaden“ ist für die Ausführung einer bestimmten Aufgabe verantwortlich. Die Ausführungsstränge der Programmfunktionen können damit in überschaubare Einheiten aufgeteilt werden. Bei den meisten Betriebssystemen kann ein Thread neben dem Zustand inaktiv die Zustände rechnend (engl. running), rechenbereit (engl. ready) und blockiert (engl. waiting) annehmen. Im Zustand rechnend findet die Ausführung von Befehlen auf der CPU statt, bei rechenbereit ist der Thread gestoppt, um einen anderen Thread rechnen zu lassen und bei blockiert wartet der Thread auf ein Ereignis.
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 32: Betriebssysteme   Ausgearbeitet

61

Stichworte

Notizen

Prof. W. Burkard 61

... Kontextwechsel bei Threads

ODER: Was muss das Betriebssystem tun, wenn von einem Thread auf einen anderen umgeschaltet wird ?

• Jeder Thread hat Daten, die wirklich nur ihm zuzuordnen sind und in keiner Weise andere Threads oder Tasks betreffen:

• Das Prozessorstatuswort, also der gesamte Prozessorzustand (Inhalt der CPU-Register)

• Der Stackpointer, der auf das oberste Element im Stack (Stapel) zeigt

• Der Program- Counter, der auf die nächste auszuführende Instruktion zeigt

• Diese drei Daten sind vom Scheduler zu sichern bevor der neue Thread geladen wird

• Dies kann in kürzester Zeit erfolgen, da es nur wenige Daten sind ! � schnell

62

Stichworte

Notizen

Prof. W. Burkard 62

Der ProzesskontextDer Prozesskontext umfasst alle Informationen, die das Betriebsystem über einen Prozess besitzt und ändert sich bei Prozessablauf ständig

Identifikatoren• Name / ID des Prozesses• Name des Benutzers, für den der Task gerade arbeitet• Name des Vaterprozesses• Namen der Sohn-Prozesse

Zustandsinformationen• Prozessorzustand ( alle Register, nur vorhanden wenn Prozess nicht aktiv )• Bearbeitungsstand ( Zustand des Tasks: blockiert, ready, ... )• Alarmzustand• Beschreibung zugeordneter Objekte/Betriebsmittel

Rechte• Zugriffsrechte auf Dateien• Zugriffsrechte auf Speichersegmente und Seiten bei Paging• Prozessprioritäten

Betriebsmittelkonten• Abrechnungsdaten• Noch verfügbare Kontingente

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Schreibmaschinentext
Threads sind Teile eines Tasks Task=Prozess
finmar01
Textfeld
Kontextwechsel (engl. context switch) nennt man den Vorgang in einem Betriebssystem, bei dem die Bearbeitung des aktuellen Prozesses (oder auch Threads oder Tasks) durch einen Interrupt unterbrochen wird und zu einer anderen Routine gewechselt wird. Dabei wird der Kontext (im wesentlichen die Prozessor-Register) des aktuellen Prozesses/Threads/Tasks gesichert und der Kontext des neuen restauriert. Die Strategie für den Kontextwechsel wird vom Scheduler festgelegt, während die Durchführung selbst vom Dispatcher vorgenommen wird.
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 33: Betriebssysteme   Ausgearbeitet

63

Stichworte

Notizen

Prof. W. Burkard 63

Einfaches Prozess-Zustands-Modell

• ein Prozeß befindet sich immer in einem von drei möglichen zentralen Zuständen:

• AKTIV: ein Prozessor arbeitet die Instruktionen des Programmcodes gerade ab

• BLOCKIERT: BS hat Befehlsabarbeitung wg. IO gestoppt, Prozessor wurde einem anderenProzeß zugeteilt. Der blockierte Prozeß wartet auf ein (die Blockierung lösendes) Ereignis.

• BEREIT: Prozeß könnte weiterlaufen, wartet auf Zuteilung des Prozessors durch das BS

Prozeß-Erschaffung

Prozeßist

aktiv

Prozeß-Terminierung

Prozeßist

bereit Prozeßist

blockiert

Warten auf Ereignis

Ereignis tritt ein

Prozess

or-

zute

ilung

Prozess

or-

Entzug dur ch B

S

64

Stichworte

Notizen

Prof. W. Burkard 64

Prozesszustände

aktiv / running / rechnend

Prozesse in diesem Zustand sind im Besitz einer CPU und laufen gerade (bei einfachem Single-Prozessorsystem kann nur immer nur ein Task in diesem Zustand sein

blockiert / wartend / blocked

Prozesse, die darauf warten, dass eine E/A-Operation endet oder eine sonstige Systembedingung erfüllt wird, z.B. Eintreffen einer Nachricht... In diesem Zustand können sich stets beliebig viele Prozesse befinden.Diese Prozesse können nicht weiterlaufen, erst muss das „erlösende“ Ereignis stattfinden

bereit / rechenbereit / ready

Prozesse in diesem Zustand sind potentiell ausführbar, aber derzeit nicht im Besitz einer CPU.Auch in diesem Zustand können sich stets beliebig viele Prozesse befinden.Diese Prozesse könnten jederzeit weiterlaufen und „hoffen“ auf CPU-Zuteilung durch den Scheduler

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
immer nur einer
finmar01
Rechteck
Page 34: Betriebssysteme   Ausgearbeitet

65

Stichworte

Notizen

Prof. W. Burkard 65

Erweitertes Prozess-Zustands-Modell

• das einfache Modell muss erweitert werden, wenn durch Swapping ganze Prozesse wegen Speichermangels auf die Festplatte ausgelagert werden (swap out)

• Bis zur erneuten Einlagerung (Swap in) kann keiner der betroffenen Threads ausgeführt werden.

• Zustandsübergänge von allen drei bisherigen Zuständen sind möglich !

Prozeß-Erschaffung

Prozeßist

aktiv

Prozeß-Terminierung

Prozeßist

bereit Prozeßist

blockiert

Warten auf

Ereignis

Ereignis tritt ein

Prozess

or -

zute

ilung

Prozess

or-

Entzug dur ch B

SProzeß

istausgelagert

Swap in

Swap out

66

Stichworte

Notizen

Prof. W. Burkard 66

Prozesskontrollblock (PCB)Der PCB umfasst alle wichtigen Informationen aus dem Prozesskontext, damit das Betriebssystem die einzelnen Tasks verwalten kann:

• PID = Process Identification

• Speicherplatz zur Sicherung des Prozessorzustandes bei einem Kontextwechsel

• Informationen über den Wartegrund, falls der Task blockiert ist

• Adressrauminformationen, z.B. einen Verweis auf die oberste Seitentabelle

• Weitere Zustandsinformationen und Statistiken für das Scheduling

aktiv

bereit

blockiert

Prozessidentifikation

Registerzustand (Ein- und Auslesen bei Kontextwechsel)

Scheduling-Informationen

Adressrauminformationen...Seitentabelle......

Sonstiges

Nächster PCB

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Rechteck
Page 35: Betriebssysteme   Ausgearbeitet

67

Stichworte

Notizen

Prof. W. Burkard 67

Dispatcher und SchedulerLangzeitscheduling

• Planen der Jobausführung: es sollen nur so viele Benutzer mit ihren Anwendungen neu ins System, wie das System verkraften kann. � Begrenzung der Taskanzahl

Beispiel: ftp- oder www-Server Zugangskontrolle verhindert Serverüberlastung, d.h. ab der n-ten Verbindung wird der Request abgewiesen

• Ausführen von nicht-interaktiv ablaufenden Jobs (Batch-Jobs) zu bestimmten Zeiten (z.B. nachts ...)

Kurzzeitscheduling

• Das „eigentliche“ Scheduling: Strategie zur Zuweisung des (der) Prozessors (Prozessoren) an die Prozesse.

• Der Scheduler wählt somit aus der Menge der bereiten Prozesse den nächsten Kandidaten für die CPU anhand einer bestimmten Strategie.

Dispacher

• Die Durchführung der Zustandsübergänge selbst ist die Aufgabe des Dispatchers.

• Er stellt dafür entspr. Funktionen zur Verfügung, die von anderen Teilen der Prozessverwaltung des Betriebssystems aufgerufen werden.

Langzeitscheduling KurzzeitschedulingNutzer

Jobende

68

Stichworte

Notizen

Prof. W. Burkard 68

Zeitlicher Ablauf beim Kontextwechsel

zeitliche Verschränkung der Prozessbearbeitung in einem Einprozessorsystem

Prozess A

A arbeitet, hat CPU, „aktiv“

Unterbrechung

A im Zustand bereit,steht (keine CPU)

Zuweisung CPU an A

A arbeitethat CPU, aktiv

ZeitBetriebssystem-Kern

BS-Kern arbeitet,Scheduler & DispatcherZuweisung CPU an B

UnterbrechungBS-Kern arbeitethat CPU, aktiv

Prozess B

B steht, hat keine CPU,im Zustand „bereit“

B im Zustand „aktiv,Läuft jetzt auf CPU

B steht, hat keine CPU,im Zustand „bereit“

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Rechteck
finmar01
Beschriftung
Im Rahmen der Prozessverwaltung eines Betriebssystems dient der Dispatcher dazu, bei einem Prozesswechsel dem derzeit aktiven Prozess die CPU zu entziehen und anschließend dem nächsten Prozess die CPU zuzuteilen. Die Entscheidung, welcher Prozess der nächste ist, wird vom Scheduler im Rahmen der Warteschlangenorganisation getroffen
Page 36: Betriebssysteme   Ausgearbeitet

69

Stichworte

Notizen

Prof. W. Burkard 69

SchedulingSind mehrere Prozesse rechenbereit, muß das Betriebsystem den Prozeß bestimmen, der

als nächster die CPU erhält.===> Dieser Teil des Betriebssystems wird SCHEDULER genannt.===> Den angewendeten Algorithmus nennt man SCHEDULING-ALGORITHMUS.

zu bewältigende Aufgabe:In Mehrbenutzer-Timesharing-Systemen mischen sich unterschiedliche Anwendungen:

- interaktive Anwendungen, die ständig mit dem Anwender kommunizieren- nicht-interaktive Anwendungen, die ständig im Hintergrund wirken (z.B. Email)- Stapeljobs werden asynchron (im Hintergrund) von Anwendern angestoßen

Problem:

widersprüchliche Forderungen nach Fairneß, Effizienz, Antwortzeit, Verweilzeit, Durchsatz

Merke:Ein Scheduling-Algorithmus, der einen Job-Typ bevorzugt, benachteiligt andere Job-Typen(Da die CPU-Zeit endlich ist, muß die einem Anwender vermehrt gegebene Rechenzeit bei

den anderen eingespart werden)

70

Stichworte

Notizen

Prof. W. Burkard 70

Zielkonflikte beim Scheduling

Alle Scheduling-Strategien versuchen, gewisse Ziele zu verwirklichen:■ Auslastung der CPU

Dieses Betriebsmittel ist meistens am wenigsten vorhanden, also will man es möglichst effizient gebrauchen. � Ziel ist 100%-ige Auslastung, (normal sind 40% - 90%)

■ Durchsatz (Throughput)Die Zahl der Prozesse pro Zeiteinheit, die das System abwickelt soll maximal

■ FairnessKeine Bevorzugung eines Jobs, sofern nicht ausdrücklich gewünscht

■ Ausführungszeitsoll minimal sein. Umfasst die Zeit von Jobstart bis Ende inkl. aller Wartezeiten etc.

■ Wartezeitin der Bereit-Liste soll minimal sein. Ist als einzigste direkt vom Scheduler beeinflussbar !!!

■ Antwortzeit (response time)Zeit zwischen einer Eingabe und der Reaktion durch das System. Muss für interaktive Anwendungen unterhalb der menschlichen Wahrnehmungsgrenze liegen.

■ RealzeitGarantierte Einhaltung der von Anwendungen vorgegebenen Realzeitanforderungen

finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Textfeld
Ein Prozess-Scheduler (Scheduler = Steuerprogramm) regelt die zeitliche Ausführung mehrerer Prozesse in Betriebssystemen. Prozess-Scheduler kann man grob in unterbrechende (preemptive) und nicht unterbrechende (non preemptive, auch kooperativ genannt) aufteilen. Nicht unterbrechende Scheduler lassen einen Prozess, nachdem ihm die CPU einmal zugeteilt wurde, solange laufen, bis dieser diese von sich aus wieder freigibt oder bis er blockiert. Unterbrechende Scheduler teilen die CPU von vornherein nur für eine bestimmte Zeitspanne zu und entziehen dem Prozess diese daraufhin wieder. Man kann verschiedene Systeme unterscheiden, in welchen jeweils verschiedene Anforderungen an den Scheduler gestellt werden:
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2007 For Evaluation Only.
Page 37: Betriebssysteme   Ausgearbeitet

71

Stichworte

Notizen

Prof. W. Burkard 71

Wie bekommt das BS die CPU ?

Ausgangslage

mit der Ausführung eines Tasks durch eine CPU übernimmt die zugehörige Anwendung die Kontrolle über den Prozessor

Problem

Wie kann die Systemsoftware, also die Prozesse, die das Betriebssystem darstellen, wieder die Kontrolle über die CPU bekommen?

drei Lösungen

• Die laufende Anwendung (der aktive Task) tätigt einen E/ A-Zugriff. Durch diesen Aufruf einer Funktion des Betriebssystems gelangt das BS wieder „an die Macht“.

• Der laufende Prozess gibt die CPU „freiwillig“ auf, z.B. durch den Aufruf einer Betriebssystemfunktion „Ich will/muss jetzt warten“

• Ein asynchroner Hardware-Interrupt trifft die CPU und die zugehörige Service-Routine ist Teil des Betriebssystems

Erkenntnis

• Tritt keiner der drei Fälle ein, erlangt eine Anwendung das Ausführungsmonopol auf der CPU. Nutzt das BS Möglichkeit 3, so haben wir preemptives Scheduling, sonst non-preemptives Scheduling � besondere Gefahr durch „schlechte Programme“

72

Stichworte

Notizen

Prof. W. Burkard 72

Prozesszustände und Übergängeam Beispiel Linux / Unix

blockiert

gestoppt

aktivProzeßist ein

„Zombi“

Prozeßist

nichtmehr

existent

idle bereit

Prozeßist

nochnicht

existent

terminiertErzeugt (fork()

zugeteiltentzogen

Warte auf EreignisErhalte Signal

Warte auf Elternweitermachen

• Durch Aufruf des System-Calls fork() wird vom laufenden Task (von sich selbst!) eine Kopie gezogen und in die Bereit-Liste eingetragen ( quasi „Zellteilung“ bei Prozessen )

• Dann gibt es zwei fast identische Prozesse, die beide aus dem fork()-Aufruf zurückkehren

• Der Unterschied liegt im Rückgabewert von fork() : der Kindprozess erhält 0 zurück und erkennt daran, dass er der „Ableger“ ist. Der Elternprozess erhält die PID des Kindes und kann z.B. auf das Ende (exit()-Aufruf) des Kindes warten ( durch waitpid(PID) )

exit()

Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
preemptive
finmar01
Bleistift
finmar01
Beschriftung
non-preemptive
finmar01
Durchstreichen
Page 38: Betriebssysteme   Ausgearbeitet

73

Stichworte

Notizen

Prof. W. Burkard 73

Erzeugung und Vernichtung eines Prozessesam Beispiel Linux / Unix

Vaterprozess...PID = fork()// Wer bin ich ?If ( PID == 0 )

{ // ich bin das Kindexec(“programm.exe“)...exit();...

}// ich bin der Vaterwaitpid (PID);...

Wann erreicht der Kindprozess das obige exit(); ? � Nur bei Fehler im exec()-Aufruf !!!

Warum kann man sich beim if-Befehl den else-Teil sparen ?

Welchen Code führt der Kindprozess aus ?

Kindprozess...PID = fork()// Wer bin ich ?If ( PID == 0 )

{ // ich bin das Kindexec(“programm.exe“)...exit();...

}// ich bin der Vaterwaitpid (PID);...

Kindprozessläuft indas if hinein

Elternprozess überspringt if

74

Stichworte

Notizen

Prof. W. Burkard 74

Zombis unter Linux / Unix

• Alle Prozesse in Unix stammen direkt oder indirekt von einem einzigen Prozess ab, dem init-Prozess mit der PID = 1

• Alle Prozesse stehen also in einer Hierarchie zueinander

• Beim „Sterben“ eines Kindprozesses wird der Elternprozess benachrichtigt

• Ist beim Ende des Kindes der Elternprozess nicht mehr existent, wird init benachrichtigt

• In der Zeit zwischen dem exit()-Systemaufruf und dem Akzeptieren der Nachricht darüber beim Elternprozess gelangt der Kindsprozess in einen besonderen Zustand, er wird zum Zombi

• Bleibt ein Prozess durch einen Fehler im Zombi-Zustand, kann er nur noch durch einen System-Neustart eliminiert werden

finmar01
Durchstreichen
finmar01
Unterstreichen
Page 39: Betriebssysteme   Ausgearbeitet

75

Stichworte

Notizen

Prof. W. Burkard 75

Prozesszustände und Übergängeam Beispiel Windows 2000

• Komplexes Modell, da Kompatibilität zu vielen Prozessmodellen angestrebt

• Spezielle Ausprägungen werden in den NT-Subsystemen gekapselt

• Zur Erzeugung eines Tasks gibt es nur einen einzigen Systemaufruf NTCreateProcess() bei dem die Initialisierung durch entspr. Code und der Elternprozess angegeben werden kann

• Das Subsystem schafft die geforderte Kompatibilität

• Beispiel: POSIX-Subsystem mit fork():POSIX-Prozess ruft über API fork()-Befehl. Dadurch wird Nachricht über Kern an das POSIX-Subsystem geschickt. POSIX-Subsystem ruft NTCreateProcess() auf, gibt als ElternPID rufendes POSIX-Programm an. Vom Kern zurückgelieferter Objektschlüssel (object handle) wird dann vom POSIX-System verwaltet. D.h. alle Systemaufrufe des POSIX-Programms werden als Nachrichten zum POSIX-Subsystem gebracht, dort mit Hilfe von NT-Systemaufrufen erledigt und die Ergebnisse wieder im POSIX-Format an das rufende Programm zurückgegeben. Gleiches gilt für die anderen Subsysteme, siehe auch Folie 19 !

waiting

standby

running

terminatedinitialized

readypreempt

wait on object

wait complete

dispatch

transition

swap in

swap out

preemptselect

star

t

Executioncompletes

reinitialized

76

Stichworte

Notizen

Prof. W. Burkard 76

non-preemptives Monoprozessor-Scheduling

● Es gibt nur eine CPU

● Die Prozesse werden vom BS nicht unterbrochen, geben die CPU also entweder explizit freiwillig oder implizit durch Starten einer EA-Aktivität frei

Einfachstes Verfahren: FCFS = First Come, First Serve !

● Teilt den Prozessor in der Reihenfolge des Auftragseingangs zu

● Einfache Schlangen-basierte Implementierung: Task am Schlangenkopf erhält stets die CPU

● Kontextwechsel, wenn rechnender Task wegen EA eine blockierende BS-Funktion aufruft

� nach Abschluss der EA wird der Task wieder an das Schlangenende eingefügt

● Kontextwechsel, wenn rechnender Task CPU „ freiwillig“ aufgibt

� Task wird SOFORT wieder am Schlangenende eingefügt, also sofortige Neubewerbung um CPU

● Konsequenzen:

■ Hohe CPU-Auslastung kann erreicht werden

■ Alle anderen Kriterien werden aber nicht optimiert!

■ Wartezeiten hängen sehr stark von der aktuellen Lastsituation ab

■ Mittlere Wartezeit u.U. sehr schlecht und Konvoi- Effekt (siehe Folgefolien!)

Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Beschriftung
von Neumann vorausgesetzt
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 40: Betriebssysteme   Ausgearbeitet

77

Stichworte

Notizen

Prof. W. Burkard 77

FCFS: Varianz bei der mittleren Wartezeit

● Gegeben: 3 Threads mit CPU-Bursts von 24, 3 und 3 Zeiteinheiten

● Mittlere Wartezeit , wenn CPU-Burst 24 zuerst dran ist: 17 (z.B. ms)

● Mittlere Wartezeit , wenn CPU-Burst 24 zuletzt dran ist: 3 (z.B. ms)

24 msec 3msec 3msec � (0+24+27) / 3 = 17

3msec 3msec 24 msec � (0+3+6) / 3 = 3

78

Stichworte

Notizen

Prof. W. Burkard 78

FCFS: Konvoi-Effekt

● Konvoi-Effekt = trotz hoher CPU-Auslastung ist die Auslastung des Gesamtsystems eher gering

● Negativer Effekt, der entsteht, wenn Threads mit langen CPU-Bursts und EA-intensive Threads kombiniert auftreten.

● Kurzlaufende IO-Prozesse können nicht genügend EA-Aktivitäten anstoßen, stehen wieder in der Warteschlange � wenig nebenläufige EA im System !

Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Schreibmaschinentext
wenn "viele" Prozesse bereit sind ist "nur" die CPU ausgelastet -> Rest des Systems nicht -> Konvoi-Effekt: schnelle, kurze Prozesse können nicht I-O-Aktivitäten ausführen wegen großem, langen Prozess => miserable Auslastung
Marcus
Linien
Marcus
Linien
Marcus
Schreibmaschinentext
AKTIV (einer)
Marcus
Schreibmaschinentext
BEREIT (wenige)
Marcus
Schreibmaschinentext
BLOCKIERT (viele)
Marcus
Kreis
Marcus
Kreis
Marcus
Kreis
Marcus
Linien
Marcus
Linien
Marcus
Schreibmaschinentext
- wenn kurze Prozesse abgehandelt werden, werden sie immer wieder hinter dem Langen hängen bleiben -> schlechte Auslastung - wenn die Prozesse länger in IO arbeiten bleibt die Warteschlange hinter dem Langen leer
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
wenn viele in blockiert und wenige in bereit = Gesamtsystem gut ausgelastet (CPU + IO) wenn viele bereit, aber wenige blockiert = nur CPU gut ausgelastet
finmar01
Bleistift
finmar01
Bleistift
Page 41: Betriebssysteme   Ausgearbeitet

79

Stichworte

Notizen

Prof. W. Burkard 79

Kooperatives Schedulingdie FCFS-Variante unter Windows 3.x

● Reihenfolge wird „kooperativ“ zwischen den aktuell ausgeführten Tasks ermittelt● Im Zentrum steht eine für alle Anwendungen globale Ereignisschlange

● Grafiksystem erzeugt Ereignisse (Benutzereingaben durch Maus/Tastatur, Statusänderungen von Fenstern, ...), stellt diese an Ende der Ereignisschlange

● Auch jede Anw. kann Ereignisse über zentrale Schlange an andere Anw. „senden“

● Jedes Ereignis ist an bestimmten Prozess adressiert � der Ereignis-Empfänger● Scheduler wählt stets den Prozess, der am Schlangenkopf der E.-Empfänger ist

● Konsequenz: gute Antwortzeiten sind nur möglich, wenn ALLE Anwendungen kooperativ sind, d.h. häufig die Kontrolle an andere Anwendungen abgeben

80

Stichworte

Notizen

Prof. W. Burkard 80

Shortest Job Firstdie Grundlagen

● Prozessorzuteilung in der Reihenfolge wachsender CPU-Bursts● Task mit dem kleinsten nächsten CPU-Burst erhält die CPU● Gibt es davon mehrere, wird FCFS verwendet● SJF versucht offensichtlich den Konvoi-Effekt von FCFS zu eliminieren

� hohe Auslastung des Gesamtsystems● SJF ist beweisbar optimal bezüglich der Wartezeit der Tasks!● SJF minimiert die Verweilzeiten der Jobs/Tasks im System

Beispiel: Job A = 8 Minuten, Job B= 6 Minuten, Job C+D je 4 Minuten

Verweilzeiten:A= 8 Min. A=22 Min.B=14 Min. B=14 Min.C=18 Min C= 8 Min.D=22 Min. D= 4 Min.Durchschnitt: 15,5 Min. 12 Min.

A B C D

8 6 4 4 Min.

C D B A

4 4 6 8 Min.

SJF

Marcus
Unterstreichen
Marcus
Schreibmaschinentext
- jede Anwendung gibt die CPU kooperativ wieder frei - bei Endlosschleife einer Anwendung "hängt" das das gesamte System -> Windows "aufgehangen"
Marcus
Schreibmaschinentext
Vgl.: An der Kasse im Supermarkt: Oma hat viel, ich wenig Oma lässt mich durch
Marcus
Beschriftung
...ist ein weiteres Verfahren, das nicht für Mehrbenutzersysteme geeignet ist. SJF lässt sich in Fällen einsetzen, in denen die benötigte Rechenzeit für einzelne Aufgaben aus Erfahrungswerten gut vorhergesagt werden kann. Ein Nachteil ist, dass große Prozesse u.U. niemals die CPU zugeteilt bekommen, wenn sich immer kürzere Jobs vordrängeln.
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Schreibmaschinentext
Verweilzeit = Wartezeit + Bearbeitungszeit
Page 42: Betriebssysteme   Ausgearbeitet

81

Stichworte

Notizen

Prof. W. Burkard 81

Shortest Job Firstdie Probleme

● SJF ist nur bedingt realisierbar !

● Warum ? � die Länge des CPU-Bursts ist vorher nicht bekannt!

● Lösung: Näherungsweise Bestimmung (Approximation) der Dauer durch

■ gemessene Dauer des letzten Bursts und dessen damaliger Schätzwert

■ ... und Bildung eines Mittelwertes dazwischen:

Burst geschätzt,n+1 = αααα * Burst gemessen,n + (1- αααα) * Burst geschätzt,n

■ Der Faktor αααα liegt zwischen 0 und 1 und bestimmt,

welchen Einfluss der zurückliegende Burst auf die Schätzung hat

● SJF existiert in nicht-preemptiver und preemptiver Variante

● Nicht-preemptive Variante: Während Prozess P2 läuft wird P1 rechenbereit und derkalkulierte CPU-Burst von P1 ist kürzer als die Restlaufzeit von P2:

� P1 kommt erst auf CPU, wenn der P2-Burst zu Ende ist (EA-Operation, Aufgabe der CPU)

● Preemptive Variante, Situation wie oben: Betriebssystem entzieht sofort P2 die CPU und lässt P1 laufen.

● Noch ein Problem mit SJF: Starvation (Verhungern): bereiter Task kommt nie dran, wenn viele kurze Prozesse im System zuströmen

82

Stichworte

Notizen

Prof. W. Burkard 82

Highest Response Ratio NextHRN

● Man schätze die Antwortzeit eines Tasks

● Man schätze die Bedienzeit eines Tasks

● Man bilde den Quotienten Antwortzeit / Bedienzeit

● Man wähle den Prozess mit dem größten Quotienten

� es werden Prozesse mit kurzen Bedienzeiten bevorzugt

� die Wartezeit von Tasks mit langen Bedienzeiten werden begrenzt,

da bei einer ständigen Benachteiligung deren Antwortzeit zunimmt!

Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Schreibmaschinentext
manche Prozesse können "verhungern" (to starve), kommen nie dran deswegen gibt es Prioritätsliste, wenn man immer nach hinten geschoben wird, steigt die eigene Priorität, damit man irgendwann drankommt
Marcus
Bleistift
Marcus
Schreibmaschinentext
Bonuslösung
Marcus
Schreibmaschinentext
Antwortzeit: Bedienzeit + Wartezeit Bedienzeit: CPU-Zeit wenn ich nicht warten muss 1 +1 wenn ich nicht drankomme Lösung von Starvation!
Marcus
Beschriftung
Stand von P2 wird gespeichert und später weiterverarbeitet
Marcus
Beschriftung
aufgrund vergangener Erfahrungswerte (im Hauptspeicher abgelegt), werden neue geschätzt
Marcus
Linien
Marcus
Schreibmaschinentext
shortest job first + bonuspoints
Marcus
Schreibmaschinentext
nonpreemtive->großer Prozess wird fertiggestellt und danach der erst später hinzugekommenen kurze Prozess preemetive->großer P. wird sofort unterbrochen wenn kurzer kleiner P. in Schlange kommt
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
SJF
Page 43: Betriebssysteme   Ausgearbeitet

83

Stichworte

Notizen

Prof. W. Burkard 83

Non-preemptiv Priority-Scheduling

grundlegende Idee: Die Prozesse sind unterschiedlich wichtig und sollen daher öfter bzw. seltener die CPU erhalten.

Lösung: Jedem Prozeß wird eine Priorität zugewiesen,der ausführbereite Prozeß mit der höchsten Priorität erhält die CPU

Problem: sehr lange CPU-Nutzung hochpriorer Prozesse, Verhungern von JobsLösung: dynamisches Ändern der Priorität während der Laufzeit � Aging

statische Prioritätszuweisung erfolgt durch den Anwender / Administratorz.B. personengebunden ( Professor - Assistent - Student )

dynamische Prioritätszuweisung erfolgt durch das Betriebssystemz.B. I/O-intensive Prozesse werden in der Prioriät erhöht

Prioritätsklassen:Einteilung der Prozesse in verschiedene Klassen von Prioritäten==> Prioritäts-Scheduling zwischen den Klassen==> Round-Robin innerhalb der Klassen

Px Pz

Pn PsPk

Pa niedrigste Priorität

höchste Priorität

Prio.1

Kopf der rechenbereiteWarteschl. Prozesse

Prio.3

Prio.2

84

Stichworte

Notizen

Prof. W. Burkard 84

Preemptive Scheduling Verfahren

Round-Robin● einfaches Scheduling-Verfahren, fair, weit verbreitet ( RR = preemptives FCFS )

● Jeder Prozeß erhält ein Zeitintervall Rechenzeit ( Quantum)

● Nach Ablauf des Quantum wird der Prozessor entzogen und dem nächsten zugeteilt

● Wenn ein Prozeß blockiert oder zu Ende ist vor dem Ende des Quantums,erfolgt ebenfalls sofort ein Prozeßwechsel ( Kontextwechsel, Contextswitch)

● Implizite Annahme: Alle Prozesse sind gleich wichtig!

● Problem: Wie lange soll das Quantum sein ??? (heute üblich 10 – 20 msec)

Liste der ausführbaren Prozesse ... ... vor dem Kontextwechsel ... nach dem Kontextwechsel

Proz B Proz I Proz P Proz T Proz AProz A Proz B Proz I Proz P Proz T

Prozeßmit

CPU

nächsterProzeß Prozeß

mitCPU

nächsterProzeß

Marcus
Kreis
Marcus
Beschriftung
Prozesse altern
Marcus
Linien
Marcus
Beschriftung
First Come, First Serve
Marcus
Schreibmaschinentext
Bsp.: Kindergarten normale Kinder - niedrige Priorität gestörte Kinder - hohe Priorität
Marcus
Kreis
Marcus
Beschriftung
First Come, First Serve
Marcus
Schreibmaschinentext
Problem: Quantum Verkürzung: CPU-Auslastung sinkt (ineffizient), viele Prozesse werden nicht fertig Quantum Verlängerung: Viele Prozesse könnten früher fertig sein; Wartezeit für andere wird größer => Antwortzeit
Marcus
Beschriftung
CPU-Auslastung geht scheinbar höher
Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Beschriftung
Einem Prozess wird die CPU für eine bestimmte (kurze) Zeitspanne zugeteilt. Danach wird der Prozess wieder hinten in die Warteschlange eingereiht.
Marcus
Beschriftung
=Ringel Reihe
Marcus
Schreibmaschinentext
Nutzungsdauer der CPU: Bsp.: 20ms Quantum +2ms Entscheidungszeit 20/22=0,9=90% mit der Wartezeit geht die Anwortzeit in die Höhe
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
Prioritätswert im PCB (prozess control block)
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 44: Betriebssysteme   Ausgearbeitet

85

Stichworte

Notizen

Prof. W. Burkard 85

Preemptives Prioritäts-Schedulingund

dynamic priority Round Robin (DPRR)

grundlegende Idee beim preemptiven Prioritäts-Scheduling:� wie bei der non-preemptiven Variante

jetzt aber neu:Unterbrechung der aktuellen Prozessorzuordnung unmittelbar dann

■ wenn ein neuer Task mit höherer Priorität erzeugt wird■ wenn ein deblockierter Task mit höherer Priorität erneut rechenbereit wird

DPRR:■ Erweiterung von RR durch eine vorgeschaltete Stufe■ Jeder Job hat eine bestimmte Priorität■ In dieser Vorstufe gibt es eine prioritätsgesteuerte Warteschlange für die Jobs■ Die Priorität der Jobs in der Warteschlange wächst nach jeder Zeitscheibe, in der

sie nicht berücksichtigt wurden■ Wird die Schwellenpriorität des eigentlichen RR-Verfahrens erreicht, wird der Job

in die Hauptwarteschlange des RR einsortiert■ Folge: RR-Verfahren wird direkt nicht verändert, aber trotzdem unterschiedliche

Bearbeitung der Jobs nach Systemprioritäten

86

Stichworte

Notizen

Prof. W. Burkard 86

Multiple Warteschlangen

● Es gibt nur einen Hauptprozessor CPU in einem Monoprozessorsystem

● Es gibt meist mehrere DMA-fähige Controller für schnelle EA-Geräte

● � das sind letztendlich eigene, spezialisierte Prozessoren, die man als unabhängige Betriebsmittel betrachten kann

● Idee: Einrichten einer separaten Warteschlange für jeden DMA-Controller

● Konsequenz: Dispatching in diesem System bedeutet Umhängen von Jobs aus einer Warteschlange in eine andere (mit kurzen CPU-Bursts, die dazwischen liegen)

Hauptprozessor

EA-Festplatte 1

EA-Festplatte 2

EA-Grafikkarte

EA-CDROM

CPU

DMA-Contr.

DMA-Contr.

DMA-Contr.

DMA-Contr.

Marcus
Schreibmaschinentext
aus blockiert in bereit
Marcus
Kreis
Marcus
Beschriftung
Warteschlange
Marcus
Schreibmaschinentext
kein Verfahren - nur Idee
Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Schreibmaschinentext
logisch gesehen ist ein Prozess blockiert, wenn er einen IO-Zugriff macht -> hier Warteschlange für jedes IO-Gerät
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Platziertes Bild
finmar01
Rechteck
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
direct memory access
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
zusätzliches Anstehen an DMA-Controller
Page 45: Betriebssysteme   Ausgearbeitet

87

Stichworte

Notizen

Prof. W. Burkard 87

Multilevel-Schedulingund

Multilevel-Feedback-Scheduling

● Kategorisierung der Jobs, d.h. für jede Job-Kategorie gibt es eine eigene Warteschlange

● Jede Warteschlange hat ihre eigenes Scheduling-Verfahren

● Ein übergeordnetes Scheduling-Verfahren wechselt zwischen den Warteschlangen

● Können Jobs bei längerer Wartezeit in eine Warteschlange höherer Priorität wechseln spricht man von multilevel-feedback scheduling

CPU

Prio 0 � Systemprozesse

Prio 1 � Interaktive Jobs

Prio 2 � allgemeine Jobs

Prio 3 � rechenintensive Jobs

88

Stichworte

Notizen

Prof. W. Burkard 88

Zweistufiges Scheduling

Das zweistufige Scheduling transportiert Prozesse zwischen Hauptspeicher und Festplatte und wählt nur aus den eingelagerten Prozessen zur Ausführung aus.

Scheduler der unteren Ebene: wählt zwischen den eingelagerten Prozessen ausScheduler der oberen Ebene: tauscht Prozesse von RAM auf DISK und umgekehrt

Hauptspeicher

Prozesse1: a2: b3: k4: s

Festplatte

Prozessor

Scheduler (obere Ebene):

lagert unter 1-4 Prozesse ein

Scheduler (untere Ebene):

wählt Prozesse aus 1-4

Marcus
Schreibmaschinentext
Windows- verfahren
Marcus
Schreibmaschinentext
Idee
Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
ebend: jobs haben priorität und damit in liste eingeordnet jetzt: mehrere wartschlangen (listen) mit prioriäts zuordnung und jobs werden dort eingelistet
finmar01
Schreibmaschinentext
übergeordnetes verfahren schiebt prozesse zw. wartelisten nach wartezeit bei multilevelfeedbackscheduling
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
Auslagerung: - swap in / out
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
der obere holt ausgelagerte prozesse von HDD in speicher der untere nimmt nur aus Speicher
finmar01
Kreis
Page 46: Betriebssysteme   Ausgearbeitet

89

Stichworte

Notizen

Prof. W. Burkard 89

Trennung vonStrategie und Mechanismus

Der Scheduler des Betriebssystems kennt nicht die Aufgabe eines Prozesses ==> er kann also auch nicht anhand der prozeßspezifischen Aufgabenstellung

den Prozessor zuteilen !Idee: Betriebssystem stellt eine Schnittstelle (System-Calls) zur Verfügung,

durch die Prozesse die Prioritäten anderer Prozesse beeinflussen können.Resultat: Der Mechanismus des Kontextwechsels bleibt weiterhin im Betriebssystem

und den Anwendungsprozessen verborgen, ABER==> Anwendungsprozesse können nach eigenen Verfahren/Algorithmen die

Prozessorzuteilung steuern

Beispiel: Ein Datenbanksystem bestehe aus einem Vaterprozeß und einer Reihe von Kindprozessen für diverse Einzelaufgaben (Kommunikation mit Anwendungen,Caching der Daten, Locking-Mechanismen, Garbage-Collection) Der Vater kann dann z.B. die Priorität der Garbage-Collection reduzieren, wenn das DB-System viele Anfragen zu bearbeiten hat.

90

Stichworte

Notizen

Prof. W. Burkard 90

Scheduling in Unix

● Zentrale Multilevel-Warteschlange (mit meist 256 Elementen)● Jedes Element dieser zentralen Warteschlange ist selbst wieder eine

Warteschlange, die nach Round Robin betrieben wird● Scheduler verwendet Aging-Verfahren um die Benachteiligung von

dialogorientierten Anwendungen durch RR zu verhindern:

� Erhöhung (Verschlechterung!) der Priorität eines Tasks proportional zu seiner Prozessorauslastung (multilevel-feedback) d.h. Umhängen in andere Queue

012...127128...177178...255

Real time

System

User

PCB PCB

PCB PCB

PCB PCB

● UNIX-Scheduler durchsucht Liste oben bei 0 beginnend und startet ersten gefundenen Job

● Jeder Task bekommt eine initiale Priorität● Durch Warten steigt die Priorität

● „nice“ – Kommando erlaubt Usern ihre Anwendungen in der Priorität zu senken

Marcus
Schreibmaschinentext
Idee
Marcus
Schreibmaschinentext
Linux
Marcus
Linien
Marcus
Schreibmaschinentext
oder zu erhöhen
Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Schreibmaschinentext
wie im bps. regeln die Anwendungen die Priorität ... Schnittstellen zum Scheduling -> Optimum!
finmar01
Kreis
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
problem: BS kann nicht entscheiden was für eine priorität prozess hat lösung: prozess entscheidet selbst
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Textfeld
problem des ganzen: zu unsicher!
finmar01
Bleistift
finmar01
Schreibmaschinentext
arbeitet nach multilevelscheduling - innerhalb dessen roundrobinprinzip
Page 47: Betriebssysteme   Ausgearbeitet

91

Stichworte

Notizen

Prof. W. Burkard 91

Scheduling in Windows

● ebenfalls Multilevel-Scheduling, wobei Echtzeitjobs möglich, jetzt aber nur 32 Prioritäten 0-31

● Priorität 0 = niedrigste Priorität, 31 = höchste Priorität● Es werden Threads verwaltet, dabei ist Scheduling und Dispatching getrennt

● Windows 2000 unterstützt symmetrisches Multiprocessing● Ist kein Thread abzuarbeiten, läuft der spezielle Idle Thread (hat Priorität 0)

● Jeder Thread hat eine (von der Art des Jobs abhängige) initiale Priorität:Interaktive Jobs sind wichtiger als z.B. rechenintensive Jobs

● Wird ein Prozess

313029...1615...

210

Real time

variablePriorität

PCB PCB

PCB PCB

PCB PCB

● Nach Ende der Zeitscheibe wird Priorität des Threads abgesenkt und er dementsprechend frisch eingereiht. Dann wird der jetzt höchstpriore Thread genommen, der auf der gerade freien CPU laufen kann (Prozessoraffinität=auf welchen CPUs kann Thread t laufen)

● Wird Thread mit Realzeitprio. grösser der eines laufenden Thread bereit � Interrupt an die entsprechende CPU� Threadwechsel

Idle thread

Dispatcher ready queue in Windows

92

Stichworte

Notizen

Prof. W. Burkard 92

Überblick Echtzeit-Scheduling

● Echtzeitsysteme fordern die Einhaltung von Zeitvorgaben● Diesem Scheduling-Ziel werden alle anderen Aspekte untergeordnet

● Die Zeitvorgaben werden immer von der jeweiligen Anwendung definiert: Man gibt vor, wie lange die Anwendung im Maximalfall für die Reaktion auf einzelne Ereignisse benötigen darf.

Beispiel Flugzeug, das von Computern gesteuert wird:■ Flugdaten sind erforderlich, die in bestimmten Intervallen verarbeitet werden müssen:■ Beschleunigungswerte in x- y- und z-Richtung alle 5 msec■ Werte der Drehung in die drei Richtungen alle 40 msec■ Außentemperatur jede Sekunde■ Absolute Position des Flugzeugs alle 3 Sekunden■ Das Display im Cockpit wird alle 300 msec aktualisiert

Man unterscheidet:■ Strikte Echtzeitsysteme = Verletzung einer Zeitvorgabe bedeutet meist eine Katastrophe, die

unter allen Umständen zu vermeiden ist (Beispiel Überdrucksignal wird verspätet umgesetzt in Ventil öffnen � Explosionsgefahr)

■ Schwache Echtzeitsysteme = Verletzung einer Zeitvorgabe ist nach Möglichkeit zu vermeiden, hat aber nur störenden/ärgerlichen Charakter, keine katastrophalen Konsequenzen (Beispiel Behandlung multimedialer Daten bei denen Verzögerungen und Verschiebungen zwischen Ton- und Bildsignal bis zu einem gewissen Grad toleriert werden können)

Marcus
Schreibmaschinentext
symmetrisches Multiprozessing: 1) Unterstützung mehrer Prozessoren 2) alle gleichwertig assymmetrisches ,, 1) einer kümmert sich ums NUR um BS 2) die anderen/der andere um den Rest man kann keinen Idle-Prozess auf Real-Time setzen Scheduling=Strategie Dispatching - dispatcher stellt funktionen zur durchführung der zustandsübergänge zur verfügung
Marcus
Bleistift
Marcus
Schreibmaschinentext
wenn Forderung erfüllt -> Real- Time
Marcus
Schreibmaschinentext
schwache Echtzeit-Systeme können Forderungen nicht erfüllen -z.B. Windows -bei brennen -bei wiedergabe für technische Prozesse ist striktes Echtzeitsystem von nöten!
Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
Leerlauf im Taskmanager
finmar01
Linien
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
Aging
finmar01
Beschriftung
Quantum
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Linien
Page 48: Betriebssysteme   Ausgearbeitet

93

Stichworte

Notizen

Prof. W. Burkard 93

Allgemein umfasst eine Echtzeitanwendung eine Menge von Einzelaktivitäten, die sporadisch oder periodisch auftreten können:

Hierfür gibt es die Kenngrößen:

■ Bereitzeit (r ready time) = Frühestmöglicher Ausführungsbeginn■ Frist ( d deadline) = Spätester Zeitpunkt für die Beendigung einer Aktivität■ Ausführungszeit

(∆∆∆∆e execution time) = Worst-Case-Abschätzung für das benötigte Zeitintervall zur Erledigung der Aktivität

■ Periode (∆∆∆∆p ) = In welchen zeitlichen Abständen wiederholt sich die Aktivität

■ Phase ( ∆∆∆∆h ) = Versatz des Ausführungsbeginns relativ zum Periodenanfang

Formalisierung der Zeitvorgaben

sporadisch

periodisch

r d∆∆∆∆e

r1 r3 = d2

∆∆∆∆e∆∆∆∆h

r2 = d1

∆∆∆∆e

∆∆∆∆p

94

Stichworte

Notizen

Prof. W. Burkard 94

Gängige Scheduling - Ansätze

● Polled LoopCPU fragt in einer Schleife alle Geräte ab und verarbeitet neu eintreffende Daten sofort

� schlechte Lösung, wenn bei der Verarbeitung Daten an anderem Gerät eintreffen

● Interruptgesteuerte SystemeCPU führt leere Schleife aus (idle loop). Geräte lösen Interrupt aus, wenn Daten zu bearbeiten sind. In Interrupt-Service-Routine verarbeitet CPU die Daten. � schlechte Lösung, wenn sich Interrupts häufen (Interrupt in einem Interrupt, d.h. niederpriores Gerät kommt nicht mehr durch)

● Earliest Deadline FirstAbarbeitung desjenigen Prozesses durch die CPU, der in der kürzesten Frist fertig sein soll.Problematisch, wenn alle Prozesse gleiche Fristen haben, z.B. in einem Notfallszenario

● Minimal Processing Time First

● Abarbeitung des Prozesses mit der minimalen restlichen Bedienzeit, also SJF.Konsequenz: eventuell wird kurzer unwichtiger Prozess vorgezogen

● Rate-Monotonic-SchedulingHaben alle Tasks feste Perioden, so vergebe man feste Prioritäten, wobei die höchste Priorität der Task mit der höchsten Frequenz erhalte (Details siehe Folie 97)

● Foreground/Background SchedulingUnterteile auch im Echtzeitsystem die Tasks in drei Kategorien: realtime-kritisch, realtime-unkritisch, zu-erledigen-wenn-Zeit-verfügbar. Optimiere für jede Kategorie separat.

Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
Kenngrößen für Echtzeitsystem
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Schreibmaschinentext
für Echtzeit!
finmar01
Kreis
Page 49: Betriebssysteme   Ausgearbeitet

95

Stichworte

Notizen

Prof. W. Burkard 95

Earliest Deadline First (EDF)

● Echtzeit-Scheduling-Verfahren bei dem immer dem Task mit der am nächsten in der Zukunft liegenden Frist die CPU gegeben wird,

● Setzt man Frist = Priorität, so hat man im Prinzip ein prioritätsbasiertes Scheduling

● Non-preemtiv: Task bleibt bis zu einer EA oder freiwilligen Aufgabe auf der CPU

● Preemptiv: Kontextwechsel erfolgt, sobald ein Task mit näher in der Zukunft liegenden Frist rechenbereit wird (z.B. Bereitzeit eines Tasks mit kürzerer Deadline wurde überschritten)

● Non-preemptiv-Variante ist nicht optimal, da sie nicht immer eine funktionierende Reihenfolge findet, selbst wenn es diese gibt ! Beispiel:

96

Stichworte

Notizen

Prof. W. Burkard 96

Preemptives Earliest Deadline First (EDF)

● Preemptives EDF kann sich auf die Tasks konzentrieren, deren Bereitzeit bereits erreicht bzw. überschritten ist.

● Warum ? Weil durch die Unterbrechbarkeit bereits laufender Tasks „Korrekturen“ jederzeit möglich sind.

In unserem Beispiel gilt somit:■ Es startet P1, der zum Zeitpunkt 2 endet.

■ Jetzt wird aber P3 gestartet, aber zum Zeitpunkt 4 unterbrochen, um dann P2 auf die CPU zu lassen

■ P2 endet fristgerecht und der „Rest“ von P3 wird ebenfalls fristgerecht zu Ende gebracht.

Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
non-preemtiv
finmar01
Beschriftung
auch aber mit optimal Verwaltung
finmar01
Rechteck
finmar01
Beschriftung
bei preemtiv würde das stück p3 laufen
finmar01
Linien
Page 50: Betriebssysteme   Ausgearbeitet

97

Stichworte

Notizen

Prof. W. Burkard 97

Rate-Monotonic-Scheduling (RMS)

● Verbreitetes Verfahren im Echtzeitbereich● Basiert auf statischen Prioritäten● Eignet sich besonders zum Scheduling in periodischen Systemen● RMS ordnet Prioritäten in Abhängigkeit von der Periode der einzelnen Aktivitäten zu● Die kürzeste Periode erhält die höchste Priorität � hochfrequente Aktivitäten werden bevorzugt● � minimale Verzögerung für hochfrequente Tasks, damit Minimierung der Wahrscheinlichkeit

einer Fristverletzung für diese Tasks● Aber: verstärkte Zerstückelung niederfrequenter Aktivitäten aufgrund ständiger Kontextwechsel

hin zu Tasks mit höherer Priorität● Die Prozessorauslastung eines Tasks ist dabei das Verhältnis ∆e / ∆p● Die Gesamtprozessorauslastung ist die Summe aller Prozessorauslastungen aller Tasks● Es wurde bewiesen, dass bei einer Gesamtprozessorauslastung von unter 70 % (genauer ln 2)

RMS immer eine Ausführungsreihenfolge liefert, bei der alle Zeitvorgaben eingehalten werden können.

● Umgekehrt gilt: Bei über 70% Gesamtauslastung gibt es nicht immer eine Lösung bei der alle Zeitvorgaben eingehalten werden können.

98

Stichworte

Notizen

Prof. W. Burkard 98

RMS an einem Beispiel (I)

● Gegeben seien zwei Tasks t1 und t2, wobei gelte: t1 habe Periode 50 msec und Ausführungszeit 25 msec für t2 gelte: Periode sei 100 msec und Ausführungszeit 40 msec

● Daraus folgen die Prozessorauslastungen sind t1 = 50% und t2 = 40%, also Gesamtprozessorauslastung 90%. Wird das gehen?

● Ansätze: in Fall a sei t1 wichtiger als t2 ( Fall b umgekehrt )

Marcus
Beschriftung
nicht RMS
Marcus
Beschriftung
RMS
Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Textfeld
Rate Monotonic Scheduling (RMS) ist ein Prioritätsscheduling-Verfahren für unterbrechbare, periodische Jobs. Es wird häufig in Echtzeit-Systemen eingesetzt. Die Prioritäten werden statisch nach der Periodendauer eines Jobs festgelegt: je kürzer die Periodendauer eines Jobs, desto höher ist seine Priorität. Aperiodische Jobs können innerhalb eines fiktiven periodischen Jobs ausgeführt werden.
Marcus
Schreibmaschinentext
Periode 50ms Ausführungszeit 25ms
Marcus
Schreibmaschinentext
= 50% Auslastung
Marcus
Linien
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 51: Betriebssysteme   Ausgearbeitet

99

Stichworte

Notizen

Prof. W. Burkard 99

RMS an einem Beispiel (II)

● Nun gelte aber für t2: Periode sei 75 msec und Ausführungszeit 30 msec● Wie sieht die Lösung aus ?

● Was passiert wenn die Prioritäten vertauscht werden ?● Warum ist das so ? � über 70% Gesamtauslastung

Marcus
Schreibmaschinentext
RMS versagt alles unter einer Prozessorauslastung von 70% geht, darüber kann RMS versagen (muss aber nicht) CPU-Gebrauchszeit Bearbeitungszeit = CPU-Auslastung
Marcus
Unterstreichen
Marcus
Schreibmaschinentext
deterministisch - bei wiederholter gleicher Eingabe immer gleiche Ausgabe bei endlicher Zeit
finmar01
Linien
Page 52: Betriebssysteme   Ausgearbeitet

100

Stichworte

Notizen

Prof. W. Burkard 100

Interprozess-Kommunikation

Durch Nutzung gemeinsamen Speichers (egal, ob Hauptspeicher oder Plattenplatz) könnenProzesse miteinander kommunizieren, indem sie Daten austauschen.

Problem: hierbei entstehen zeitkritische Abläufe (race conditions)

Def.: Eine Situation, in der mindestens zwei Prozesse auf gemeinsam genutzte Daten zugreifen,und die Ergebnisse von der zeitlichen Reihenfolge des Zugriffs abhängen, nennt man zeitkritischen Ablauf (race condition)

Beispiel: gespoolte DruckausgabeIdee: in einer Tabelle stehen alle zu druckenden Dateien, Variable out zeigt auf die nächste zu druckende Datei, Variable in zeigt auf nächsten freien Tabellenplatz. Zwei ProzesseA und B wollen nahezu gleichzeitigetwas ausdrucken.Katastrophe: BS wechselt von A nach BVOR dem vollständigen Ende des Zugriffs !!!

1 2 test.c 3 note.xls4 dipl.doc5 kase.xls6 folie.ppp7 8

out = 2in = 5

Prozeß A

Prozeß B

Spooler

101

Stichworte

Notizen

Prof. W. Burkard 101

Race conditions an einem Beispiel

In einer Warteschlange des BS seien mehrere Prozesse eingehängt und warten auf eineBearbeitung:

Für das Einhängen des Prozesses A gilt:• Lese den Anker: PointToB• Setze den NextZeiger: Point ToB• Setze den Anker: Point ToA

Was passiert, wenn die Operationen nicht in einem Stück durchgeführt werden ?

Für das Entfernen von B gilt:• Lese den Anker: PointToB• Lese den NextZeiger: PointToC• Setze den Anker: PointToC

Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
Page 53: Betriebssysteme   Ausgearbeitet

102

Stichworte

Notizen

Prof. W. Burkard 102

zeitkritische Bereiche

Def: Derjenige Teil eines Prozesses, in dem der Zugriff auf gemeinsam benutzten Speicher stattfindet, wird als (zeit-)kritischer Bereich des Prozesses bezeichnet.

Idee: Probleme mit zeitkritischen Abläufen lassen sich vermeiden, wenn sich niemals zwei oder mehr Prozesse gleichzeitig in einem kritischen Bereich befinden.

==> wechselseitiger Ausschluß <==

Für ein funktionierendes System fordern wir also:

1. nur ein Prozeß darf sich zu einem Zeitpunkt in einem kritischen Bereich befinden

2. Nur durch das Eintreten in einen kritischen Bereich blockiert ein Prozeß andere Prozesse

3. Kein Prozeß soll unendlich lange warten müssen, bis er in seinen kritischen Bereich darf

4. kein Prozeß darf Annahmen über Prozessoranzahl oder Ausführungsgeschwindigkeit seiner selbst oder anderer Prozesse machen

103

Stichworte

Notizen

Prof. W. Burkard 103

aktives Warten

= (schlechte) Lösung des Problems des wechselseitigen Ausschlusses

Ansatz 1: Sperren aller Unterbrechungen beim Eintritt in einen kritischen Bereich- sinnvolle Lösung für diverse Prozesse des Betriebssystems- gefährliche Lösung, bei Nutzung durch Anwenderprozesse

Ansatz 2: Eine globale Sperrvariable kann die Werte 0 oder 1 annehmenNur wenn Sperrvariable=0 geht ein Prozeß in den kritischen Bereichund setzt als erstes die Variable auf 1.Problem: siehe Beispiel “gespoolte Druckausgabe”

Ansatz 3: striktes Alternieren durch aktives Warten: Jeder Prozeß hat einen Kennwert W und wartet darauf, daß die Schaltvariable SV diesen Wertannimmt. Nach Beenden des kritischen Bereiches wird SV weitergeschaltet,

also: warten, bis SV == WEintreten in krit. Bereich....Austreten aus kritischem BereichSV weiterschalten

Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Unterstreichen
finmar01
Hervorheben
finmar01
Beschriftung
Interrupts
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Beschriftung
beide versuchen auf einmal auf knopf zu drücken
finmar01
Hervorheben
finmar01
Beschriftung
wie im Amt Nummer ziehen
Page 54: Betriebssysteme   Ausgearbeitet

104

Stichworte

Notizen

Prof. W. Burkard 104

Erster Versuch zur Prozess-Synchronisation

Die einfachste Idee zur Erreichung eines gegenseitigen Ausschlusses besteht darin, einen Prozess beim Eintreten in einen kritischen Abschnitt so lange warten zu lassen, bis der Abschnitt wieder frei ist.

Für zwei parallel ablaufende Prozesse würde das wie folgt aussehen:

Die gemeinsame Variable dran sei mit 1 initialisiert, so erreichen wir den gegenseitigen Ausschluss.

Wo ist das Problem ?Beide Prozesse können nur abwechselnd in den kritischen Bereich !

� Ein Prozess hindert sich eventuell selbst daran, ein zweites Mal in den krit. Bereich zu gehen!!!

105

Stichworte

Notizen

Prof. W. Burkard 105

Zweiter Versuch zur Prozess-Synchronisation

Wir wollen beide Prozesse in beliebiger Reihenfolge synchronisierenEin Prozess achte also nur darauf, dass der andere nicht drin ist.

Die Variablen drin1 und drin2 seien beide mit false initialisiert.

Wo ist jetzt das Problem ?Jetzt gehen eventuell BEIDE gleichzeitig in den kritischen Abschnitt ! Warum ?Hilft es die beiden Zeilen des ersten grauen Bereiches zu vertauschen?

Marcus
Unterstreichen
Marcus
Unterstreichen
Page 55: Betriebssysteme   Ausgearbeitet

106

Stichworte

Notizen

Prof. W. Burkard 106

Wie kommt ein Prozess voran, wenn der andere kein Interesse bekundet hat ?

Wie ist der Ablauf, wenn beide nahezu zeitgleich (im ersten grauen Bereich) Interesse bekunden ?

aktives Warten: Petersons Lösung (von 1981)

● Die Variablen Interesse1 und Interesse2 sowie dran sind globale, gemeinsame Variablen● Die Variablen Interesse1 und Interesse2 sind beide mit false initialisiert.

107

Stichworte

Notizen

Prof. W. Burkard 107

Petersons Lösung in Java / C / C++#define FALSE O #define TRUE 1#define N 2 /* Anzahl der Prozesse */

int dran; /* Wer ist an der Reihe ? */int interessiert [N]; /* Alle Werte sind anfangs O (FALSE) */

void enter_region (int prozess) /* prozess: wer tritt ein (O oder 1) */{

int anderer; /* Nummer des anderen Prozesses */

anderer = 1 - prozess; /* Konkurrent des Prozesses */interessiert[process] = TRUE; /* ich zeige mein Interesse */dran = prozess; /* setze Marke: ich bin dran! */while ( dran == prozess /* Wer dran zuletzt setzt, muss warten, */

&& interessiert[anderer] == TRUE) /* wenn auch der andere rein will */; /* leere Anweisung, NoOP */

}

void leave_region (int prozess) /* prozess , der den Bereich verläßt */{

interessiert[prozess] = FALSE; /* gibt das Verlassen des krit. Bereiches bekannt */}

Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Schreibmaschinentext
Ansatz 3 funktioniert, aber sehr uneffizient und unpraktikabel
finmar01
Schreibmaschinentext
wichtig!!!
finmar01
Polygon
finmar01
Textfeld
kritischer bereich
Page 56: Betriebssysteme   Ausgearbeitet

108

Stichworte

Notizen

Prof. W. Burkard 108

Sleep und Wakeup

wichtige Erkenntnis: Durch aktives Warten wird Prozessorzeit verschwendet!(Prozesse prüfen aktiv in einer Schleife das Eintreffen einer Änderung)

Dazu kommt das Prioritäteninversionsproblem:Ein höher priorisierter Prozeß H wartet unendlich lang auf das Verlassen des krit. Bereiches eines niedriger priorisierten Prozesses L, da der Scheduler den rechenbereiten Prozeß H stets vorzieht => L kommt nicht mehr zum Zug und damit nicht aus dem kritischen Bereich

Neue Idee: wartende Prozesse “gehen schlafen” (werden in den Zustand “blockiert” gesetzt) und lassen sich nach Verbesserung der Lage wieder wecken:

Aufrufender Prozeß geht schlafen ==> Funktion sleep()Prozeß mit der Nr. <n> soll aufwachen ==> Funktion wakeup(xyz)

109

Stichworte

Notizen

Prof. W. Burkard 109

das Erzeuger-Verbraucher-Problem

... oder: das Ärgernis mit den verlorenen Weckrufen

Zwei Prozesse benutzen einen Ringpuffer, der eine schreibt Daten hinein, der andere ließt diese aus.

Ist der Puffer voll und der Schreiber hat etwas zum eintragen, legt er sich schlafen und läßt sich vom Verbraucher wecken, wenn jener ein Element entfernt hat. (Denn dann ist wieder Platz im Ring)

Ist der Puffer leer und der Leser soll etwas lesen, legt er sichschlafen und läßt sich vom Schreiber wecken, wenn der etwas eingetragen hat.

N Elementemaximalim Ring

PROBLEM: Eine gemeinsam benutzte Variable ANZAHL nennt die Anzahl der im Puffer befindlichen Elemente. Der Zugriff auf diese Variable ist kritisch !!

Marcus
Schreibmaschinentext
Prioritäteninversionsproblem -> Klausur?
Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Textfeld
Das Erzeuger-Verbraucher-Problem ist eine klassische, abstrakt formulierte Problemstellung der Prozesssynchronisation, welche eine Regelung der Zugriffsreihenfolge auf eine Datenstruktur durch elementerzeugende (schreibende) und elementverbrauchende (lesende) Prozesse bzw. Threads thematisiert. Die Zugriffsregelung soll verhindern, dass ein verbrauchender Prozess auf die Datenstruktur zugreift, wenn die Datenstruktur keine Elemente enthält und eine Entnahme eines Elements aus der Datenstruktur somit nicht möglich ist. Ist die Aufnahmekapazität der Datenstruktur beschränkt, so soll die Zugriffsregelung ferner verhindern, dass ein erzeugender Prozess auf die Datenstruktur zugreift, wenn die Aufnahmekapazität der Datenstruktur bereits ausgeschöpft ist.
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Bleistift
Page 57: Betriebssysteme   Ausgearbeitet

110

Stichworte

Notizen

Prof. W. Burkard 110

das Erzeuger-Verbraucher-Problem

Erzeuger-Algorithmus:1. Nimm nächstes Element2. Lies die Variable Anzahl3. Wenn Puffer voll, dann “Schlafen-gehen”4. Element in den Puffer eintragen5. Anzahl um 1 erhöhen6. Wenn die Anzahl jetzt 1 lautet, “Leser-wecken”

Leser-Algorithmus:1. Lies die Variable Anzahl2. Wenn Puffer leer, “Schlafen-gehen”3. Element lesen4. Anzahl um 1 erniedrigen5. Wenn Puffer jetzt einen freien Platz hat, “Erzeuger-wecken”

Die beiden“gefährlichen”Stellen, hierdarf derScheduler nichtden Prozeßwechseln, sonstbricht dieSynchronisation

111

Stichworte

Notizen

Prof. W. Burkard 111

das Leser-Schreiber-Problem

● auf eine Datei dürfen gleichzeitig mehrere Prozesse lesend zugreifen, ABER:● wenn ein Prozeß schreibend zugreift, darf kein anderer Prozeß (lesend oder schreibend)

agieren.Lösung 1: (Bevorzugt die Leser-Prozesse)Schreiber: Sperrt Datei, schreibt Daten, gibt Datei freiLeser: (Nur der erste Leser!! :) sperrt die Datei

ließt die Daten (Nur der letzte Leser!! :) gibt Datei wieder frei

Lösung 2: (Bevorzugt Schreiber-Prozesse)grundlegendes Konzept:

Prozesse mit Lesewunsch überprüfen die Existenz von schreibenden bzw. schreibwilligen Prozessen und blockieren, bis die Schlange der Schreiber leer ist.

Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 58: Betriebssysteme   Ausgearbeitet

112

Stichworte

Notizen

Prof. W. Burkard 112

Semaphore: die IdeeIdee des holl. Mathematikers Dijkstra (1965):Man zähle Wecksignale mit Hilfe einer Integer-Variablen � Name: Semaphore(Semaphore sind Signalmasten in der Seefahrt und bei Eisenbahnnetzen)

Def.: Eine Semaphore s ist eine Integervariable, die (aus Benutzersicht!) nicht negativ werden kann und auf der nur zwei Operationen DOWN (auch P genannt) und UP (auch V genannt) definiert sind:

DOWN(s) = P(s) = Reduziere s um 1, wenn s > 0, (sonst geht rufender Prozeß schlafen)UP(s) = V(s) = Erhöhe s um 1 und wecke einen der schlafenden Threads (falls da)

WICHTIG:● Das Überprüfen auf 0, ● das Verändern des Wertes von s ● und das Schlafengehen bzw. „Task wecken“ sindeine untrennbare, atomare Aktion des Betriebssystems!!

Struktur einesSemaphors Zähler

Zeiger auf wartende Threads/Tasks

113

Stichworte

Notizen

Prof. W. Burkard 113

Semaphore: die Implementierung

Marcus
Schreibmaschinentext
Semaphore = wie ein Schalter - mit Hilfe von Integer Variablen (kann hinter den "Kulissen" wohl negativ werden) - wenn Semaphore unten (s<=0) und jemand drückt DOWN, dann bin ich blockiert oder schlafend bis jemand UP drückt und die Semaphore mich weckt.
Marcus
Polygon
Marcus
Beschriftung
Mechanismus des Betriebssystems
Marcus
Schreibmaschinentext
P = DOWN V = UP bei jedem UP wird ein schlafender Prozess geweckt
Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Textfeld
kritischer bereich
Page 59: Betriebssysteme   Ausgearbeitet

114

Stichworte

Notizen

Prof. W. Burkard 114

wechselseitiger Ausschluß mit Semaphoren

Zwei Prozesse 1 und 2 konkurrieren um den Eintritt in einen kritischen Bereich.Semaphor s ist initial auf 1 gesetzt

Prozeß 1:... beliebige Aktionen ...down(s) <= Eintritt in kritischen Bereich...kritischer Bereich ...up(s) <= Austritt aus dem kritischen Bereich

Prozeß 2:... beliebige Aktionen ...down(s) <= Eintritt in kritischen Bereich...kritischer Bereich ...up(s) <= Austritt aus dem kritischen Bereich

115

Stichworte

Notizen

Prof. W. Burkard 115

Erzeuger-Prozess:

LOOPproduziere(einElement);P(frei);P(mutex);fuelleInPuffer(einElement);V(mutex);V(belegt);

END

Erzeuger-Verbraucher-Problem gelöst mit Semaphoren

Zwei Semaphore „frei“ und „belegt“ werden benutzt um zwischen den Prozessen die Zustände des Puffers zu signalisieren. Der Semaphor „mutex“ dient nur dazu, den Zugriff auf den Puffer exklusiv zu machen. Der Puffer fasst N Elemente. Initial gilt:

Semaphor frei = N, belegt = 0, mutex = 1;

Verbraucher-Prozess:

LOOPP(belegt);P(mutex);holeAusPuffer(einElement);V(mutex);V(frei); verarbeite(einElement);

END

Marcus
Schreibmaschinentext
- Semaphore ist Lösung für Eintritt in kristischen Bereich - Initialwert stellt klar wer alles in einen kritischen Bereich darf normal init = 1 wenn = 2 dann können 2 rein
Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Textfeld
Marcus
Schreibmaschinentext
gegenseitig wechselseitiger ausschluss
finmar01
Hervorheben
Page 60: Betriebssysteme   Ausgearbeitet

116

Stichworte

Notizen

Prof. W. Burkard 116

Leser-Schreiber-Problem gelöst mit Semaphoren

Hier Bevorzugung der Leser: ein gemeinsamer Zähler „AnzahlLeser “ zählt die Anzahl der Leser im kritischen Abschnitt. Ein Semaphor „LeseSem“ schützt diesen Zähler, ein zweiter Semaphor „ lock “ schützt den exklusiven Zugang zum Lesen/Schreiben. Initial gilt:AnzahlLeser = 0; lock = 1; ZaehlerSemaphor = 1;

Leser-Prozess:

{ ... // tue irgendwas anderes

P(ZaehlerSemaphor);

AnzahlLeser++;

if (AnzahlLeser==1) then P(lock);V(ZaehlerSemaphor);

... leseDieDaten(); ...

P(ZaehlerSemaphor);

AnzahlLeser--;

if (AnzahlLeser==0) then V(lock);

V(ZaehlerSemaphor);... // tue irgendwas anderes

}

Schreiber-Prozess:

{... // tue irgendwas anderesP(lock);... modifiziereDieDaten(); ...V(lock);... // tue irgendwas anderes

}

ein Schreiber im kritischen Abschnitt:� der erste Leser, der kommt,

wird durch lock blockiert.

Kommen weitere Leser, so warten diese auf ZaehlerSemaphor

117

Stichworte

Notizen

Prof. W. Burkard 117

Leser-Schreiber-Problem gelöst mit Semaphoren

Bevorzugung der Schreiber:

ein Schreiber erhält frühestmöglich Zutritt zum kritischen Abschnitt, d.h. ebenfalls wartenden Lesern wird der Zugriff so lange verwehrt, bis keine Schreiber mehr warten. Die Lösung umfasst:

■ 2 Zähler AnzahlLeser und AnzahlSchreiber,

die die Anzahl der Leser/Schreiber zählen

■ 2 Semaphore LeserSem und SchreiberSem , die diese Zähler schützen

■ 1 Semaphor lock , der wie vorhin den exklusiven Zugriff auf die Daten schützt

■ 1 Semaphor R erzwingt die Bevorzugung der Schreiber vor den Lesern

■ 1 Semaphor M stellt sicher, dass maximal ein Leser einem Schreiber zuvorkommt, egal

wie der Scheduler agiert! Beispiel: zwei Leser und ein Schreiber greifen fast gleichzeitig zu: im schlimmsten Fall hat dann nur ein Leser die Nase vorn (siehe Folgefolien)

Die Initiliasierung sieht so aus:Int AnzahlLeser = 0, AnzahlSchreiber = 0;

Semaphor LeserSem=1, SchreiberSem=1, R=1, M=1, lock=1;

Marcus
Durchstreichen
Marcus
Beschriftung
ZählerSem
Marcus
Unterstreichen
Marcus
Unterstreichen
Page 61: Betriebssysteme   Ausgearbeitet

118

Stichworte

Notizen

Prof. W. Burkard 118

Leser-Schreiber-Problem gelöst mit Semaphoren

Der Leserprozess bei Bevorzugung der Schreiber

{ ... // tue irgendwas anderesP(M); // so kommt auf jeden Fall nur ein Leser durch!

P(R); // hier geht’s nur weiter, wenn kein Schreiber aktiv istP(LeserSemaphor);

AnzahlLeser++;if (AnzahlLeser==1) then P(lock);

V(LeserSemaphor);V(R);

V(M);

... leseDieDaten(); ... // dies hier ist der kritische Abschnitt

P(LeserSem);AnzahlLeser--;if (AnzahlLeser==0) then V(lock); //kein Leser mehr da � Freigabe

V(LeserSem);... // tue irgendwas anderes

}

119

Stichworte

Notizen

Prof. W. Burkard 119

Leser-Schreiber-Problem gelöst mit Semaphoren

Der Schreiberprozess bei Bevorzugung der Schreiber

{ ... // tue irgendwas anderesP(SchreiberSemaphor);

AnzahlSchreiber++; // der erste Schreiberif (AnzahlSchreiber == 1) then P(R); // sperrt die Leser

V(SchreiberSemaphor);

P(lock); // Sperre Datei... bearbeiteDieDaten(); ... // dies hier ist der kritische Abschnitt

V(lock); // entsperre Datei // es können aber nur andere Schreiber dran

P(SchreiberSemaphor);AnzahlSchreiber--; // der letzte Schreiberif (AnzahlSchreiber == 0) then V(R); // gibt die Leser wieder frei

V(SchreiberSemaphor);... // tue irgendwas anderes

}

Marcus
Unterstreichen
Marcus
Unterstreichen
Page 62: Betriebssysteme   Ausgearbeitet

120

Stichworte

Notizen

Prof. W. Burkard 120

Semaphore in Echtzeitsystemen

Durch kritische Abschnitte können Prozessprioritäten verletzt werden, Beispiel:

● P3 macht zuerst das P(S), gewinnt das Rennen um den kritischen Abschnitt

● P2 und P1 werden durch ihr P(S) blockiert, P2 liegt aber in der Queue der Semaphore S vorne, da der Task das P(S) früher abschickt als P1

● Das V(S) von P3 lässt dann P2 weiterlaufen, obwohl der höher priorisierte P1 ebenfalls weiterlaufen könnte...

● Die Lösung: Einreihung der Tasks in die Semaphor-Queue nicht chronologisch sondern nach Prozess-Priorität !

121

Stichworte

Notizen

Prof. W. Burkard 121

Semaphore in Echtzeitsystemen

Problem 2:● Ein Prozess P3 mit niedrigster Priorität sei im kritischen Abschnitt● Ein Prozess P1 hoher Priorität wartet am zugehörigen Semaphor● Was passiert, wenn ein oder mehrere Prozesse P2 mittlerer Priorität nun P3 ständig

verdrängen? � Wichtiger Prozess P1 wird unnötig lange ausgestoppt!!● Lösung: Prioritätsvererbung

= der Prozess im kritischen Abschnitt erhält dynamisch die höhere Priorität eines anderen Prozesses, der am entsprechenden Semaphor auf Zugang wartetBei Verlassen des kritischen Abschnitts fällt der Prozess wieder auf seine alte Priorität

Unnötig!!

Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
Page 63: Betriebssysteme   Ausgearbeitet

122

Stichworte

Notizen

Prof. W. Burkard 122

Prioritätsvererbung durch Semaphore

Problem 2 gelöst durchPrioritätsvererbung

P3 erhält die hohe Priorität von P1 � Scheduler wählt NICHT P2 !

P3 fällt auf alte Priorität zurück

P1 erhält nun sofort die CPU,P2 kommt erst danach

123

Stichworte

Notizen

Prof. W. Burkard 123

Ereigniszähler

Vermeidung zeitkritischer Abläufe mit Semaphoren = wechselseitiger Ausschluß

Ereigniszähler = Lösung OHNE wechselseitigen Ausschluß

Def. Ereigniszähler E sind Integervariablen, die nur erhöht werden und auf denen folgende Operationen definiert sind:

read(E) liefert den aktuellen Wert von EAdvance(E) erhöht den Wert von E um 1 (dies ist eine atomare Funktion)Await(E,i) wartet bis E mindestens den Wert i erreicht

Merke: Ereigniszähler beginnen immer bei 0 und werden stets nur erhöht !!!

Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Durchstreichen
Page 64: Betriebssysteme   Ausgearbeitet

124

Stichworte

Notizen

Prof. W. Burkard 124

Lösung des Erzeuger-Verbraucher-Problems mit zwei Ereigniszählern

N = ( z.B.) 100 /* Größe des Puffers */Ereigniszaehler rein=0, raus=0; /* zählen die eingefügten/entnommenen Einträge */

Erzeuger:int zaehler=0; /* alle Einträge werden durchnummeriert */Schleife: zaehler inkrementieren

await(raus, zaehler-N); /* warten bis Platz im Puffer ist */Element einfügen ...advance(rein);

Verbraucher:int vzaehler=0;Schleife: vzaehler inkrementieren

await(rein,vzaehler) /* warte bis ein Element im Puffer ist */Element entnehmen...advance(raus)

125

Stichworte

Notizen

Prof. W. Burkard 125

Nachrichtenaustausch

Problem aller bisherigen Synchronisationsverfahren: Man braucht einen GEMEINSAMEN Speicherplatz für die partizipierenden Prozesse !!

Erkenntnis: Dann funktionieren diese Verfahren nicht über Rechnergrenzen hinweg !!

Problem: Wir brauchen ein Synchronisationsverfahren auch in verteilten Systemen

Idee: Synchronisation durch Nachrichtenaustausch

Wir definieren zwei Systemfunktionen:

sende(Ziel, Nachricht) Sendet die Nachricht an das angegebene Zielempfange(Quelle, Nachricht) Empfängt eine Nachricht von der Quelle und blockiert,

d.h. wartet, solange keine Nachricht kommt.

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 65: Betriebssysteme   Ausgearbeitet

126

Stichworte

Notizen

Prof. W. Burkard 126

Lösung des Erzeuger-Verbraucher-Problems mit Nachrichten

N = ( z.B.) 100 /* Größe des Puffers */

Erzeuger:

Schleife: empfange(Verbraucher, leere Nachricht)... setze Element in die leere Nachricht ...sende(Verbraucher, Nachricht mit Element)

Verbraucher:

Wiederhole 100 mal: sende(Erzeuger, leere Nachricht)Schleife: empfange(Erzeuger, Nachricht mit Element)

... entnehme Element aus der Nachricht und verarbeite es...sende(Erzeuger, leere Nachricht)

127

Stichworte

Notizen

Prof. W. Burkard 127

Monitore, die IdeeProblem: Alle bisherigen Konzepte sind kompliziert und sehr sensibel bei kleinsten subtilen Fehlern!Beispiel Semaphore:

Verwechseln von P und V oder Vertauschen von geschachtelten P und V: P(frei); P(m); doTheCritAction(); V(frei();V(m);

Idee: man überlasse einem Compiler die richtige Anordnung der Befehle und finde ein höheres, abstrakteres Sprachkonstrukt � den kritischen Bereich (critical region)

Statt: P(s); <kritische Befehle> V(s);

Nun: shared s;

region s do <kritische Befehle>;

Der vom Compiler erzeugte Code garantiert, dass nur einer von mehreren Prozessen im kritischen Code arbeitet.

Monitor1973-74 (!!) haben Hansen und Hoare das Konzept erweitert: Man nehme einen ADT (heute Klasse), der die Aufgabe übernimmt

■ alle darin enthaltenen und von außen ansprechbaren Prozeduren ■ und die lokalen Daten, Variablen und Funktionen

■ durch Synchronisationsmechanismen automatisch zu schützen und

■ den wechselseitigen Ausschluss von Prozessen darin zu garantieren.

Diese Klasse nannte man einen MONITOR

Monitor = Zusammenfassung der

gemeinsam genutzten Daten und

der darauf definierten Zugriffsfunktionen

Marcus
Unterstreichen
finmar01
Durchstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 66: Betriebssysteme   Ausgearbeitet

128

Stichworte

Notizen

Prof. W. Burkard 128

Monitore, das KonzeptMonitor Monitorname ( Parameter )

Datendeklarationen; /* gemeinsame Daten */

ENTRY Funktionsname1 ( Parameter ) { Prozedurkörper }

ENTRY Funktionsname2 ( Parameter ) { Prozedurkörper }

ENTRY Funktionsname3 ( Parameter ) { Prozedurkörper }

...

ENTRY FunktionsnameN ( Parameter ) { Prozedurkörper }

INIT { Initialisierungsanweisungen }

END

Die Initialisierung der Monitordaten erfolgt durch einmaligen Aufruf vonMonitorname(aktuelle Parameter);

Dadurch wird letztendlich der Initialisierungsteil durchlaufen.Prozesse benutzen den Monitor durch Aufruf der Monitorprozeduren in der Form:

Monitorname.Funktionsname ( aktuelle Parameter );

129

Stichworte

Notizen

Prof. W. Burkard 129

Monitore, die Vorteile

● Gemeinsam (durch mehrere Prozesse) bearbeitete Daten werden explizit in der

Programmstruktur sichtbar gemacht

� sie sind in Monitoren organisiert

● Die bereitgestellten Monitorprozeduren definieren allein

die Zugriffsalgorithmen zu den Monitordaten.

● Ein Umgehen der Monitorprozeduren ist nicht möglich

● Monitore kapseln wie Module die gemeinsamen Daten.

Eine Änderung der monitorinternen Datenstrukturen und Algorithmen bleibt für

Prozesse unsichtbar, solange die Schnittstelle unverändert bleibt � information hiding

Marcus
Unterstreichen
finmar01
Durchstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 67: Betriebssysteme   Ausgearbeitet

130

Stichworte

Notizen

Prof. W. Burkard 130

Erzeuger-Verbraucher-Problem gelöst mit einem Monitor

Erzeuger und Verbraucher-Prozesse:

Erzeuger

LOOP{

produziere(Element);Buffer.putInBuffer(Element);

}END

Verbraucher

LOOP{

Buffer.getFromBuffer(Element);verarbeite(Element);

}END

131

Stichworte

Notizen

Prof. W. Burkard 131

Erzeuger-Verbraucher-Problem gelöst mit einem Monitor

Deklaration des Monitors:

Marcus
Unterstreichen
Marcus
Unterstreichen
Page 68: Betriebssysteme   Ausgearbeitet

132

Stichworte

Notizen

Prof. W. Burkard 132

Erzeuger-Verbraucher-Problem gelöst mit einem Monitor

Monitor ist unvollständig ! Was fehlt ?

� Implementierung der beiden zentralen Prozeduren!

Problem : wir brauchen zusätzliche Wartebedingungen zur Kontrolle des Pufferüber-/unterlaufs

Lösung : in Monitoren gibt es Condition-Variable mit nur zwei Operationen:signal(s) = sendet der Condition-Variable s ein Signal zur Befreiung

der an dieser Condition wartenden Taskswait(s) = Task soll an der Condition-Variable s solange warten,

bis ein Signal gesendet wird.

Konsequenz: Der Monitor Buffer muss um zwei Condition-Variable erweitert werden:

VAR frei, belegt: CONDITION

Dann ergeben sich die beiden Monitor-Prozeduren gemäss nächster Folie!

133

Stichworte

Notizen

Prof. W. Burkard 133

Erzeuger-Verbraucher-Problem gelöst mit einem Monitor

Die zentralenMonitor-Prozeduren

Marcus
Unterstreichen
Marcus
Unterstreichen
Page 69: Betriebssysteme   Ausgearbeitet

134

Stichworte

Notizen

Prof. W. Burkard 134

Ein klassisches IPC-Problem

das Philosophenproblem

(oder: die Rangelei um den exklusiven Zugriff auf begrenzte Betriebsmittel )

Problem: Ein Philosoph ißt oder denkt. (richtig ! Das ist eine seehr starke Abstraktion!!)● Es sitzen 5 Philosophen am Tisch mit fünf Tellern und fünf Gabeln● Ein hungriger Philosoph versucht linke und rechte Gabel aufzunehmen, dann ißt er ein

Weilchen, danach legt er die Gabeln zurück und denkt wieder.

Aufgabe: Man finde für die Philosophen Mittagszeit bei den Philosopheneinen funktionierenden Algorithmus !!

Einfache, aber fehlerhafte Lösung:

Philosoph denkt ...nimmt linke Gabel auf

nimmt rechte Gabel aufißt von seinem Teller

legt linke Gabel zurücklegt rechte Gabel zurück

135

Stichworte

Notizen

Prof. W. Burkard 135

prinzipieller Lösungsansatz für

das Philosophenproblem

● Man muß den Zugriff auf die beiden Gabeln und andere gemeinsame Ressourcen regeln● Es gibt also eine Semaphore G für den wechselseitigen Ausschluß

● Jeder Philosoph befindet sich in einem von drei Zuständen: denkend, hungrig, essend● Es gibt also je Philosoph i eine Zustandsvariable Z(i) 1<=i<=5 mit den Werten d,h,e

● Ein hungriger Philosoph ist blockiert, wenn er nicht beide Gabeln erhält. (mit leerem Magen kann man nicht denken)

● Es gibt somit je Philosoph eine Semaphore S(i) 1<= i<=5

● Hat ein Philosoph seine Mahlzeit beendet, so schaut er, ob seine Nachbarn jetzt essen könnten und weckt sie gegebenenfalls auf

Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Unterstreichen
Marcus
Unterstreichen
Page 70: Betriebssysteme   Ausgearbeitet

136

Stichworte

Notizen

Prof. W. Burkard 136

Alles klar ??

1. Was ist ein zeitkritischer Ablauf ?2. Zeigen Sie an folgendem Beispiel, daß der Algorithmus SJF bei nicht-gleichzeitigem

Vorliegen der Jobs nicht korrekt arbeitet: Es sollen zum Zeitpunkt 0 zwei Jobs A und B mit vermuteten Laufzeiten 4 und 8 Min. vorliegen. Nach 5 Minuten kommen drei weitere Jobs C,D und E mit je 2 Min. Laufzeit dazu. Wie ist die Ausführungsreihenfolge und die durchschnittliche Verweilzeit? Wie wären die Werte, wenn die Jobs gleichzeitig vorlägen?

3. Was ist der Unterschied zwischen aktivem Warten und Blockieren ?4. Nennen Sie Argumente für ein kleines bzw. großes Quantum beim Round-Robin.5. Was passiert, wenn beim Round-Robin ein Prozeß mehrmals in der Schlange steckt ?

Sehen Sie einen Grund, dieses zu gestatten ?6. In einer Bäckerei verkaufen n Verkäufer Backwaren. Jeder eintretende Kunde zieht eine

Nummer von einem fortlaufend nummerierten Band. Ein Verkäufer ruft die nächste Nummer auf, sobald er wieder frei ist. So findet jeder Kunde schnellstens den Käufer, der ihn bedient. Skizzieren Sie die Algorithmen für Kunden und Verkäufer (Lösung mittels Semaphore)

Marcus
Hervorheben
Page 71: Betriebssysteme   Ausgearbeitet

137

Stichworte

Notizen

Prof. W. Burkard 137

Aufgaben der Speicherverwaltung

Die Speicherverwaltung ist neben der Prozeßverwaltung die zweite, wesentliche Aufgabe des Betriebssystems.

Teilaufgaben:

• Verwaltung der freien und belegten Hauptspeicherbereiche

• Zuweisung von freiem Speicher an Prozesse, die diesen benötigen

• Rücknahme von Speicher von Prozessen, wenn sie diesen nicht mehr benötigen

• Durchführung von Auslagerungen zwischen Hauptspeicher und Festplatte, wenn derHauptspeicher nicht groß genug ist, um alle Prozesse auf einmal zu halten

138

Stichworte

Notizen

Prof. W. Burkard 138

Speichernutzung bei Einprogramm-Betrieb

• Es wird jeweils nur ein Programm im Hauptspeicher gehalten

• Dieser Prozeß erhält allen, vom Betriebssystem nicht benötigten Speicher

• Eine Speicherverwaltung ist nicht erforderlich, für den Prozess gilt:Prozessadressraum = realer Adressraum, also Prozessadresse = reale Adresse

Gängige Varianten:

Benutzer-programm

Betriebs-system

Gerätetreiberim ROM

Benutzer-programm

Betriebssystemim RAM

Betriebs-system im

ROM

Benutzer-programmerste

Speicheradresse

höchsteSpeicheradresse

Marcus
Schreibmaschinentext
Speicher wurde aufgeteilt in... ROM -> fürs Booten RAM -> für Programme BS -> für BS reserviert
Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 72: Betriebssysteme   Ausgearbeitet

139

Stichworte

Notizen

Prof. W. Burkard 139

Fixierte Speicher-Partitionen

Bisherige Erkenntnis: Es ist sinnvoll mehrere Prozesse im Speicher zu haltenFrage: Wie macht man’s am besten ? Einfachste Lösung: Speicheraufteilung fest vorgeben

140

Stichworte

Notizen

Prof. W. Burkard 140

Algorithmen bei fixierten Speicher-Partitionen

Bei mehreren Warteschlangen:● Neuer Prozeß wird in diejenige Warteschlange eingereiht, in die er gerade noch passt.

● Problem: zeitweise sind die größeren Warteschlangen leer ! => Speicherverschwendung

Bei nur einer Warteschlange:● Man nehme aus der einen Warteschlange immer denjenigen Prozeß, der optimal in die

freigewordene Partition passt.● Problem:

Benachteiligung kleiner Prozesse, die nur selten eine größere Partition erhalten

● Lösungen: Vorhalten einer ausreichenden Zahl kleiner PartitionenPunktesystem: Jeder bei der Zuteilung übersprungene Prozeß erhält einen Punkt. Bei erreichen einer Summe darf er nicht mehr übergangen werden.

Marcus
Schreibmaschinentext
Partitionierung in Speichern -> Vergangenheit |_> in Festplatten -> heutzutage immer noch
Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 73: Betriebssysteme   Ausgearbeitet

141

Stichworte

Notizen

Prof. W. Burkard 141

Variable Speicher-Partitionierung

● Größe und Anzahl der Partitionen korrelieren mit der Größe und Anzahl der ProzesseZ E I T

unbenutzterSpeicher

• Zunächst werden Prozeß A, B und C eingelagert.• Dann terminiert A oder wird ausgelagert• Nun wird D eingelagert, danach B entfernt• Zum Schluß wird E eingelagert

142

Stichworte

Notizen

Prof. W. Burkard 142

Probleme bei der variablen Partitionierung

Problem 1:nach kurzer Zeit ist der Speicher von ungenutzten Fragmenten (Löchern) durchsetztLösung:Speicherverdichtung: alle Prozesse werden zusammengeschoben, es entsteht ein

einziger, großer und ungenutzter Bereich

Problem 2: Prozesse mit dynamischem Speicherbedarf !! Lösung:

Marcus
Schreibmaschinentext
Problem -> Speicherbedarf v. Programmen wächst bei Nutzung
Marcus
Schreibmaschinentext
Problem -> wird im Endeffekt durch virtuellen Speicher gedeckt
Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 74: Betriebssysteme   Ausgearbeitet

143

Stichworte

Notizen

Prof. W. Burkard 143

Probleme des Swapping

Das Relokationsproblem:● Variablen und Prozeduren eines Programmes liegen im Speicher auf bestimmten

Adressen, wo sie angesprochen werdenABER: Diese Adressen sind von Einlagerung zu Einlagerung verschieden !!

Das Schutzproblem:● Wie verhindert man den (absichtlichen oder versehentlichen) Zugriff des Prozesses X

in den Speicherbereích des Prozesses Y ??

Lösung: relative Adressierung● Implementierung 1: Ersetzen aller rel. Adressen beim Laden durch korrekte abs. Adr.

Implementierung 2: Einführung von Basis-Registern (beim PC sog. Segment-Register)● Impl. 1 löst nicht das Schutzproblem ! ( kein Schutz bei sog. “Self-modifying code”)● Impl. 2 löst nur dann das Schutzproblem, wenn auch Grenzregister existieren!

144

Stichworte

Notizen

Prof. W. Burkard 144

Swapping mittels Bitmaps

● Der Speicher wird in Allokationseinheiten unterteilt (fragmentiert)● In einer Tabelle (Bitmap) wird für jede Allokationseinheit ein Bit verwendet: 0=dieses

Speicherfragment ist frei, 1=belegt● Beispiel: ein Speicher mit 5 Prozessen und 3 “Löchern”:

Nachteil:Ein Prozeß der Länge m Einheiten soll eingelagertwerden.Dann muß man in der Bitmap m 0-Bits in Folgefinden ! ==> langsamer Algorithmus

I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I II IProzeß A Prozeß B Prozeß C Prozeß D Pr. E

I I

11111000

11111111

11001111

11111000

Bitmap

Marcus
Schreibmaschinentext
Auslagern -> (nicht beliebig) nur blockierte | Prozesse -> von Speicher -> zu Festplatte Problem bei Einlagerung |_> anderer Speicherort -> Lösung: dynamische Speicherverarbeitung d. Assemblers
Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 75: Betriebssysteme   Ausgearbeitet

145

Stichworte

Notizen

Prof. W. Burkard 145

Swapping mittels verketteter Listen

Prozesse und Löcher werden in einer verketteten Liste verwaltet:

P 0 5 L 5 3 P 14 4

P 20 6 P 26 2 L 28 3

L 18 2P 8 6

Freigabe eines Bereiches: 1. Eintrag von P auf L ändern. Wenn Vorgänger bzw. Nachfolger == L, dann verschmelzen

Einlagerung eines Prozesses der Länge m Einheiten:Durchsuchen der Liste nach einem Element mit Kennung L und einer Länge >= m

Algorithmen: First Fit: Suche vorne beginnend, nimm erstes, passendes LochNext Fit: wie First Fit, aber Suche hinter dem letzten gefundenen Loch fortsetzenBest Fit: Durchsuche komplette Liste, nimm kleinstes, gerade noch passendes LochWorst Fit: Nimm das größte Loch und hoffe, daß der verbleibende Rest noch zu was taugt!

Prozeß Loch

146

Stichworte

Notizen

Prof. W. Burkard 146

virtueller Speicher

Problem: Was tun, wenn ein Programm größer als der komplette Hauptspeicher ist ??1. Ansatz: Programm aufteilen ==> Overlay-Technik

Programmteil 1 startet und lädt nach Bedarf weitere Overlays hinzuDer Programmierer entscheidet, wie ein Programm zergliedert wirdDas Betriebssystem liefert Systemcalls zum Nachladen von Overlays

Nachteil: saubere Programmzergliederung ist aufwendige,aber brotlose Kunst

2. Ansatz: Man überlasse die Arbeit des Zergliederns dem Computer !==> virtueller Speicher <==

Idee: Hauptspeicher wird auf Festplatte simuliert und in gleich große Stücke eingeteilt (Seiten)Der reale Hauptspeicher wird unterteilt (Seitenrahmen) und als Puffer verwendetCPU greift auf den virtuellen, (real nicht existierenden) großen Hauptspeicher zuDie Zugriffe werden von einer Speicherverwaltungseinheit abgefangen. (MMU)MMU lädt benötigte Seite in einen freien Seitenrahmen, wenn sie nicht im RAM istMMU “verbiegt” die Original CPU-Adresse so, daß sie nun auf die richtige RAM-Adressezeigt.

Marcus
Schreibmaschinentext
Problem d. Swapping: Programm so groß, dass es gar nicht in den Speicher passt -> Lösung: virt. Sp.
Marcus
Schreibmaschinentext
man hat das Problem dem Anwendungsprogrammierer überlassen IDEE: v.v.Sp. man simuliert Speicher auf der Festplatte und unterteilt echten Speicher und verwendet ihn als Puffer
Marcus
Unterstreichen
Marcus
Unterstreichen
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
finmar01
Hervorheben
Page 76: Betriebssysteme   Ausgearbeitet

147

Stichworte

Notizen

Prof. W. Burkard 147

virtueller Speicher

System-Bus

CPU-Kartebzw. Chip

CPU

MMU

realerHauptspeicher

Festplatten-steuereinheitCPU verwendet

virtuelle Adressen

MMU verwendetphysik. Adressen

148

Stichworte

Notizen

Prof. W. Burkard 148

Paging

Die Beziehung zwischen Seiten und Seitenrahmen, also zwischen virtueller Adresse und physikalischer Adresse wird durch eine Seitentabelle geschaffen

Marcus
Unterstreichen
Marcus
Unterstreichen
Page 77: Betriebssysteme   Ausgearbeitet

149

Stichworte

Notizen

Prof. W. Burkard 149

MMU

Seitentabelle

in die MMU eingehende, virtuelle Adresse der CPUmit 16 Bit (CPU “glaubt” an 64 KB Speicher)

0 I 0 I 1 I 0 I 0 I 0 I 0 I 0 I 0 I 0 I 0 I 0 I 0 I 1 I 0 I 0

1 I 1 I 0 I 0 I 0 I 0 I 0 I 0 I 0 I 0 I 0 I 0 I 1 I 0 I 0

die MMU verlassende, reale Adresse auf dem Systembus( 15 Bit Adreßbus-Breite, 32 KB realer Speicher)

Der

12-

Bit-

Offs

etw

ird d

irekt

von

de

r Ein

gabe

zur

Aus

gabe

kop

iert

0: 010 11: 001 12: 110 13: 000 14: 100 15: 011 16: 000 07: 000 08: 000 09: 101 1

10: 000 011: 111 112: 000 013: 000 014: 000 015: 000 0

Seitentabellebei Seitengröße 4 KB

Present/Absent-Bit

Virtuelle Seite = 2, wird alsIndex auf die Seitentabellebenutzt:

0 0 1 0

1 1 0

150

Stichworte

Notizen

Prof. W. Burkard 150

zweistufige Seitentabellen

Für einen 4 GB großen, virtuellen Speicher bräuchteman (Seitengröße 4 KB) über 1 Mio Tabelleneinträge !!

Besser: EINE Tabellen mit 1024 Einträgen, die auf1024 Tabellen zeigen, die auf die eigentlichen Seitenzeigen.

Resultat: Nicht benötigte Seitentabellen brauchennicht im Hauptspeicher gehalten zu werden! UND: Erfolgt Page Fault bei PT1, so weiß das Betriebssystem, daß der Prozeß Speicheranspricht, der ihm nicht zugeordnet ist.

Marcus
Schreibmaschinentext
Klausur: 4GB simuliert, real 512MB Seitengröße 8KB Einstufige Seitentabelle Klausur: Interprozessmanagement Prozessverwaltung Speicherverwaltung (Swapping, ...) Einheiten schreiben!
Marcus
Rechteck
Marcus
Bleistift
Marcus
Unterstreichen
Marcus
Unterstreichen
Page 78: Betriebssysteme   Ausgearbeitet

151

Stichworte

Notizen

Prof. W. Burkard 151

ein typischer Seitentabelleneintrag

Caching-Bit: Caching ein/aus-schalten ( wichig bei memory-mapped I/O )

Referenz-Bit: Bit ist gesetzt, wenn die Seite von einem Prozeß angesprochen wird.

(dann sollte das Betriebssystem die Seite möglichst nicht auslagern)

Modifikation-Bit: Seiteninhalt wurde modifiziert, vor dem Überschreiben des

Seitenrahmens muß die Seite zurückgeschrieben werden.

Schutz-Bit: Zugriffssteuerung: Bit=1 bedeutet z.B. nur lesender Zugriff erlaubt

Present/Absent: Bit=1 heißt, Seitenrahmennummer ist gültig, kann genutzt werden

Seitenrahmennr: wird am höherwertigen Ende des Adressen-Offset angefügt und

ersetzt die virtuelle Seitennummer, um eine physikalische Adresse zu bilden

Caching Referenz Modifikation Present/ Seitenrahmen-Bit Bit Bit Absent Nummer

152

Stichworte

Notizen

Prof. W. Burkard 152

Assoziativspeicherder Cache für die Seitentabelle

Problem: Bei n-stufigem Paging wird aus einem CPU-Speicherzugriff eine Sequenz vonn Zugriffen auf den realen Speicher (man muß schließlich die n Tabelleneinträge lesen !)

==> drastische Performance-Einbußen, da der Prozessor nur noch einen Bruchteil seiner Ausführungsgeschwindigkeit erreicht ! (Beispiel: SPARC-Prozessor: dreistufiges Paging == 25% “Restspeed” 1 CPU +3 MMU-Zugriffe)

Lösung:

kleiner Hochgeschwindigkeits-Speicher

wird in MMU integriert und dient als

Zwischenspeicher für genutzte

SeitentabelleneinträgeCPU

Seiten-tabelle

Systembus

MMUAS

Marcus
Durchstreichen
Marcus
Durchstreichen
Page 79: Betriebssysteme   Ausgearbeitet

153

Stichworte

Notizen

Prof. W. Burkard 153

Trefferrate bei Assoziativspeicher

= wieviele Speicherzugriffe werden bereits durch den Assoziativspeicher bedient

Durchschnittliche Zugriffszeiten auf den Hauptspeicher, wenn der Hauptspeicherzugriff 100 nsecdauert und die MMU nur 20 nsec für den Zugriff auf den Assoziativspeicher braucht:

154

Stichworte

Notizen

Prof. W. Burkard 154

der optimale Ersetzungsalgorithmus

● Wenn ein Seitenfehler (page fault) auftritt, wählt das Betriebssystem einen Seitenrahmen aus, in den die geforderte Seite eingelagert wird

● Dadurch wird die vorher in diesem Seitenrahmen liegende Seite überschrieben

Achtung:● Wurde diese vorherige Seite verändert, muß sie vor dem “Überschriebenwerden”

durch Zurückschreiben auf die Platte aktualisiert werden

Überlegung:● Am besten überschreibt man nicht irgendeine Seite,

sondern eine solche, die wenig gebraucht wird.

optimaler Algorithmus zur Ersetzung Problem:von eingelagerten Seiten:“ Man entferne diejenige Seite Dieser Algorithmus ist

aus dem Speicher, die bei NICHT implementierbar !!!Betrachtung aller nachfolgenden Befehle zuletzt benötigt wird ”

Marcus
Durchstreichen
Marcus
Durchstreichen
Page 80: Betriebssysteme   Ausgearbeitet

155

Stichworte

Notizen

Prof. W. Burkard 155

SeitenersetzungsalgorithmenNRU und FIFO

● Betriebssystem verwendet die Bits M und R der Seitentabelle und setzt das R-Bit periodisch (alle n msec) zurück. Dann gibt es vier Klassen von Tabelleneinträgen:

■ Klasse 0: nicht referenziert, nicht modifiziert■ Klasse 1: nicht referenziert, modifiziert■ Klasse 2: referenziert, nicht modifiziert■ Klasse 3: referenziert und modifiziert

● NRU (Not-Recently-Used): Entferne eine zufällige Seite aus der niedrigsten, nicht leeren Klasse

● FIFO (First-In, First-Out):Entferne diejenige Seite, die am längsten im Speicher ist.

156

Stichworte

Notizen

Prof. W. Burkard 156

Seitenersetzungsalgorithmen

Second Chance bzw. Uhr

● Abwandlung von FIFO:Falls das R-Bit der ältesten Seite nicht gesetzt ist, wird die Seite ersetztFalls das R-Bit der ältesten Seite gesetzt ist, wird es auf 0 gesetzt und die älteste Seite an das Ende der Seitenliste gestellt

● Uhr ist nur eine andere Implementierung von Second Chance.

Marcus
Durchstreichen
Marcus
Durchstreichen
Page 81: Betriebssysteme   Ausgearbeitet

157

Stichworte

Notizen

Prof. W. Burkard 157

zum Schluß: ein ganz grober Überblick zur

Segmentierung

statt Seiten mit fest vorgegebener Länge verwende man Segmente mit variabler Länge, die vom Programmierer definiert werden können

Segmentierung = “Intra-Prozeß-Swapping”

Zusammenfassung

Swapping = Ein/Auslagern kompletter ProzessePaging = Ein/Auslagern von Prozeßteilen fester Größe

Segmentation = Ein/Auslagern von Prozeßteilen variabler Größe

Merke:In der Realität ( z.B. beim Pentium unter Unix-BS )

werden alle drei Verfahren miteinander kombiniert !!!

158

Stichworte

Notizen

Prof. W. Burkard 158

Alles klar ??

1. Wieviel Prozent der CPU-Zeit wird auf Dauer verschwendet, wenn in einem Computer 4 Programme gleichzeitig im Hauptspeicher gehalten werden können und 50% ihrer Zeit mit Warten auf E/A verbringen ?

2. Paging: Wie lange dauert es ein 64 KB großes Programm von einer Festplatte zu laden, deren mittlere Suchzeit bis zum Auffinden des Anfangs der gesuchten Daten 30 msecbeträgt. Gehen Sie von einer Rotationszeit von 20 msec bei einer Spurkapazität von 32Kbyte aus und berechnen Sie das Ergebnis für eine Seitengröße von 2 KB bzw. 4 KB. (Die Seiten sind zufällig auf der Platte verteilt, gelle!

3. Wie groß wäre bei einstufigem Paging die Seitentabelle eines Rechners mit 48 Bit virtuellem Adreßraum bei einer Seitengröße von 16 Kbyte und einem physikalischen Adreßbus mit 32 Bit Breite ?

4. In einem Computer dauere eine Instruktion 1 µsec, aber jede k-te Instruktion erzeuge einen Seitenfehler, zu dessen Abarbeitung weitere n µsec benötigt werden. Nennen Sie die Formel zur Berechnung der effektiven Instruktionsdauer!

5. In einem Swapping-System befinden sich in dieser Reihenfolge folgende Löcher:10K,4K,20K,18K,7K,9K,12K und 15K. Welche Löcher werden in welcher Reihenfolge ausgewählt, wenn die Anforderungen lauten: 12K,10K und dann 9K bei alternativer Verwendung der Algorithmen First-,Best-, Worst-, und Next-Fit ?

Marcus
Durchstreichen
Marcus
Durchstreichen
Page 82: Betriebssysteme   Ausgearbeitet

159

Stichworte

Notizen

Prof. W. Burkard 159

Dateien & DateisystemeDateien sind Container, in denen Daten persistent gespeichert werden können

Persistenz = Existenz der Daten unabhängig von der Existenz von Prozessen

(Variablen speichern keine persistenten Daten, da sie bei Programmende nicht weiter existieren.)

Dateien werden vom Betriebssystem verwaltet. Der Betriebssystemteil, der sich mit der Dateien-Verwaltung beschäftigt, wird auch Dateisystem bezeichnet

Das Dateisystem regelt...

... wie Dateien strukturiert sind

... wie Dateien benannt werden müssen

... den Zugriff und die Art der Benutzung von Dateien

... den Schutz von Dateien

Bei der Betrachtung von Dateisystemen muß man zwischen der Sicht des Anwenders und des Entwicklers unterscheiden.

160

Stichworte

Notizen

Prof. W. Burkard 160

Dateinamen● Dateisysteme verbergen die physikalische Realität einer Festplatte vor dem Anwender

● Das Dateisystem bildet die abstrakte Benutzersicht auf die physikalische Realität ab.

● zusammengefaßte Information (Dateien) werden unter einem Namen identifiziert und angesprochen (Dateiname)

● Dateinamen unterliegen bestimmten Regeln und Konventionen

● Beispiel MSDOS: “Datei-Vorname” max. 8 Zeichen, “Datei-Nachname” max. 3 Z.

■ file.bak = Sicherungskopie einer Datei■ file.c = C Quellcode eines Programmes■ file.doc = Dokumentationsdatei, am PC meistens WORD-Datei■ file.hlp = Hilfe-Datei, enthält Hilfe-Info zu bestimmten Themen/Programmen■ file.txt = allgemeine Text-Datei, am PC einfacher ASCII-Code■ file.ddl = dynamic data library: Bibliotheksdateien unter Windows■ file.dat = Datei enthält Daten, die ein Programm nutzen kann, z.B. Datenbanken■ file.exe = Ausführbarer (Maschinen-) Code eines Programmes unter MSDOS/Windows

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 83: Betriebssysteme   Ausgearbeitet

161

Stichworte

Notizen

Prof. W. Burkard 161

innerer Aufbau von Dateien

(a) Datei als (b) Datei als Folge (c) Datei als strukturierterFolge von Bytes von Datensätzen Baum

162

Stichworte

Notizen

Prof. W. Burkard 162

Dateitypen

● “Gewöhnliche Dateien”: Enthalten Daten von Benutzern bzw. Programmen

● Verzeichnisse: Systemdateien zur Verwaltung der Struktur eines Dateisystems

● zeichenorientierte Spezialdateien: Dienen zur Modellierung zeichenorientierte Ein/Ausgabe-Geräte (Terminals, Drucker, ...)

Man schreibt in eine Datei “PRN”, wenn etwas gedruckt werden soll

● Blockorientierte Spezialdateien: Dienen zur Modellierung von Hintergrundspeichersystemen, z.B. Bandlaufwerken

Man schreibt in eine Datei “TAPE”, wenn etwas auf Band geschrieben werden soll. Die zu schreibenden Daten werden blockweise geschrieben.

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 84: Betriebssysteme   Ausgearbeitet

163

Stichworte

Notizen

Prof. W. Burkard 163

Dateiattribute

164

Stichworte

Notizen

Prof. W. Burkard 164

Operationen auf Dateien

● CREATE = leere Datei anlegen, erschaffen● DELETE = Datei löschen● OPEN = Datei öffnen, Zugriff checken● CLOSE = Datei schließen, Ressourcenrückgabe● READ = aus der Datei lesen● WRITE = in die Datei schreiben● APPEND = an die Datei Daten anfügen● SEEK = in der Datei bestimmte Position anfahren● GET ATTRIBUTES = Dateiattribute erfragen● SET ATTRIBUTES = Dateiattribute verändern● RENAME = Datei umbenennen

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 85: Betriebssysteme   Ausgearbeitet

165

Stichworte

Notizen

Prof. W. Burkard 165

Hierarchische Verzeichnissysteme

166

Stichworte

Notizen

Prof. W. Burkard 166

Pfadnamen

● In hierarchischen Dateisystemen dienen absolute Pfadnamen zur eindeutigen Identifizierung einer Datei: MERKE: Absolute Pfadnamen beginnen stets mit dem SeparatorzeichenBeispiel MSDOS/WIN: Separatorzeichen ist “\”Beispiel absoluter Pfad: \windows\system\programme\spiele\solitaire.exe

● relative Pfadnamen beginnen niemals mit dem Separatorzeichen und sind relativ zur aktuellen Position im Dateibaum zu verstehen:

Beispiel: Im Unterverzeichnis “Benutzer” gebe es zwei Unterverzeichnisse “Hinz” und “Kunz”. Beide Anwender haben ihr Verzeichnis ausgebaut mit Unterverzeich-nissen “Studium” und “Diplom”

Studium\Diplom\Kapitel1

ist nicht mehr eindeutig !!

Benutzer

Hinz Kunz

Studium

Diplom Diplom

Studium

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 86: Betriebssysteme   Ausgearbeitet

167

Stichworte

Notizen

Prof. W. Burkard 167

Operationen auf Verzeichnissen

● CREATE = Verzeichnis anlegen, erschaffen● DELETE = Verzeichnis löschen● OPENDIR = Verzeichnis öffnen, Zugriff checken● CLOSEDIR = Verzeichnis schließen● READDIR = Verzeichnis lesen● LINK = zusätzlichen Verweis auf Datei bauen● UNLINK = Verweis auf Datei löschen

168

Stichworte

Notizen

Prof. W. Burkard 168

Implementierung von Dateien

● Festplatten sind eine Ansammlung von Sektoren auf Spuren und Oberflächen

● Aufgabe des Dateisystems: Verwaltung dieser Plattensektoren und Zuordnung zu Dateien und Verzeichnissen

● Lösung 1: Kontinuierliche Allokation der Sektoren Vorteile: einfache Implementierung, hohe PerformanceNachteile: Allokation muß Dateigröße kennen, Fragmentierung der Platte

● Lösung 2: Allokation mittels verketteter ListenDie ersten 2-4 Bytes eines Sektors werden als Zeiger auf den nächsten Sektor der Datei verwendet. Die restlichen Bytes eines Sektors sind die Daten.Vorteile: keine Fragmentierung der PlatteNachteil: sehr langsames Lesen bei wahlfreiem Zugriff

● Lösung 3: Allokation mittels verketteter Liste und Einsatz einer Tabelle (Index)Vorteil: Nachteile aus Lösung 2 sind eliminiert, dehr schnelles Lesen, da dieTabelle im Hauptspeicher gehalten wird.

==> MSDOS verwaltet Platten gemäß Lösung 3 (Die Tabelle heißt unter DOS“FAT” = File Allocation table

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 87: Betriebssysteme   Ausgearbeitet

169

Stichworte

Notizen

Prof. W. Burkard 169

Implementierung von Dateien

Lösung: 2

Lösung: 3 Hier beginnt...

...Datei A ...Datei B (freie Blöcke)

PhysikalischerBlock

Physika-lischerBlock

Datei A Datei B

170

Stichworte

Notizen

Prof. W. Burkard 170

Implementierung von Verzeichnissen

● MSDOS-Verzeichnis-Eintrag

● Erste Blocknummer zeigt auf den ersten Plattensektor der Datei

in der FAT

● Durch das Durchlaufen der FAT werden alle weiteren Sektoren

der jeweiligen Datei gefunden

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 88: Betriebssysteme   Ausgearbeitet

171

Stichworte

Notizen

Prof. W. Burkard 171

Mehrfachzugriff auf Dateien

● Idee: Eine Datei, die zwei Anwender benutzen, soll in beiden Verzeichnisstrukturen referenziert sein, aber physikalisch nur einmal existieren!!

● Lösung 1 : sogenannter Hard-LinkIndextabelle wird erweitert um ein Feld“Anzahl der Verweise”, Dieses Feld wird bei jedemzusätzlichen Verweis erhöht, bzw. beim Löschendekrementiert

● Lösung 2: sogenannte “symbolic links”Schaffung eines speziellen Dateityps “Link”.Der zweite Verzeichniseintrag zeigt dann auf einesolche “Link”-Datei, in der nur der vollständige Name(inkl. Pfad) der eigentlich gemeinten Datei steht

??

172

Stichworte

Notizen

Prof. W. Burkard 172

Plattenmanagementoder: was ist die optimale Blockgröße

Problem: Datenrate beim Zugriff und effiziente Nutzung des Plattenplatzes stehen im Konflikt zueinander

Beispiel: Festplatte mit 32 KByte je Spur, 16,67 msec Rotationszeit und durchschnittlich 30msec für die Positionierung des Schreib-Lesekopfes. Angenommen, auf dieser Platte werden 1 KByte große Dateien gespeichert, dann ergibt dies:

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 89: Betriebssysteme   Ausgearbeitet

173

Stichworte

Notizen

Prof. W. Burkard 173

defekte Sektoren

● kaum eine Festplatte wird fehlerfrei produziert.

● Die Hersteller notieren auf dem Plattencover die als defekt analysierten Sektoren

● Wie lassen sich defekte Sektoren ausgrenzen ?

● Hardware-Lösung: = Die defekten Sektoren sind z.B. auf der letzten Spur gespeichert.= Die Steuereinheit der Platte weißt jedem defekten Sektor einen guten Sektor zu.= Jeder Sektorzugriff wird durch die Steuerung abgefangen und “umgebogen”,

wenn er einen defekten Sektor referenziert.

● Software-Lösung:Es wird eine spezielle Datei angelegt, die genau alle defekten Sektoren umfaßt.Diese Datei darf nie gelesen oder geschrieben werdenProblem: Backup-Programme könnten diese Datei lesen !!

174

Stichworte

Notizen

Prof. W. Burkard 174

Performancebetrachtungen

Ein Festplattenzugriff ist 100.000 mal langsamer als der Zugriff auf den Hauptspeicher !!!

hohe Performance = wenige Plattenzugriffe + alle Daten nahe beisammen

Lösungen:

● Platten-Caching: “write-through” = Schreibbefehle schlagen durch auf die Platte“write-back” = Wegschreiben verzögert, erst bei Bedarf

● Look-ahead: Moderne Festplatten sind mit ein wenig RAM auf der Steuerplatine ausgestattet und Lesen (bei Anforderung eines Sektors) stets komplette Spuren bzw. Zylinder

● De-Fragmentier-Software: (unter Windows z.B. scandisk)“Räumt” die Platte auf, indem die zu einer Datei gehörenden Sektoren kontinuierlich neuallokiert werden.

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 90: Betriebssysteme   Ausgearbeitet

175

Stichworte

Notizen

Prof. W. Burkard 175

Alles klar ??

1. Geben Sie eine Formel für die durchschnittliche Plattenzugriffszeit an, wenn ein im Cache befindlicher Sektor in 1 msec geliefert werden kann, während das Lesen von Platte insgesamt 40 msec braucht. Die Trefferrate sei f, wobei selbstverständlich 0% <= f <= 100%. Zeichnen Sie die Funktion im Intervall 0-100%

2. Warum ist ein Systemcall RENAME nicht genau das gleiche, wie das Anfertigen einer Kopie unter dem neuen Namen mit anschließendem Löschen der Quelldatei.

3. Vergleichen Sie den Aufwand des Betriebssystems zur Auflösung symbolischer Links mit dem Aufwand für Hard-Links!

4. Wenn Dateien durch Verkettung der Sektoren implementiert sind, werden am Sektoranfang 2-4 bytes für die Verzeigerung benötigt. Welche äußerst negativen Auswirkungen hat diese Implementierung im praktischen Einsatz. Denken Sie an die verbleibende Sektorlänge !

5. “.” bzw. “..” sind in hierarchischen Dateisystemen spezielle Verzeichniseinträge mit Sonderfunktion. Sehen Sie in der Literatur nach und erklären Sie diese Funktion !

6. Plattenchecker (z.B.scandisk) versuchen, inkonsistente Dateisysteme zu reparieren. Ein Sektor kann keiner, einer oder mehreren Dateien zugeordnet sein. Er könnte auch gleichzeitig keiner und einer Datei zugeordnet sein. Bauen Sie eine Tabelle, in der für jeden denkbaren Fehler-und Normalfall eine Reparaturlösung skizziert wird.

finmar01
Durchstreichen
Page 91: Betriebssysteme   Ausgearbeitet

176

Stichworte

Notizen

Prof. W. Burkard 176

Ein/Ausgabe-Geräte

Die Steuerung und Überwachung aller Eingabe- und Ausgabegeräte (I/O-Geräte) ist eine weitere wesentliche Aufgabe des Betriebssystems.

Hierzu gehört:

• Anbieten einer einfach zu handhabenden, die physikalischen Detailsüberdeckenden Schnittstelle zum realen Gerät

• Aufbereiten und Weiterleiten der Kommandos an die Geräte

• Interrupt-Management, d.h. Abfangen und Erledigen der Unterbrechungen

• Fehler-Behandlung

Arten von I/O-Geräten:

• Block-orientierte Geräte, wie Festplatten, Diskettenlaufwerke, Bandlaufwerke

• Zeichen-orientierte Geräte, wie Drucker, Netzwerkanschlüße, ser. Terminals

• Nicht einordenbare Geräte, wie Zeitgeber, Memory-mapped (PC-) Monitore

177

Stichworte

Notizen

Prof. W. Burkard 177

Steuerwerke & Schnittstellen

● Geräte bestehen aus einer mechanischen und einer elektronischen Komponente■ Mechanik = das eigentliche Gerät■ Elektronik = das Steuerwerk ( bei PC-Systemen oft auch als Einsteckkarte

realisiert, z.B. Monitorkarte)

Schnittstelle zwischenGerät und Steuerwerk

Schnittstelle zwischenSteuerwerk und Betriebs-system

Systembus

Schnittstelle zwischenGerät und Steuerwerk

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 92: Betriebssysteme   Ausgearbeitet

178

Stichworte

Notizen

Prof. W. Burkard 178

Steuerwerke & Register

● Jedes Steuerwerk besitzt einige Register (Speicherstellen mit 8-32 Bit) zur Kommunikation mit dem Prozessor:

■ Control-Register: Damit steuert die CPU das Gerät (mittels passender Kommandos)■ Status-Register: Damit meldet das Steuerwerk der CPU bestimmte Sachverhalte

● Memory-mapped-IO: Die Steuerwerksregister sind im Adreßraum des Hauptspeichers ansprechbar

● IO-Mapping: Die Ein/Ausgabe-Register haben einen eigenen Adreßraum, (CPU mit spezieller IO-Memory-Select-Leitung)

● Der Ablauf einer EA-Operation:■ 1. CPU beginnt eine IO-Operation, indem es Kommandos in die Control-Register

schreibt.■ 2. Prozessor wendet sich anderen Aufgaben zu (im allg. Suspension des Prozesses)■ 3. Steuerwerk erledigt die Aufgabe (z.B. Lesen eines Sektors von der Platte)■ 4. Steuerwerk sendet Interrupt (Unterbrechung) an das System■ 5. Durch den Start der Interrupt-Service-Routine werden die Ergebnisse durch die

CPU abgeholt (Lesen der Statusregister)

179

Stichworte

Notizen

Prof. W. Burkard 179

Steuerwerke beim PC

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 93: Betriebssysteme   Ausgearbeitet

180

Stichworte

Notizen

Prof. W. Burkard 180

DMA

DMA = Direct Memory Access =

das Steuerwerk schreibt die vom Gerät eintreffenden Daten direkt an die von der CPU angegebene Speicheradresse

Vorteil: CPU-Entlastung und höhere Performance des Gesamtsystems

181

Stichworte

Notizen

Prof. W. Burkard 181

Schichtenmodell des IO-Systems

Benutzerprozesse

geräteunabhängige Software

Gerätetreiber

Unterbrechungsbehandlung

Hardware

Schicht Aufgabe

IO-A

nfra

ge

IO-A

ntw

ort

IO ausführen, formatieren, spoolen

Benennung, Blockierung, Schutz, Pufferung, Zuteilung

Geräteregister setzen, Status prüfen

Wecken des Treibers nach der Aufgabenerledigung

Ausführung der IO-Operation

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 94: Betriebssysteme   Ausgearbeitet

182

Stichworte

Notizen

Prof. W. Burkard 182

Unterbrechungsbehandlung

● Hat ein Prozeß eine IO-Operation angefordert, so blockiert er sich selbst durch z.B. ein Down auf eine Semaphore. (Zumindest SOLLTE es so sein...)

● Das Betriebssystem teilt einem anderen Prozeß die CPU zu

● Wenn das Peripheriegerät die Aufgabe erledigt hat, muß es den Prozeß wecken

==> Unterbrechungsbehandlung:

● die ausgelöste Aktion (Interrupt-Service-Routine) ist Teil des Betriebssystems und entblockiert den schlafenden Prozeß. (Up auf die Semaphore, etc...)

Problem Interrupt-Service-Routinen:

● Hardwarenahe Routinen, daher meist in Assembler geschrieben● hochsensibler Code von zentraler Bedeutung für das Funktionieren des

Betriebssystems

● in hohem Maße zeitkritisch, da von den Geräteleistungsdaten abhängig ● kritische Bereiche dürfen nicht durch nachfolgende Interrupts unterbrochen werden

==> Unterbrechungsmaskierung <==> NMI ( Non-maskable-Interrupt )

183

Stichworte

Notizen

Prof. W. Burkard 183

Geräte-Treiber● Der gesamte geräteabhängige Code wird im Geräte-Treiber zusammengefaßt

● Aufgabe des Treibers: Abbildung der abstrakten Anfrage der geräteunabhängigen Software auf das jeweils reale Gerät und Durchführung der erforderlichen Aktionen

Beispiel Festplatte:● abstrakte Anfrage der geräteunabhängigen Software: LESE BLOCK N

● Aktionen des Treibers:■ Abbildung von “BLOCK N” auf Zylinder/Spur/Sektor■ Prüfung, ob Motor korrekt läuft■ Anfahren des Zylinders■ Lesen des richtigen Sektors■ DMA zur angegebenen Adresse■ Rückmeldung, ob Transfer OK bzw. Fehlermeldung

MERKE:

Nur der Treiber eines Gerätes hat Kenntnis über reale Details des Steuerwerkes und der Mechanik eines Gerätes (z.B. Festplatte: Register des Steuerwerkes,Interleavefaktoren, Antrieb, Kopfberuhigungszeiten, etc.)

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 95: Betriebssysteme   Ausgearbeitet

184

Stichworte

Notizen

Prof. W. Burkard 184

geräteunabhängige Software

“logische Geräte”

Aufgabe dieser Schicht:einheitliche Schnittstelle zur Benutzersoftware bereitstellen und Benutzer-IO-Requests an zuständige Treiber aufbereitet weiterleiten

Dazu gehört:■ Benennung von Geräten: Umsetzung logischer Gerätenamen in Treibernamen (z.B.

PRN => Druckertreiber für den Drucker xyz)■ Zuteilung, Freigabe, Schutz: Abweisung unberechtigter Anwender, Regelung der

Exklusivnutzung■ geräteunabhängige Blockung: z.B. 512 Byte je Block, egal welche Platte, welches Band■ Pufferung der Datenströme bei blockorientierten und bei zeichenorientierten Geräten■ Ressourcenmanagement des logischen Gerätes: z.B. logisches Gerät hat belegte und

freie Speicherblöcke ==> Allokationsalgorithmus muß nicht im Treiber realisiert seinlogischer Drucker entspricht 4 realen Druckern (gleiches Modell) ==> Jobverteilung erfolgt im logischen Gerät

185

Stichworte

Notizen

Prof. W. Burkard 185

Festplattensteuerung

Der Plattentreiber entscheidet wesentlich über die Performance des Plattensubsystem eines Rechners

( Und dies teilweise unabhängig von den Leistungsdaten der Platten!! )

Durch den Treiber realisierbar:

==> Minimierte Rotationswartezeiten durch Interleaving (nächste Folie)

==> Minimierung der Plattenarmbewegungen ( Plattenarm-Scheduling-Algorithmen)

==> Optimale FehlerbehandlungKompensation flüchtiger Fehler (z.B. durch Lese-Wiederholung)Kompensation falscher Positionierung (z.B. durch Rekalibration)Blockieren, d.h. Nicht-Ausführen offensichtlicher Fehlanweisungen (z.B. Leseanforderung mit zu hoher Sektornummern)

==> Hardware-orientiertes Puffern: Spur / Cylinder- Caching==> Plattensimulation im Hauptspeicher: RAM-Disks

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 96: Betriebssysteme   Ausgearbeitet

186

Stichworte

Notizen

Prof. W. Burkard 186

Platten-Interleaving

Problem beim Lesen von Plattensektoren:

● Nach dem Lesen eines Sektors muß dieser zunächst vom Puffer des Steuerwerkes in den Hauptspeicher kopiert werden (durch die CPU oder via DMA)

● In dieser Zeit überstreift der Plattenkopf bereits den bzw. die Folgesektoren

● ==> Zum Lesen des nächsten Sektors muß also eine Umdrehung gewartet werden

● Problemlösung: Interleaving = Versetztes Durchnummerieren der Sektoren

Interleaving mit Faktor

Null: Eins: Zwei:7 0

6 1

5 2

4 3

7 0

3 4

6 1

2 5

5 0

2 3

7 6

4 1

187

Stichworte

Notizen

Prof. W. Burkard 187

Plattenarm-Scheduling-Algorithmen

SSF: Shortest Seek FirstDie Leseanforderungen werden so sortiert, daß der Schreib-Lesekopf minimale Fahrbewegungendurchführt: nach dem Lesen/Schreiben des Zylinders n wird der Zylinder m angefahren, so daß Im-nI minimal wird.

Problem/Ärgernis: Der Algorithmus ist bei vielbenutzten Platten unfair, er bevorzugt Zylinder in derPlattenmitte !!!

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 97: Betriebssysteme   Ausgearbeitet

188

Stichworte

Notizen

Prof. W. Burkard 188

Plattenarm-Scheduling

Elevator-AlgorithmDer Schreib/Lesekopf fährt solange in eine Richtung, bis es in dieser Richtung keine Requests mehr gibt, dann beginnt das Spiel in die andere Richtung:

Variante des Elevator-Algorithm: Nach dem letzten Request in die eine Richtung wird der am weitesten entfernte Request bedient: “Plattenarm-Round-Robin”

189

Stichworte

Notizen

Prof. W. Burkard 189

Zeitgeber in DV-SystemenOhne Zeitgeber kann kein Betriebssystem arbeiten:

● Verwalten der Uhrzeit Prinzipieller Aufbau:

● preemptive Scheduling

● Profiling: Führen von Statistiken

● Bereitstellung von (Stop-)Uhren für Prozesse

One-shot-mode:Uhr steht nach dem Interrupt

Square-wave-mode:Automatischer Neustart nachdem Interrupt

Beispiel: Oszillator mit 1 MHz-Kristall ==> Jede Schwingung dauert 1 Mikrosekunde (1µsec)16 Bit-Register + Zähler ==> Interrupts programmierbar von 1 bis 65536 µsec

Zähler

Register

Oszillatorquarz...

... dekrementiert Zähler bei jeder Schwingung

Initialisieren des Zählers

Interrupt bei

Erreichen von 0

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 98: Betriebssysteme   Ausgearbeitet

190

Stichworte

Notizen

Prof. W. Burkard 190

Monitorsteuerungin PCs und Workstations

Moderne grafische Oberflächen erfordern ein Hochleistungssteuerwerk zur pixelgenauen Steuerung des Monitors ==> Grafikkarten

Idee: ● Jeder Bildschirmleuchtpunkt (Pixel) wird durch 1 - 24 Bit repräsentiert.

● Die CPU “malt” auf dem Bildschirm, indem sie einen Pufferspeicher beschreibt (Bildwiederholspeicher)

● Die Monitorsteuerung (Grafikkarte) ließt den Puffer und generiert die erforderlichen Analogsignale

● Über separate Register der Grafikkarte sind weitere Einstellungen steuerbar (z.B. Anzahl Bits je Pixel, Bildwiederholrate, ...)

CPU

Grafikkarte

Systembus

dual-ported-RAMBildwieder-holspeicher

MonitorMonitor-Steuerwerk

“normaler”Haupt-

speicher

191

Stichworte

Notizen

Prof. W. Burkard 191

Alles klar ??1. Eine Festplatte habe s Sektoren je Spur und arbeite bei einem Interleavefaktor f

(f>=0) optimal. Wieviele Umdrehungen benötigt man, um die Spur vollständig zu lesen ? Wieviele Umdrehungen benötigt man im schlechtesten Fall, wenn derInterleavefaktor falsch gewählt wurde für das gegebene Paar Platte/Steuerwerk ?

2. Ein Plattenarm befinde sich auf Zylinder 20. Nacheinander treffen Anfragen ein, die Zylinder 10,22,20,2,40,6,38 zu lesen (noch bevor der Arm lossausen konnte). Die Bewegung von einem Zylinder zum nächsten dauere 6 msec, wie lange ist diegesammte Fahrzeit des Plattenarms bei SSF, Elevator, und bei einfachem First-come,First-serve ? Wie lauten die Reigenfolgen der angefahrenen Zylinder ?

3. Die Behandlung eines TimerInterrupts dauere auf einem Rechner 2 Milisekunden(inkl. allen Aufwandes für den Prozeßwechsel etc. ) Der Timer läuft mit 60 Hz. Wieviel Prozent der Systemzeit wird in diesem System für den Timer “verbraten” ?

4. Üblicherwesie ist das RAM heutiger Rechner mit dynamischen Speicherbausteinenaufgebaut, die innerhalb gewisser Zeiten ein Refresh der Inhalte benötigen, weil die Inhalte sonst verloren gehen. Zum Refreshen genügt bereits das Auslesen der Speicherinhalte. Skizzieren Sie eine Lösung für dieses Problem, d.h. entwerfen Sie in groben Zügen ein Steuerwerk “ODEM-of-RAM”, das DMA-fähig ist und einen Timer und eine Interruptleitung benutzt.

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 99: Betriebssysteme   Ausgearbeitet

192

Stichworte

Notizen

Prof. W. Burkard 192

Grundlagen & Definitionen zu

Systemverklemmungen

Def.: BetriebsmittelEin Betriebsmittel in einem Computer ist etwas, was zu jedem Zeitpunkt nur von einem einzelnen Prozeß benutzt werden kann.

Beispiele: Diskettenlaufwerk, Hauptspeicher, Datensatz einer Datenbank (also Information)

unterbrechbares Betriebsmittel = Betriebsmittel kann einem Prozeß entzogen werden, ohne daß die Arbeit des Prozesses hinfällig wird. (typisches Beispiel ist der Hauptspeicher)

nicht unterbrechbare Betriebsmittel = Werden diese Betriebsmittel einem Prozeß entzogen, so sind die Arbeiten des Prozesses hinfällig. Beispiel: Drucker kann nicht mitten in der Arbeit entzogen werden.

Ablauf zur Nutzung eines Betriebsmittels: => BM anfordern => BM nutzen => BM freigeben

WICHTIG: Bei fehlschlagender BM-Anforderung sollte das BS den Prozeß schlafen legen

193

Stichworte

Notizen

Prof. W. Burkard 193

Deadlocks

Def.: DeadlockWenn alle Prozesse einer Menge sich gegenseitig blockieren, so nennt man dies einenDeadlock. Ein Deadlock entsteht, wenn jeder Prozeß auf ein Ereignis wartet, das nur ein anderer Prozeß (der dummerweise aber eben auch auf etwas wartet!) auslösen kann.

Bedingungen für die Existenz eines Deadlock:

1. wechselseitiger Ausschluß: Ein BM ist frei oder genau einmal belegbar

2. Belegungsbedingung: Ein Prozeß kann suzzesive mehrere BM belegen

3. Nicht-Unterbrechbarkeitsbedingung: Ein belegtes BM kann nicht entzogen werden

4. zyklische Verkettung der BM-Anforderugen: Je ein Prozeß fordert ein BM an, das bereits durch einen anderen Prozeß belegt ist

ODER KURZ:

Ein Betriebsmittel, eine Zuteilung (1) und: Zugeteilt ist zugeteilt ! (3)

Ein Prozeß, viele Betriebsmittel (2) und: was ich will, hast du! (und umgekehrt!) (4)

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 100: Betriebssysteme   Ausgearbeitet

194

Stichworte

Notizen

Prof. W. Burkard 194

Darstellung von DeadlocksModellierung von Prozessen, Betriebsmitteln und ihren Beziehungen durch

gerichtete Graphen mit zwei Typen von Knoten

Kreise: stellen die agierenden Prozesse darRechtecke: stellen die Betriebsmittel darKanten (Pfeile): gehen stets von Kreis zu Rechteck oder umgekehrt

Kante von Rechteck zu Kreis: Kante von Kreis zu Rechteck: Betriebsmittel ist dem Prozeß zugeteilt Prozeß wartet auf die Betriebsmittelzuteilung

P

BM P

BM

Deadlock

P1

P2

BM1 BM2

195

Stichworte

Notizen

Prof. W. Burkard 195

Deadlock

Lösungs-Strategien

● Ignorieren des Problems: Methode: toi,toi,toi

● Betriebssystem erkennt und behebt Deadlocks

● Betriebssystem vermeidet (möglichst) Deadlocks durch vorsichtige BM-Zuteilungen

● Elimieren von Deadlocks durch geschickte Systemkonzeption( die vier notwendigen Bedingungen werden verhindert)

finmar01
Durchstreichen
finmar01
Durchstreichen
finmar01
Durchstreichen
Page 101: Betriebssysteme   Ausgearbeitet

196

Stichworte

Notizen

Prof. W. Burkard 196

Warum Vogel-Strauss ??

● hoher Aufwand zur Eliminierung von Deadlocks● geringe Wahrscheinlichkeiten für das Auftreten von Deadlocks

● Bequemlichkeit (Arroganz ??) der Betriebssystementwickler● Work-around: fehlgeschlagener Betriebsmittelzugriff wird (hin und wieder) wiederholt

● Beispiel Straßenverkehr: (ebenfalls ohne Regelung):Wer hat Vorfahrt ?

197

Stichworte

Notizen

Prof. W. Burkard 197

Deadlock-Erkennung

= Erkennung von Zyklen im Betriebsmittelgraphen

R A

S

W

U

T

V

B

C D E

F G

Algorithmus:

1. Für jeden Knoten K des Graphen tue:1.1 Setze alle Kanten auf “unmarkiert”

Erzeuge leere Liste L1.2 Setze aktuellen Knoten AK = K1.3 Füge Ak in L ein1.4 Wenn AK zweimal in L, dann

wurde ein Zyklus gefunden, ENDE1.5 Für alle unmarkierten Kanten, die

von AK ausgehen tue:1.5.1 Markiere Kante1.5.2 Setze Knoten am Ende der

Kante = AK und gehe nach 1.31.6 Es gibt keinen Zyklus, ENDE

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 102: Betriebssysteme   Ausgearbeitet

198

Stichworte

Notizen

Prof. W. Burkard 198

Deadlock-Behebung

= Auflösung einer entstandenen Deadlock-Situation

1. Behebung durch (manuelle) Suspension eines Prozesses:

Prozeß wird suspendiert, die blockierten BM werden freigegeben, danach werden die BM wieder dem Prozeß zugeteilt und der Prozeß freigegeben

2. Behebung durch Rücksetzen der Prozesse auf “Checkpunkte”:

Prozesse erzeugen periodisch Checkpunkte (Speicherung des Prozeßzustandes in einer Datei) Beim Rücksetzen auf einen Checkpunkt gehen die Arbeiten, die der Prozeß nach dem Checkpunkt durchführte verloren !

3. Behebung durch Prozeßabbruch (Brute-force-Methode)

Problem: Welchen Prozeß sollte man abbrechen ?=> Möglichst wenig Seiteneffekte, Prozeßwiederholbarkeit muß gegeben sein!

199

Stichworte

Notizen

Prof. W. Burkard 199

Deadlock-Verhinderung= “wohl durchdachte” Betriebsmittel-Zuteilung

“Betriebsmittel-Flugbahnen”

= A+B belegen denDrucker gleichzeitig

= A+B belegen denPlotter gleichzeitig

Prozeß A

Prozeß B

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 103: Betriebssysteme   Ausgearbeitet

200

Stichworte

Notizen

Prof. W. Burkard 200

sichere und unsichere ZuständeDef.: Ein Zustand heißt sicher, wenn...

1. ... er kein Deadlock-Zustand ist und ...2. ... es eine Möglichkeit gibt, alle Anforderungen bis zum Terminieren aller

Prozesse zu erfüllenAkt = aktuell belegte BM

Beispiel: Ein sicherer Zustand (a) Max = maximal benötigte BM

Frei = noch freie BM

Beispiel: Ein unsicherer Zustand (b)

201

Stichworte

Notizen

Prof. W. Burkard 201

Dijkstras Bankier-Algorithmus

1. Suche in R eine Zeile Z (z1,z2,z3,z4), so daß z i <= ai für 1<=i<=4 2. Zeile nicht gefunden: => ein kommender Deadlock ist nicht mehr abwendbar3. Zeile gefunden: Nimm an, der gefundene Prozeß bekommt die BM, kann

weiterlaufen und terminiert4. Dann gibt dieser Prozeß alle seine BM frei. Entferne Prozeß in R, erhöhe A5. Wiederhole Schritte 1-4 bis ...

... R leer ist ==> Zuteilung ist sicher

... oder bis Schritt 2 eintritt, ==> Deadlockgefahr, d.h. unsichere Zuteilung

insgesamt verfügbare BM

belegte BM

derzeit freie BM

Request-table RIn-Use-table U

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 104: Betriebssysteme   Ausgearbeitet

202

Stichworte

Notizen

Prof. W. Burkard 202

Deadlock-Vermeidung= Sicherstellen, daß die vier Bedingungen nie erfüllt sein können!

Ansätze und Ideen:1. wechselseitiger Ausschluß:

Minimierung der BM-Zuteilung, d.h. Zuteilung an möglichst wenige ProzesseBeispiel: Druckerspooling: Das BM “Drucker” wird nur einem Prozeß (dem Spooler)

zugeteilt

2. Belegungsbedingung:

“Alles-oder-nichts-Methode”: Bei Prozeßstart werden dem Prozeß alle erforderlichenBM zugeteilt, oder der Prozeß wird suspendiert bis dies möglich ist!

3. Nicht-Unterbrechbarkeit:es gibt prinzipiell keine Lösung, die Nicht-Unterbrechbarkeit ist ja gerade das wesentliche Merkmal bestimmter Betriebsmittel!

4. zyklische Wartebedingung:

Durchnummerieren der BM und BM-Vergabe nur in sortierter Weise, d.h.:fordert ein Prozeß zwei BM X und Y an, so muß Y > X gelten.

203

Stichworte

Notizen

Prof. W. Burkard 203

Durchführungder

Aufgabe

Two-Phase-Commit

Idee: ● In einer ersten Phase werden alle Betriebsmittel zur Erledigung der Aufgabe angefordert.● Kann eine Ressource nicht zugeteilt werden, werden alle Ressourcen wieder freigegeben

und von vorne begonnen● Sind alle Ressourcen zugeteilt erfolgt die Erledigung der Aufgabe, danach die Freigabe

aller Ressourcen

WICHTIG:

Two-Phase-Commit istnur anwendbar, wenn alle

Aktionen der Phase 1wieder rückgängiggemacht werden können Zeit

Betriebsmittel

D

C

B

A Two-Phase-Commit

Phase 1

Phase 2

finmar01
Durchstreichen
finmar01
Durchstreichen
Page 105: Betriebssysteme   Ausgearbeitet

204

Stichworte

Notizen

Prof. W. Burkard 204

“Verhungern” von ProzessenEin Prozeß fordert eine Ressource an, die er nie erhält.==> kein Deadlock im eigentlichen Sinne, aber der Prozeß ist auf Dauer festgefahren

Beispiel :Shortest-Seek-First-Algorithmus beim Plattenzugriff:

Ein Prozeß P will z.B. den innersten Plattenzylinder lesen, nachfolgende Prozesse lesen ständig Zylinder in der Plattenmitte.Resultat: Prozeß P bleibt solange suspendiert, bis keine anderen (näheren) Anforderungen mehr in der Warteschlange sind! Das kann u.U. dauern !

Grundsätzlich gilt:Algorithmen, die aus einer Warteschlange jeweils ein “Bestes Element” auswählen lassen “schlechte Elemente” verhungern, wenn beständig neue Elemente in die Schlange strömen! (d.h. die Schlange nie leer wird)

“Gegenmittel”: temporäres Umschalten auf “First-Come,First-Serve”dynamische “Verbesserung” der Elementsituation durch das Warten

205

Stichworte

Notizen

Prof. W. Burkard 205

Alles klar ??1. Wann sind bei der Deadlock-Verhinderung diagonale Betriebsmittelflugbahnen denkbar ?2. Ein Computer verfügt über sechs CD-ROM-Laufwerke und es gibt n Prozesse, die um die

Bandgeräte konkurrieren. Jeder Prozeß benötige zwei CD-ROM-Laufwerke. Für welche Werte von n ist kein Deadlock möglich ? (Deadlock-freies System )

3. Kann ein System sich in einem Zustand befinden, der weder ein Deadlock- noch ein sicherer Zustand ist? Falls ja, skizzieren Sie ein Beispiel, falls nein, beweisen Sie, daß jeder Zustand entweder ein Deadlock-Zustand oder ein sicherer Zustand ist!

4. Führt es in einen Deadlock, falls der Prozeß A auf Folie 114 das letzte Bandgerät anfordert ?5. Aschenputtel und der Prinz lassen sich scheiden. Sie wollen ihr Eigentum nach folgendem

Verfahren aufeilen. Täglich können beide in einem Brief einen Anspruch auf etwas aus ihrem Eigentum anmelden. Weil es einen Tag dauert, bis ein Brief zugestellt ist, haben sich beide darauf geeinigt, daß, falls sie beide feststellen, daß sie dasselbe am gleichen Tag angefordert haben, am nächsten Tag einen Brief senden, in dem sie ihren Anspruch zurücknehmen. Zu ihrem Eigentum gehört insbesondere ihr Hund Bello und seine Hundehütte. Da das Tier seine Behausung liebt, haben Aschenputtel und der Prinz sich darauf verständigt, daß eine Verteilung des Eigentums, das das Tier von seiner Behausung trennt, nicht zulässig ist, und dann der gesamte Verteilungsprozeß von vorne beginnt. Sowohl Aschenputtel als auch der Prinz wollen verzweifelt Bello haben. Damit sie (getrennt voneinander) auf eine Reise gehen können, haben die Ehegatten je einen PC programmiert, der die Verhandlungen führen soll. Als beide von ihren Reisen zurückkommen, verhandeln die Computer immer noch. Warum? Ist ein Deadlockaufgetreten? Ist ein Verhungern möglich? Diskutieren Sie.

finmar01
Durchstreichen
finmar01
Durchstreichen