Betriebssysteme: 02 - Abstraktionen und Strukturen · – Struktur und Funktionsweise ergeben sich...

44
Betriebssysteme (BS) Abstraktionen und Strukturen https://ess.cs.tu-dortmund.de/DE/Teaching/SS2019/BS/ AG Eingebettete Systemsoftware Informatik 12, TU Dortmund Horst Schirmeier [email protected] https://ess.cs.tu-dortmund.de/~hsc mit Material von Olaf Spinczyk, Universität Osnabrück

Transcript of Betriebssysteme: 02 - Abstraktionen und Strukturen · – Struktur und Funktionsweise ergeben sich...

Betriebssysteme (BS)

Abstraktionen und Strukturen

https://ess.cs.tu-dortmund.de/DE/Teaching/SS2019/BS/

AG Eingebettete SystemsoftwareInformatik 12, TU Dortmund

Horst Schirmeier

[email protected]://ess.cs.tu-dortmund.de/~hsc

mit Material von Olaf Spinczyk, Universität Osnabrück

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 2

Inhalt● Was ist ein Betriebssystem?

● Ein Blick in die Geschichte– Serielle Verarbeitung und Stapelbetrieb

– Mehrprogramm- und Dialogbetrieb

● Systemabstraktionen im Überblick– Prozesse

● CPU-Zuteilung● Synchronisation und Verklemmungen● Interprozesskommunikation

– Speicherverwaltung● Arbeitsspeicher● Hintergrundspeicher

Silberschatz, Kap. 1,„Einführung“

Tanenbaum, Kap. 1,„Einführung“

Literatur

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 3

Inhalt● Was ist ein Betriebssystem?● Ein Blick in die Geschichte

– Serielle Verarbeitung und Stapelbetrieb

– Mehrprogramm- und Dialogbetrieb

● Systemabstraktionen im Überblick– Prozesse

● CPU-Zuteilung● Synchronisation und Verklemmungen● Interprozesskommunikation

– Speicherverwaltung● Arbeitsspeicher● Hintergrundspeicher

Silberschatz, Kap. 1,„Einführung“

Tanenbaum, Kap. 1,„Einführung“

Literatur

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 4

Los geht’s …

Quizfrage:

Was ist ein Betriebssystem?

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 5

Definitionen (1)

„Ein Computer ist, wenn er genau betrachtet wird, nur eine Ansammlung von Plastik und Metall, das zur Leitung von Strom benötigt wird. Dieser „Industriemüll“ kann somit nicht ausschließlich das sein, was wir unter einem modernen Computer verstehen, etwas, das dem Computer „Leben“ einhaucht und ihn zu dem Werkzeug unseres Jahrhunderts macht.

Es ist das Betriebssystem, das die Kontrolle über das Plastik und Metall (Hardware) übernimmt und anderen Softwareprogrammen (Excel, Word, . . . ) eine standardisierte Arbeitsplattform (Windows, Unix, OS/2) schafft.“

Ewert et al., Literatur zu „Freehand 10“

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 6

Definitionen (2)

„Be'triebs·sys·tem Programmbündel, das die Bedienung eines Computers ermöglicht.“

Universalwörterbuch Rechtschreibung

„Summe derjenigen Programme, die als residenter Teil einer EDV-Anlage für den Betrieb der Anlage und für die Ausführung der Anwenderprogramme erforderlich ist.“

Lexikon der Informatik

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

DIN 44300

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 7

Definitionen (3)

„Ein Programm, das als Vermittler zwischen Rechnerbenutzer und Rechnerhardware fungiert. Der Sinn des Betriebssystems ist eine Umgebung bereitzustellen, in der Benutzer bequem und effizient Programme ausführen können.“

Silberschatz [1]

„Eine Softwareschicht, die alle Teile des Systems verwaltet und dem Benutzer eine Schnittstelle oder virtuelle Maschine anbietet, die leichter zu verstehen und zu programmieren ist[als die darunterliegende reale Maschine].“

Tanenbaum [2]

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 8

Sichere SystemeZugriffsschutz

Sichere SystemeZugriffsschutz

High PerformanceComputingMinimale Kommunikations-

latenzen

High PerformanceComputingMinimale Kommunikations-

latenzen

Vielfalt der Anforderungen

