betriebssysteme: 02 - abstraktionen und strukturen · – struktur und funktionsweise ergeben sich...
TRANSCRIPT
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.