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
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 10
Woch
e 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
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.
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!!� �������� �� �� � �� � � �� �� � �
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
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
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
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
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
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
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
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
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
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
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:
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
...
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