Arbeitsplatz-systemeIntuitive Benutzer-

oberfläche

Arbeitsplatz-systemeIntuitive Benutzer-

oberfläche

EchtzeitsystemeVorhersagbares

Zeitverhalten

EchtzeitsystemeVorhersagbares

Zeitverhalten

Eingebettete undautomotive SystemeMinimaler

Speicherplatzbedarf

Eingebettete undautomotive SystemeMinimaler

Speicherplatzbedarf

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 9

Zwischenfazit● Es gibt viele Auslegungen des Begriffs „Betriebssystem“.

● Festhalten kann man:

– Das Betriebssystem dient den Anwendern bzw. deren Anwendungsprogramm(en) und nie dem Selbstzweck.

– Es muss die Hardware genau kennen undden Anwendungen geeignete Abstraktionen zur Verfügung stellen.

● Hardware und Anwendungsanforderungenbestimmen die Dienste des Betriebssystems.

– Struktur und Funktionsweise ergeben sich entsprechend.

– Um zu verstehen, welche Hardwareabstraktionen Betriebssysteme heute anbieten, muss man ihre Entwicklungsgeschichte im Zusammenhang mit der Hardwareentwicklung und typischen Anwendungen betrachten.

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 10

Inhalt● Was ist ein Betriebssystem?

● Ein Blick in die Geschichte– Serielle Verarbeitung und Stapelbetrieb

– Mehrprogramm- und Dialogbetrieb

● Systemabstraktionen im Überblick– Prozesse

● CPU-Zuteilung● Synchronisation und Verklemmungen● Interprozesskommunikation

– Speicherverwaltung● Arbeitsspeicher● Hintergrundspeicher

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 11

Am Anfang stand die Lochkarte● Es gibt sie schon seit 1725 – zur Webstuhlsteuerung.

● Herman Hollerith nutzte sie 1890 für eine Volkszählung– aus seiner Firma und zwei weiteren ging später IBM hervor

● Sie wurde bis in die 70er Jahre als vielseitiger Speicher eingesetzt.

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 12

Erste elektronische Universalrechner

Beispiel:ENIAC, 1946US-Armee, Berechnung ballistischer Tabellen

Beispiel:ENIAC, 1946US-Armee, Berechnung ballistischer Tabellen

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 13

Erste elektronische Universalrechner

Ein Rechenmonster!● Größe: 10m x 17m x 2,7m

● Gewicht: 27t

● Leistung: 174kW (> 17.000 Röhren!)

● Preis: $ 468.000

● Geschwindigkeit: 500 Additionen pro Sekunde

Ein Rechenmonster!● Größe: 10m x 17m x 2,7m

● Gewicht: 27t

● Leistung: 174kW (> 17.000 Röhren!)

● Preis: $ 468.000

● Geschwindigkeit: 500 Additionen pro Sekunde

Beispiel:ENIAC, 1946US-Armee, Berechnung ballistischer Tabellen

Beispiel:ENIAC, 1946US-Armee, Berechnung ballistischer Tabellen

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 14

Serielle Verarbeitung (ab 1945)● Programmierung

– i.d.R. in Maschinencode

– Eingabe über Lochkartenleser, Ausgaben über Drucker

– Fehleranzeige durch Kontrolllämpchen

● Rechnerzeitzuteilung auf Papierterminkalender

– Rechnerzeitverschwendung durch zu großzügige Reservierungoder Abbruch wegen Fehler

● Minimale Auslastung der CPU

– Die meiste Zeit verbrauchten langsame E/A-Geräte(Lochkarten, Drucker)

● Erste Systemsoftware in Form von Programmbibliotheken– Binder, Lader, Debugger, Gerätetreiber, …

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 15

Einfache Stapelsysteme (ab 1955)● Verringerten die Häufigkeit manueller Betriebseingriffe

● Die ersten Betriebssysteme: „residente Monitore“– Interpretation von Job-Steuerbefehlen

– Laden und Ausführen von Programmen

– Geräteansteuerung$END

$FTN$FTN$FTN$FTN$FTN$FTN$FTN$RUNEingabedaten

$LOAD

$FTN$FTN$FTN$FTN$FTN$FTN$FTN$FTNFortran Programmtext

$JOB

Ein Stapel Lochkarten zur Übersetzung und Ausführungeines FORTRAN-Programms

Ein Stapel Lochkarten zur Übersetzung und Ausführungeines FORTRAN-Programms

NEU: „Steuerkarten“(engl. control cards)NEU: „Steuerkarten“(engl. control cards)

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 16

Einfache Stapelsysteme (ab 1955)

GerätetreiberGerätetreiber

SequentielleJob-SteuerungSequentielleJob-Steuerung

Arbeitsspeicher

Monitor

Steuersprach-interpreterSteuersprach-interpreter

Benutzer-programm-bereich

Benutzer-programm-bereich

Der Monitor bliebt dauerhaftim Speicher, während er einAnwendungsprogramm nachdem anderen ausführte.

Der Monitor bliebt dauerhaftim Speicher, während er einAnwendungsprogramm nachdem anderen ausführte.

● Probleme durchfehlerhafte Anwendungen:– Programm terminiert nicht,

– schreibt in den Speicherbereichdes residenten Monitors

– greift auf den Kartenleserdirekt zu und interpretiertSteuerbefehle als Daten.

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 17

Einfache Stapelsysteme (ab 1955)

Unterbrechungs-mechanismusUnterbrechungs-mechanismus

GerätetreiberGerätetreiber

SequentielleJob-SteuerungSequentielleJob-Steuerung

Monitor

Steuersprach-interpreterSteuersprach-interpreter

Benutzer-programmBenutzer-programm

Lösungen:

● Zeitgeberbaustein (timer)liefert Unterbrechungen(interrupts)

● Fallen (traps) fürfehlerhafte Programme

– Schutzgatterregister(engl. fence register)realisiert primitiven Speicherschutz

– Privilegierter Arbeitsmodusder CPU (supervisor mode)

● Deaktivierung des Schutzgatters

● Ein-/Ausgabe

Arbeitsspeicher

timertimer

0000

02FF0300

1FFFunbenutztunbenutzt

03000300

fenceregister

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 18

Der Ein-/Ausgabe-Flaschenhals● Problem: CPU ist schneller als Kartenleser und Drucker

– kostbare Rechenzeit wird durch (aktives) Warten verschwendet

● Lösung 1: Off-line processing– dank Bandlaufwerken

– Parallelisierung von Ein-/Ausgaben durch mehrere Satellitenrechner

A. T

anen

baum

[2]

Satellitenrechnerfür Eingabe(ggf. mehrere)

CPU (liest/schreibtausschließlichvon/auf Band)

Satellitenrechnerfür Ausgabe(ggf. mehrere)

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 19

Der Ein-/Ausgabe-Flaschenhals● Problem: CPU ist schneller als Kartenleser und Drucker

– kostbare Rechenzeit wird durch (aktives) Warten verschwendet

● Lösung 2: Spooling– dank Plattenlaufwerken (wahlfreier Zugriff),

Direct Memory Access und Unterbrechungen

– Berechnungen und Ein-/Ausgaben werden dabei parallelisiert.

– Regeln für Prozessorzuteilung

Platte

CPU

Kartenleser Drucker

Wartende Jobs Ergebnisdaten

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 20

Mehrprogrammbetrieb (ab 1965)● Trotz spooling nutzt ein einzelnes Programm die CPU nicht

effizient.– CPU-Stöße (CPU bursts) und E/A-Stöße (I/O bursts), bei denen die

CPU warten muss, wechseln sich ab.

● Beim Mehrprogrammbetrieb bearbeitet die CPU mehrere Aufträge gleichzeitig:

Zeit

Einprogrammbetrieb

Programm A

CPU E/A CPU E/A

Zeit

Mehrprogrammbetrieb

Programm A

CPU E/A CPU E/AProgramm B

CPU E/A CPU E/AA und B CPU CPU

CPU E/A CPU E/A

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 21

Mehrprogrammbetrieb (ab 1965)● Trotz spooling nutzt ein einzelnes Programm die CPU nicht

effizient.– CPU-Stöße (CPU bursts) und E/A-Stöße (I/O bursts), bei denen die

CPU warten muss, wechseln sich ab.

● Beim Mehrprogrammbetrieb bearbeitet die CPU mehrere Aufträge gleichzeitig:

Zeit

Einprogrammbetrieb

Programm A

CPU E/A CPU E/A

Zeit

Mehrprogrammbetrieb

Programm A

CPU E/A CPU E/AProgramm B

CPU E/A CPU E/AA und B CPU CPU

CPU E/A CPU E/A

Das Betriebssystem wird immer komplexer:• Umgang mit nebenläufigen E/A-Aktivitäten• Verwaltung des Arbeitsspeichers für mehrere Programme• Interne Verwaltung von Programmen in Ausführung („Prozesse“)• Prozessorzuteilung (scheduling)• Mehrbenutzerbetrieb: Sicherheit und Abrechnung (accounting)

Das Betriebssystem wird immer komplexer:• Umgang mit nebenläufigen E/A-Aktivitäten• Verwaltung des Arbeitsspeichers für mehrere Programme• Interne Verwaltung von Programmen in Ausführung („Prozesse“)• Prozessorzuteilung (scheduling)• Mehrbenutzerbetrieb: Sicherheit und Abrechnung (accounting)

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 22

Mehrprogrammbetrieb (ab 1965)● Speicherverwaltung:

– Den zu startenden Programmenmuss dynamisch freier Speicherzugewiesen werden.

● Speicherschutz:– Einfaches Schutzgatter reicht

nicht mehr, um einzelneProgramme zu isolieren.Lösung: einfache MMU(„Memory Management Unit“)

● Prozessverwaltung:– Jedes „Programm in Ausführung“

besitzt einen Kontext. BeimProzesswechsel muss dieserausgetauscht werden.

BetriebssystemBetriebssystem

Kontext BKontext A

Programm A(text, data, bss, stack)

Programm A(text, data, bss, stack)

Arbeitsspeicher

0000

3FFF4000

FFFF

40004000

boundsregisters

Programm B(text, data, bss, stack)

Programm B(text, data, bss, stack)

unbenutztunbenutzt

4FFF5000

50005000

EFFF

5000--

4000Lo

Hi

IPSP --

F00062E2

5000Lo

Hi

IPSP E340

Lo

Hi

430A430A

instructionpointer

4EE04EE0

stackpointer

CPU und MMU

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 23

Dialogbetrieb (ab 1970)● Neue Ein- und Ausgabegeräte

erlauben interaktive Software– Tastatur, Monitor, später Maus

● Time-Sharing-Betrieb– ermöglicht akzeptable Antwortzeiten

für interaktive Nutzer

– Zeitgeber-Unterbrechungen sorgen fürVerdrängung (zu) lang laufender Prozesse

● Systemprogramme erlauben auchinteraktive SW-Entwicklung.– Editor, Shell, Übersetzer, Debugger

● Platten und Dateisysteme erlaubenjederzeit Zugriff auf Programmeund Daten.

Quelle: DIGITAL Computing Timeline

DEC LA36DEC LA36

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 24

UNIX-Systemstruktur

user mode

supervisor mode

UNIX-ApplikationUNIX-Applikation

Systemaufrufschnittstelle

Hardwaresteuerung

Speicher-verwaltung

Scheduler

IPCProzess-kontroll-subsystem

Dateisubsystem

buffer cache

BlockZeichenGerätetreiber

BibliothekenAufrufTrap

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 25

Windows-Systemstruktur

Executive

LokalerProzedur-

aufruf

Kernel

Hardware Abstraction Layer (HAL)

VirtuelleSpeicher-

verwaltungProzess-

verwaltungObjekt-

verwaltungSicherheits-

referenz-monitor Ein-/Ausgabe

Treiberund

Dateisystem

Win32-Subsystem

LPCTrap

POSIX-SubsystemPOSIX-SubsystemOS/2-SubsystemOS/2-Subsystem

Win32-KlientWin32-Klient POSIX-KlientPOSIX-KlientOS/2-KlientOS/2-Klient

Win16-Klient

Win16-Klient

WoW

user mode

supervisor mode

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 26

Inhalt● Was ist ein Betriebssystem?

● Ein Blick in die Geschichte– Serielle Verarbeitung und Stapelbetrieb

– Mehrprogramm- und Dialogbetrieb

● Systemabstraktionen im Überblick– Prozesse

● CPU-Zuteilung● Synchronisation und Verklemmungen● Interprozesskommunikation

– Speicherverwaltung● Arbeitsspeicher● Hintergrundspeicher

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 27

Ein Prozess ...● Horning/Randell, Process Structuring

● Dennis/van Horn, Programming Semantics for Multiprogrammed Computations

● Habermann, Introduction to Operating System Design

„… P ist ein Tripel (S, f, s), wobei S einen Zustandsraum, f eine Aktionsfunktion und s S die Anfangszustände des Prozesses P

bezeichnen. Ein Prozess erzeugt Abläufe, die durch die Aktionsfunktion generiert werden können.“

„… ist das Aktivitätszentrum innerhalb einer Folge von Elementaroperationen. Damit wird ein Prozess zu einer abstrakten Einheit, die sich durch die Instruktionen eines abstrakten Programms bewegt, wenn

dieses auf einem Rechner ausgeführt wird.“

„… wird durch ein Programm kontrolliert und benötigt zur Ausführung dieses Programms einen Prozessor.“

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 28

Ein Prozess …● „ist ein Programm in Ausführung.“

– unbekannte Referenz, „Mundart“

● Dazu gehört ein Prozesskontext, i.d.R. …– Speicher: Code-, Daten und Stapelsegment (text, data, stack)– Prozessorregisterinhalte

● Instruktionszeiger● Stapelzeiger● Vielzweckregister● ...

– Prozesszustand– Benutzerkennung– Zugriffsrechte– Aktuell belegte Betriebsmittel

● Dateien, E/A-Geräte, u.s.w.– ...

wird repräsentiert durch einen

Prozesskontrollblock(process control block, PCB)

wird repräsentiert durch einen

Prozesskontrollblock(process control block, PCB)

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 29

Prozessmodell

AA

BB

CC

DD

Technische Sicht• 1 Instruktionszeiger• Kontextwechsel

Technische Sicht• 1 Instruktionszeiger• Kontextwechsel

Mehrprogrammbetrieb

A B C D

NebenläufigeProzesse

Konzeptionelle Sicht• 4 unabhängige

sequentielleKontrollflüsse

Konzeptionelle Sicht• 4 unabhängige

sequentielleKontrollflüsse

Zeit

DCBA

Prozess

Realzeit-Sicht(Gantt-Diagramm)• Zu jedem Zeitpunkt

ist nur ein Prozessaktiv(Uni-Prozessor-HW)

Realzeit-Sicht(Gantt-Diagramm)• Zu jedem Zeitpunkt

ist nur ein Prozessaktiv(Uni-Prozessor-HW)

Multiplexing der CPU

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 30

Prozessverhalten und -zustände (3)

RUNNING

BLOCKED READY

A

B C

Zeit

CPUA

B

C

jetzt

Prozesszustände● RUNNING

– Prozess wird gerade ausgeführt

● READY– Prozess ist rechenbereit,

wartet auf die CPU● BLOCKED

– Prozess wartet auf die Beendigung einer E/A-Aktivität

Prozesszustände● RUNNING

– Prozess wird gerade ausgeführt

● READY– Prozess ist rechenbereit,

wartet auf die CPU● BLOCKED

– Prozess wartet auf die Beendigung einer E/A-Aktivität

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 31

E/A

Prozessverhalten und -zustände (3)

RUNNING

BLOCKED READYA B

C

Zeit

CPUA

B

C CPU

jetzt

Prozess A hat einen E/A-Vorgang gestartet und ist in den Zustand BLOCKED übergegangen. Da A die CPU nun nicht benötigt, hat das Betriebssystem den Prozess C ausgewählt und von READY in RUNNING überführt. Es fand ein Kontextwechsel von A zu C statt.

Prozess A hat einen E/A-Vorgang gestartet und ist in den Zustand BLOCKED übergegangen. Da A die CPU nun nicht benötigt, hat das Betriebssystem den Prozess C ausgewählt und von READY in RUNNING überführt. Es fand ein Kontextwechsel von A zu C statt.

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 32

E/A

Prozessverhalten und -zustände (3)

RUNNING

BLOCKED READYA

B

C

Zeit

CPUA

B

C CPU

CPU

jetzt

Zeitscheibeabgelaufen

C hat die CPU zu lange „besessen“, wurde „verdrängt“ und ist daher nun wieder im Zustand READY. Damit kann jetzt endlich auch B bearbeitet werden und wird RUNNING.

C hat die CPU zu lange „besessen“, wurde „verdrängt“ und ist daher nun wieder im Zustand READY. Damit kann jetzt endlich auch B bearbeitet werden und wird RUNNING.

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 33

E/A

Prozessverhalten und -zustände (3)

RUNNING

BLOCKED READYA

B

C

Zeit

CPUA

B

C CPU

Die E/A-Operation von A ist nun abgeschlossen. Daraufhin wird A nun READY und wartet auf die Zuteilung der CPU.

Die E/A-Operation von A ist nun abgeschlossen. Daraufhin wird A nun READY und wartet auf die Zuteilung der CPU.

CPU

jetzt

Zeitscheibeabgelaufen

E/A-Operationfertig

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 34

CPU-Zuteilung (Scheduling)

Warteschlange

verdrängte Aufträge

neueAufträge

beendeteAufträge

Ein einzelner Scheduling-Algorithmus charakterisiert sich durch dieReihenfolge von Prozessen in der Warteschlange und die Bedingungen,unter denen die Prozesse der Warteschlange zugeführt werden.

Ein einzelner Scheduling-Algorithmus charakterisiert sich durch dieReihenfolge von Prozessen in der Warteschlange und die Bedingungen,unter denen die Prozesse der Warteschlange zugeführt werden.

CPUCPU

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 35

CPU-Zuteilung (Scheduling)(auch “Ablaufplanung”)

● Sorgt für den geordneten Ablauf konkurrierender Prozesse

● Grundsätzliche Fragestellungen

– Welche Arten von Ereignissen führen zur Verdrängung?

– In welcher Reihenfolge sollen Prozesse ablaufen?

● Ziele eines Scheduling-Algorithmus

– benutzerorientiert, z.B. kurze Antwortzeiten

– systemorientiert, z.B. optimale CPU-Auslastung

● Kein Scheduling-Algorithmus kann alle Bedürfnisse erfüllen.

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 36

Prozesssynchronisation● Beispiel: unkoordinierter Druckerzugriff

...print("Hallo Otto\n");print("Ruf mich an.\n");print("Tel.: 420815\n");...

...print("Hallo Otto\n");print("Ruf mich an.\n");print("Tel.: 420815\n");...

...print("Karl-");print("Ich mag dich.\n");...

...print("Karl-");print("Ich mag dich.\n");...

Prozess A Prozess B

Hallo Karl-OttoRuf mich an.Ich mag dich.Tel.: 420815

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 37

Prozesssynchronisation● Ursache: kritische Abschnitte● Lösungsmöglichkeit: Gegenseitiger Ausschluss

– Mutex-Abstraktion

...lock(&printer_mutex);print("Hallo Otto\n");print("Ruf mich an.\n");print("Tel.: 420815\n");unlock(&printer_mutex);...

...lock(&printer_mutex);print("Hallo Otto\n");print("Ruf mich an.\n");print("Tel.: 420815\n");unlock(&printer_mutex);...

...lock(&printer_mutex);print("Karl-");print("Ich mag dich.\n");unlock(&printer_mutex);...

...lock(&printer_mutex);print("Karl-");print("Ich mag dich.\n");unlock(&printer_mutex);...

Prozess A Prozess B

Wenn sich einer der Prozesse A oder B zwischen lock und unlock befindet,kann der jeweils andere das lock nicht passieren und blockiert dort, bis derkritische Abschnitt wieder frei ist (unlock).

Wenn sich einer der Prozesse A oder B zwischen lock und unlock befindet,kann der jeweils andere das lock nicht passieren und blockiert dort, bis derkritische Abschnitt wieder frei ist (unlock).

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 38

Verklemmungen (Deadlocks)

Es gilt: „Rechts vor links!“Kein Auto darf fahren.Es gilt: „Rechts vor links!“Kein Auto darf fahren.

Verklemmungssituationenwie diese kann es auchbei Prozessen geben.

Verklemmungssituationenwie diese kann es auchbei Prozessen geben.

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 39

Interprozesskommunikation● … ermöglicht die Zusammenarbeit mehrerer Prozesse

– lokal (local), z.B. Drucker-Dämon, X-Server

– entfernt (remote), z.B. Webserver, Datenbank-Server, ftp-Server

● „Client/Server-Systeme“

● Abstraktionen/Programmiermodelle

– Gemeinsamer Speicher

● mehrere Prozesse dürfen gleichzeitig denselben Speicherbereich nutzen

● zusätzlich Synchronisation notwendig

– Nachrichtenaustausch

● Semantik eines Faxes (verschickt wird die Kopie einer Nachricht)

● synchron oder asynchron

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 40

Inhalt● Was ist ein Betriebssystem?

● Ein Blick in die Geschichte– Serielle Verarbeitung und Stapelbetrieb

– Mehrprogramm- und Dialogbetrieb

● Systemabstraktionen im Überblick– Prozesse

● CPU-Zuteilung● Synchronisation und Verklemmungen● Interprozesskommunikation

– Speicherverwaltung● Arbeitsspeicher● Hintergrundspeicher

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 41

Die Speicherhierarchie Sehr wirtschaftlichdurch dasLokalitätsprinzip!

Sehr wirtschaftlichdurch dasLokalitätsprinzip!

Intern:Register

Cache

Vordergrundspeicher:RAM/ROM/FLASH

Hintergrundspeicher:Festplatte, Solid-State-Disk

Wechselspeicher:Magnetband, DVD, Blu-ray, USB-Stick

Netzwerkspeicher:Netzwerklaufwerk/-dateisystem, Cloud-Speicher

Speichereigenschaften● steigende Zugriffszeiten● steigende Kapazität● sinkender Preis pro Bit

Speichereigenschaften● steigende Zugriffszeiten● steigende Kapazität● sinkender Preis pro Bit

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 42

Speicherverwaltung● Adressabbildung

– Logische Adressen aufphysikalische Adressen

– Gestattet Relokation von Code u. Daten

● Platzierungsstrategie– In welcher Lücke soll Speicher

reserviert werden?

– Kompaktifizierung verwenden?

– Wie minimiert man dasFragmentierungsproblem?

● Ersetzungsstrategie– Welcher Speicherbereich

könnte sinnvollausgelagert werden?

BetriebssystemBetriebssystem

Programm A(text, data, bss, stack)

Programm A(text, data, bss, stack)

Arbeitsspeicher

0000

FFFFProgramm D

(text, data, bss, stack)Programm D

(text, data, bss, stack)

unbenutztunbenutzt

Programm B(text, data, bss, stack)

Programm B(text, data, bss, stack)

unbenutztunbenutzt

Programm C(text, data, bss, stack)

Programm C(text, data, bss, stack)

?

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 43

Logische Sicht

Physikalische Sicht

Hintergrundspeicher

Festplatte mit6 OberflächenFestplatte mit6 Oberflächen

Rotationsachse

Sektor

Spuren

...

Schreib-/Leseköpfe

/

usr home

os mm hsc jsbin local

bs.pdf Datei

Verzeichnis

Dateisysteme erlauben diedauerhafte Speicherunggroßer Datenmengen.

Dateisysteme erlauben diedauerhafte Speicherunggroßer Datenmengen.

Das Betriebssystem stellt den Anwendungen die logische Sicht zur Verfügung und mussdiese effizient realisieren.

Das Betriebssystem stellt den Anwendungen die logische Sicht zur Verfügung und mussdiese effizient realisieren.

Abbildung

01.04.2019 Betriebssysteme: 02 - Abstraktionen und Strukturen 44

Fazit: Das Betriebssystem …● verwaltet Betriebsmittel, insbesondere CPU und Speicher

● stellt Abstraktionen zur Verfügung, z.B. …– Prozesskonzept

– Dateien und Verzeichnisse

● ist für ein bestimmtes Anwendungsprofil optimiert– allen Anwendungen 100% gerecht zu werden ist unmöglich

Betriebssysteme, typische Anwendungen und Hardware habensich Hand in Hand im Laufe der vergangenen Jahrzehnteentwickelt. Die heute üblichen Systemabstraktionen sind dasErgebnis einer Evolution, deren Ende nicht in Sicht ist.

Betriebssysteme, typische Anwendungen und Hardware habensich Hand in Hand im Laufe der vergangenen Jahrzehnteentwickelt. Die heute üblichen Systemabstraktionen sind dasErgebnis einer Evolution, deren Ende nicht in Sicht ist.