1. Überblick
Betriebssysteme
am Beispiel klassische Betriebssysteme
q
Einführung und Überblick
s
Linux Hardware-Grundlagen
s
Prozessverwaltung
s
Speicherverwaltung
s
Dateisysteme
s
Ein-/Ausgabe
s
Deadlocks
s
Einführung in Linux/Unix
q
Überblick, Installation, System-Grundlagen
s
Fachhochschule Pforzheim Dateisystem, die Shell, Task-Management,
s
Linux administrieren, die grafische Oberfläche
s
Prof. W. Burkard Linux im Netz: NIS und NFS
s
Praxisteil Java-Threads
q
FB 7, Studiengang Wirtschaftsinformatik
Threads und Prozesse in Java
s
die Synchronisationsproblematik und ihre Lösungen
s
Interprozesskommunikation
s
Prof. W. Burkard 1 Prof. W. Burkard 2
Stichworte Stichworte
Notizen Notizen
14:00, 09.07.2007
Von Yan, Jörg, Marcus , 14:00, 09.07.2007
1 2
2. Organisation der Vorlesung Literatur
Teilnehmer
[Tannen95] Andrew S. Tannenbaum, Moderne Betriebssysteme,
Betriebswirte SG Wirtschaftinformatik
s
Hanser-Verlag München/Wien 1995
s Bachelor of Information Systems
[Oechsle01] Rainer Oechsle, Parallele Programmierung mit Java
s Ingenieure der Elektrotechnik Diplom/Bachelor
Threads, Hanser-Verlag München/Wien 2001
[Nehmer01] Jürgen Nehmer und Peter Sturm, Systemsoftware
oc 1
oc 12
oc 0
14
oc 3
(Grundlagen moderner Betriebssysteme), dpunkt-Verlag, Heidelberg 2001
5
1
3
7
2
6
1
4
1
9
8
1
he
he
he
he
he
he
he
he
he
he
he
he
he
he
[Kredel02] H. Kredel & A. Yoshida, Thread- und Netzwerkprogrammierung mit Java,
oc
oc
oc
oc
oc
oc
oc
oc
oc
oc
W
W
W
W
W
W
W
W
W
W
W
W
W
W
dpunkt-Verlag, Heidelberg 2002
[Brause98] Rüdiger Brause, Betriebssysteme, Springer-Verlag, Berlin 1998
für Betriebswirte keine Pflicht
Pflichtteil Betriebswirte [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
Pflichtprogramm für alle Ingenieure Thread- [Stucky97] Wolffried Stucky, Der Rechner als System,
Betriebssysteme Theorie (7) Linux / Unix-Teil (4) Programming (3)
Teubner-Verlag, Stuttgart 1997
Prof. W. Burkard 3 Prof. W. Burkard 4
Stichworte Stichworte
Notizen Notizen
3 4
3. Aufgaben der Betriebssysteme Geschichte der Betriebssysteme
Definition: Generation 1: Generation2:
Das Betriebssystem steuert und verwaltet die vorhandenen Betriebsmittel eines Rechners Rechner ohne Betriebssystem, keine Idee des Stapelbetriebes mit getrennten
und stellt den Anwendern und den Anwendungsprogrammen Schnittstellen zur Verfügung, Unterscheidung der Anwender in Systemen für Eingabe, Verarbeitung, Ausgabe.
die den möglichst einfachen und damit effiziente Umgang mit den Ressourcen ermöglichen. Entwickler,Operateur, Programmierer Der teuere Rechner wurde besser ausgenutzt,
und Nutzer. ( bis Mitte der 50er) durch Verringern der Stillstandszeiten.
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
Prof. W. Burkard 5 Prof. W. Burkard 6
Stichworte Stichworte
Notizen Notizen
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.
5 6
5. Schnittstelle
Betriebssystem?
vernetzte Rechner Was ist das eigentlich?
Anwendungsprogramme
neue Herausforderungen: SAP/R3 MS-Office Browser ...
Betriebssysteme mehrerer Rechner müssen miteinander kommunizieren
Compiler Editoren MMS
Ressourcenverteilung über Rechnergrenzen hinweg
Systemprogramme
Entstehung von Arbeitsteilung und Spezialisierung im Verbund (=Client/Server)
BETRIEBSSYSTEM
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.
Maschinensprache
Hardware
verteilte Betriebssysteme:
Das gesamte Netz erscheint dem Anwender gegenüber wie ein einziger Rechner. Mikroprogramme GUI
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. physikalisches Gerät
Prof. W. Burkard 9 Prof. W. Burkard 10
Stichworte Stichworte
MMS = Mensch-Maschine-Schnittstelle, in der Regel
Kommandointerpreter bzw. grafische Benutzeroberfläche
Schnittstelle zw. Anwendungsprogrammen und Hardware
Notizen Notizen
9 10
6. I
Wozu brauchen wir ein BS?
Softwarestrukturen in einem Rechner
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
q
Benutzung eines Dateisystems, das seinerseits eine Festplatte bzw. Blöcke nutzt
q
Benutzung eines Datenbank-Systems, das auf einem Dateisystem aufsetzt, das ...
q
Verwendung persistenter Objekte in einer OO-Programmierumgebung, die eine
q
Datenbank als Unterstützung voraussetzt, die auf einem Dateisystem fußt, das ...
Prof. W. Burkard 11 Prof. W. Burkard 12
Stichworte Stichworte
MMS = Mensch-Maschine-Schnittstelle, in der Regel
Daten sind persistent, wenn sie die Lebensdauer in
Kommandointerpreter bzw. grafische Benutzeroberfläche
der Applikation, in der sie entstanden sind,
überleben.
Notizen Notizen
-Klasse ist ein Plan, es beschreibt wie ein
objektorientierte Objekt auszusehen hat
Programmierung
Java: Klasse = Bauplan
11 12
7. II III
Wozu brauchen wir ein BS? Wozu brauchen wir ein BS?
Das Beispiel zeigt: Der direkte Umgang der Anwendungsprogramme mit der Hardware ist aus mehreren
Gründen problematisch:
q Es wird immer ein Gerät benutzt (Festplatte)
Schnittstellen zu Geräte-Controllern sind heute zwar weitgehend genormt, aber
q
q Es gibt mehrere unterschiedliche Abstraktionsebenen
dennoch unhandlich.
q Welche Abstraktionsebene gewählt wird ist sehr stark von der Anwendung abhängig
Koordination von Prozessor und anderen Komponenten mit den hardwareseitig
q
Schnittstelle einer
q Wie lassen sich die Dienste einer Abstraktionsebene nutzen ?
verfügbaren Hilfsmitteln (Interruptmechanismen, Zyklisches Abfragen (Polling) ) führt
es gibt ein Laufzeitpaket, d.h. einer Anwendung wird eine Menge von Funktionen
q
Anwendung zu zu schwer durchschaubaren Progammstrukturen, die wir auf Anwendungsebene nicht
zur Verfügung gestellt, die den Zugang zu den gebotenen Diensten ermöglicht. haben wollen.
einem Dienst der
(Application Programming Interface API )
Direkter Hardwarezugriff bedeutet in Mehrbenutzerbetrieb schwerwiegende
q
q Die gebotenen Dienste können vom BS selbst oder aber von anderen Serviceleistern
Abstraktionsebene Schutzprobleme durch unvermeidbare Benutzung privilegierter Instruktionen
erbracht werden (dann aber ist das BS nur als Vermittler tätig)
Ohne unterstützende Software ist die Abwicklung unabhängiger Benutzeraktivitäten in
q
q Die Dienste des Betriebsystems werden also durch einen „ganz normalen“
einem Multiuserbetrieb undenkbar, Koordinationsaufwand zu komplex.
Prozeduraufruf angefordert.
q Dieser „ganz normale“ Prozeduraufruf wird system call (Systemaufruf) genannt und
Anwender wünschen sich indirekten Zugang zur Hardware über eine Dienstschicht,
mündet in aller Regel in einem TRAP (Einsprung in den Betriebssystemkern)
die quasi eine virtuelle Maschine darstellt und komfortabel benutzbar ist.
TRAP (Falltür)
Prof. W. Burkard 13 Prof. W. Burkard 14
Ein Systemaufruf, auch Systemcall (von engl.
= entladen des
system call) oder kurz Syscall, ist in der
Stichworte Stichworte
Prozesses aus dem
Computertechnik eine Methode, um von einem
Speicher und
Benutzer-Prozess aus Aufgaben im
Ergebnisse des system
Systemkontext ausführen zu lassen.
calls verschicken an
das BS
Eine Programmierschnittstelle ist eine Schnittstelle, die von einem
Softwaresystem anderen Programmen zur AnbindungNotizen System
an das
Notizen
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
13 14
API bezeichnet.
8. Grundlagen: Systemaufrufe System calls
Problem:
Anwendungsprogramme kommunizieren mit dem Betriebssystem indem sie
q Wie verhindert man, dass bei Verschiebungen des BS im Speicher die Anwendungen neu
q
Systemaufrufe tätigen. == Aufruf von Systemfunktionen kompiliert werden müssen, um die Systemprozeduren korrekt anzusprechen ?
Anwendungsentwicklungssysteme müssen alle Systemaufrufe in Bibliotheken vorrätig
q
Lösung:
halten.
Speichern aller Aufrufparameter auf dem Stack und Auslösen eines speziellen
q
Die Bibliotheksfunktionen rufen durch sogenannte TRAPs das Betriebssystem
q
Hardwaresignals (sogenannter Softwareinterrupt)
Wie bei einem „normalen“ Hardware-Interrupt speichert der Prozessor seinen aktuellen
q
Beispiel: Lesen von Datei Stand, springt in die Interruptbehandlung und erledigt den geforderten Job, um dann an die
Stelle des Abbruches zurückzukehren.
q im Programmcode stehe:
Die Interruptbehandlungsroutine ist
q
anzahl = read(Dateiname,Zielspeicherplatz-im-Hauptspeicher, Anzahl-zu-lesender-Bytes)
somit der zentrale Einsprungpunkt
Bibliotheksfunktion read prüft die Parameter und startet dann das BS mit den
q
in den BS-Kern
angegebenen Parametern durch einen TRAP Da nach einem Systemaufruf die
q
Betriebssystem suspendiert den laufenden Prozeß und erledigt die geforderte
q nächste Instruktion nicht gleich
Aufgabe. Dann schreibt es die Anzahl der gelesenen Bytes in die entsprechende ausgeführt wird, sondern die
Befehlsausführung am BS-Einsprung
Prozeßvariable und schaltet den Prozeß wieder “rechenbereit”.
plötzlich „aufhört“, wird der
Prozeß läuft bei der Bibliotheksfunktion wieder weiter.
q
Softwareinterrupt auch als Falltür
Bibliotheksfunktion liefert der rufenden Funktion die Anzahl gelesener Bytes
q (trap door, kurz TRAP) bezeichnet
fällt in Falltür
Prof. W. Burkard 15 Prof. W. Burkard 16
Programmcounter
Stichworte Stichworte Register in CPU Prozessor Status
java.lang - automatisch geladene Bib
Stack = Stapel (Aufgabenliste)
(enthält READ, OUT, etc.)
BS = Betriebssystem
Interrupt = Unterbrechung
Notizen Notizen
-mitten im Programm quot;system callquot;
-der Zustand wird gespeichert (stack) und zu
einem späteren Zeitpunkt genauso wieder
hergestellt
-die Anwendung bekommt davon nichts mit
15 16
9. alles außer
kritische Dinge
Architekturbeispiel Linux / Unix Architekturbeispiel Mach
Anwender
Experten
Prof. W. Burkard 17 Prof. W. Burkard 18
alles möglich
Stichworte Stichworte
MMS = Mensch-Maschine-Schnittstelle, in der Regel MMS = Mensch-Maschine-Schnittstelle, in der Regel
Kommandointerpreter bzw. grafische Benutzeroberfläche Kommandointerpreter bzw. grafische Benutzeroberfläche
Notizen Notizen
-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
17 18
10. I
Schichtung und Systemaufrufe bei W2K Ein- und Mehrprozessorsysteme
Anwendungsprogramme
Bei der Rechnerarchitektur, für die ein Betriebssystem Ressourcen verwalten soll,
müssen grundsätzliche Konfigurationen unterschieden werden
von Neumann-
Architektur
Massen- BS- Anw. 1 Anw. 2 ... Anw. n
speicher Kern
Prozessor
Simples Einprozessorsystem
Betriebssystem Im einfachsten klassischen Fall gibt es nur einen Prozessor, der
Hauptspeicher und Massenspeicher benutzt, um das
Betriebssystem (BS) und die Anwendungsprogramme auszuführen
Prof. W. Burkard 19 Prof. W. Burkard 20
Stichworte Stichworte
MMS = Mensch-Maschine-Schnittstelle, in der Regel MMS = Mensch-Maschine-Schnittstelle, in der Regel
Kommandointerpreter bzw. grafische Benutzeroberfläche Kommandointerpreter bzw. grafische Benutzeroberfläche
Notizen Notizen
kernel mode verlagert Dienste in den user mode,
dadurch sichert es die stabilität des kernel mode
19 20
11. II III
Ein- und Mehrprozessorsysteme Ein- und Mehrprozessorsysteme
• Einprozessorsysteme können mit mehreren Prozessoren aufgerüstet werden Interessante Beobachtung bei Mehrprozessorsystemen:
• Durch unterschiedliche Kopplungskonzepte entstehen unterschiedliche Architekturen Oft spricht jeder Prozessor nur einen eng umgrenzten Speicherbereich an
• Die einfachste Architektur sieht nur eine Vervielfachung der CPU vor, alle CPUs hängen dann ( in dem sich die von ihm gerade abgearbeitete Anwendung befindet )
immer nur
parallel an einem Verbindungsnetzwerk (Multi-Master-Systembus) Daher die Idee: Aufteilen des Speichers und enger an den Prozessor binden
verdopplung
• Der Systembus verbindet die Prozessoren auf der einen Seite mit den Speichermodulen auf der
BS- Anw. 1 BS- Anw. 2 BS- Anw. n
anderen Seite.
Kern Kern Kern
• Bei intensiver Nutzung wird der Bus zum Flaschenhals Leistungseinbußen
... ...
Prozessor n
Prozessor 2
Prozessor 1 Prozessor 1 Prozessor 2 Prozessor n
Multi-Master-Systembus
Multi-Master-Systembus
Massen- Massen- BS- Anw. 1 Anw. 2 ... Anw. n
Multiprozessorsystem (lose Kopplung)
speicher Kern
speicher Massen- Massen-
speicher speicher parallel
Multiprozessorsystem (enge Kopplung)
Prof. W. Burkard 21 Prof. W. Burkard 22
seriell
durch dieses
Stichworte Stichworte
Design tauchen
MMS = Mensch-Maschine-Schnittstelle, in der Regel MMS = Mensch-Maschine-Schnittstelle, in der Regel
andere Probleme
Kommandointerpreter bzw. grafische Benutzeroberfläche Kommandointerpreter bzw. grafische Benutzeroberfläche
auf
Notizen Notizen
bearbeiten getrennt voneinander anwendungen parallel
bearbeiten zusammen anwendungen hintereinander
- symmetrisches Multiprozessing
Probleme: CPU1 lagert im Cache und CPU2 soll mit Werten
= prinzipiell verteilen sich die Prozesse auf
aus CPU1 weiterrechnen - hat die aber noch nicht!
mehrere CPU´s
CPU-Cache-Bus-RAM
21 22
12. IV
Grundlagen: Prozesse
Ein- und Mehrprozessorsysteme
Was geschieht, wenn man jedem Prozessor ein eigenes Betriebssystem gibt?
MERKE: Prozesse sind das wesentliche Konzept aller Betriebssysteme
Vollkommen unabhängige Rechner mit jeweils eigenem (eventuell unterschiedlichem)
Ein Prozeß ist ein
Betriebssystem werden lose über ein Netzwerk gekoppelt
in Ausführung befindliches Programm! Prozeß
Cluster = sehr schnelles Netzwerk räumlich dicht beieinander stehender Rechner
Prozeß
CPU-Register
Er umfaßt: -
Kontext
den ausführbaren Programmcode
q
BS- Anw. BS- Anw. MMU-Register
Massen- die Programmdaten (Variablen und
q
Kern Massen- Kern
Konstanten des Programmes) Stapel (Stack)
speicher speicher
... Kernel-Stack
den Programmzähler (zeigt auf die
q
Daten (Heap)
aktuell zu bearbeitende Anweisung)
Datei-Info, Zugriffsrechte
Stack und Stackpointer ( Zwischenpuffer
q
Programmcode
Prozessor 1 für beim Programmlauf anfallende Daten)
Prozessor 2
alle weiteren Informationen, die das
q
Betriebssystem zur Ausführung des Programmes benötigt
Prozeßtabelle=
Tabelle des Betriebssystems, in der alle Infos eines jeden Prozesses gespeichert sind
Verbindungsnetzwerk LAN, WAN ...
Threads („Handlungsfäden“) = leichtgewichtige Prozesse innerhalb von Prozessen, vom
Anwendungsprogrammierer definiert!
Rechnernetz / Cluster
Prof. W. Burkard 23 Prof. W. Burkard 24
Klausuraufgabe:
Stichworte Stichworte
Unterschied zw. Algorithmus(1), Programm(2), Prozess(3)
MMS = Mensch-Maschine-Schnittstelle, in der Regel
Kommandointerpreter bzw. grafische Benutzeroberfläche
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)
Notizen Notizen
zu 2) - praktische Möglichkeit (PRAXIS)
-lose gekoppelte-parallel-Architektur - enthält Algorithmen (ausführbar)
=1000 Rechner über Hochleistungsnetz mit einander zu 3) - in Ausführung befindliches Programm
- löst das Programm
verbunden
-viele einzelne Rechner = Cluster
-nicht mit Bus sondern über LAN verbunden
23 24
13. Grundlagen: Dateien
Prozesse leben und sterben...
Das Betriebssystem erzeugt, verwaltet und eliminiert Prozesse. Zur Erinnerung: Das BS verbirgt die Physik einer Festplatte (Zylinder,Spuren...)
q
Prozeß A
und schafft dem Anwender eine einfache Schnittstelle: Dateien
Ein Prozeß kann andere Prozesse erzeugen == Prozeßbaum
Prozeß B Prozeß C
Das Konzept der Dateien und Dateiverzeichnisse
q
gängige Systemaufrufe (System-Calls):
“erzeuge Kindprozeß B“
s
Wurzelverzeichnis (root directory)
“lösche mich”
s
Prozeß D Prozeß E Prozeß F
“Ich warte auf Ende meines Kindprozesses E”
s
“Ersetze im Prozeß F den Programmcode durch Code yyy”
s
“ich brauche mehr Speicher”
s
Pogramme System Benutzer
Prozesse können miteinander und mit dem BS “reden” == Interprozeßkommunikation
Prozesse in Timesharing-Systemen haben einen Besitzer == Sicherheitsproblem MS-Office SAP/R3 Anna Karl Ute
uid = user identification
Programme werden zwangsweise
gid = group identification
daran gehindert, versehentlich oder Urlaub DA Studienangelegenh.
Prof. W. Burkard 25 Prof. W. Burkard 26
absichtlich auf den Speicherbereich
anderer Programme zuzugreifen oder
Stichworte Stichworte
das Betriebssystem anders als durch
standardisierte „Eingänge“ zu
benutzen. Hardwareseitige
Voraussetzung ist eine
Speicherverwaltungseinheit (MMU),
die Speicherschutz unterstützt.
Notizen Notizen
- erster Prozess entsteht beim booten
- BS übernimmt
erstes Dienst(Prozess) unter Windows
- Explorer
= Kommandointerpreter
25 26
14. Grundlagen:
Copyright(C) by Foxit Software Company,2005-2007
Handhabung von Dateien Kommandointerpreter
Vor dem Lesen oder Schreiben muß man eine Datei öffnen Das Betriebssystem ist also das Programm, das alle Systemaufrufe ausführt.
q q
== Zugriffsrechte regeln den Zugriff
q Idee: Eine Datei sei ein Ding, in welches man hineinschreiben oder aus dem man Der Kommandointerpreter ist das Programm, das dem Anwender einen Zugang
q
lesen kann == dann sind viele Geräte auch “Dateien” !!! zum Betriebssystem verschafft, wenn keine Anwendung da ist, die das tun
Also: könnte !!!
q normale Datei: blockorientierte Byteansammlung auf der Festplatte/Diskette
cmd
q spezielle Form: zeichenorientierte „Dateien“, z.B. Tastatur, Bildschirm, Drucker textuelle Kommandointerpreter (z.B. DOS: Command.com)
q
Peripherie stellen eine einfache Sprache zur Verfügung, um Systemaufrufe sinnvoll zu
q Pipe, eine „Datei“ für die Interprozesskommunikation
nutzen. Beispiel: DIR DEL COPY
Edited by Foxit Reader
A B
For Evaluation Only.
grafische Benutzeroberflächen: (grafische Interpreter)
q
stellen eine erweiterte MMS (Mensch-Maschine-Schnittstelle) zur Verfügung:
Der Computer ist für den Anwender das, was die MMS ihm zeigt.
Zwei Prozesse, die durch zwei Pipes verbunden sind. Eine Pipe
ist unidirektional, man kann sie nur lesen ODER schreiben!
Alternativ-Begriff: shell
q
Art Zwischenablage / virtuelle Verbindung zw. Prozessen
nur eine Richtung
Prof. W. Burkard 27 Prof. W. Burkard 28
Stichworte Stichworte
Explorer = Kommandointerpreter in Windows
aus Tastatur wir gelesen wie in einer Datei / in Drucker
schreibt man wie in eine Datei Kommandointerpreter = Notprogramm
Pipe wird von Prozess erstellt und autom. von Windows beendet
Notizen Notizen
27 28
15. Monolithische
“Ummantelung” des Systems durch
Betriebsystemstrukturen
Kommandointerpreter
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:
shell-Kommandos Dienstprogramme Anwendungen
grafische oder textuelle Shell
(z.B. Windows-Oberfläche bzw.
command.com)
Betriebssystemkern mit allen
Systemfunktionen
Treiber A Treiber B Treiber C ... Treiber n
Gerät A Gerät B Gerät C ... Gerät n
Prof. W. Burkard 29 Prof. W. Burkard 30
Stichworte Stichworte
Notizen Notizen
original Interpreter (shell) kann ersetzt werden (in config.sys): Als monolithischen Kernel bezeichnet man einen
durch anderes Programm - gesamtes System dann aber nur noch Betriebssystemkern, in dem nicht nur Funktionen zu Speicher- und
so mächtig wie dieses Programm! Prozessverwaltung und zur Kommunikation zwischen den
Prozessen, sondern auch Treiber für die Hardwarekomponenten
und möglicherweise weitere Funktionen direkt eingebaut sind.
29 30
16. Virtuelle Maschinen Client-Server-Architektur
in einem Rechner:
Idee: Bau eines leistungsfähigen Multiuser-Multitasking-Systems durch Verwendung
vorhandener, einfacher Betriebssysteme, denen ein “Verteiler” untergeschoben
Client- Client- Client- Server- Server-
... Benutzermodus
wird. (Beispiel PC/MOS386) Prozeß Prozeß Prozeß Prozeß Prozeß
Kernmodus
virtuelle MS-DOS-PCs
Betriebssystemkern
BS-Kern bzw. Netzwerk sichern die Kommunikation zwischen C+S
DOS DOS DOS in einem Netz:
hier: Systemaufruf
Rechner 1 Rechner 2 Rechner 3 Rechner n
hier: Ein- /Ausgabe-
modifiziertes MSDOS-BIOS
operation Klient Klient Klient Klient
...
hier: TRAP
Kern Kern Kern Kern
(unter DOS sind dies
SW-Interrupts)
PC-MOS386-Betriebssystem
hier: TRAP ins MOS
Netzwerk
die “nackte” Hardware des PC Nachricht vom Client
zum Server
natives BS
Prof. W. Burkard 31 Prof. W. Burkard 32
Stichworte Stichworte
Vgl.
VPN = virtuelles privates Netzwerk in einem
öffentlichen reellen Netz
Notizen Notizen
Eine IP-Adresse identifiziert einen Rechner.
Eine Port-Nr. identifiziert eine Anwendung.
- Schlussendlich kommunizieren die Anwendungen,
nicht die Rechner!
Eindeutige Identifizierung durch IP+PORT
= SOCKET-NUMBER
31 32
17. NEIN!
Alles klar ?? Dann zurück
zu Seite 1!
1. Nennen Sie die Aufgaben von Betriebssystemen
2. Erläutern Sie den Unterschied zwischen preemptive und non-preemptive
zu 1) Prozesse aufrufen, beenden, speichern und
scheduling
3. Warum wird Spooling heute insbesondere bei der Ausgabe auf Drucker koordinieren.
verwendet?
Komfortabler Zugriff auf Hardware-Ressourcen.
4. Worin liegt der Vorteil, wenn die Shell nicht Teil des Betriebssystems ist?
Schafft Kommunikationswege zw. den einzelnen
5. Warum macht das in verteilten Systemen beliebte Client/Server-Modell auch in
Einzelplatzrechnern Sinn ?
Ressourcen des Systems, den Anwendungsprogrammen
6. Warum benötigt ein PC mit nur einem Prozeß keine Prozeßtabelle?
und dem Menschen.
7. welche der nachstehenden Aktionen sollten nur im Kern und niemals im
Benutzermodus laufen? Steuern und überwachen von Software.
- Sperren aller Unterbrechungsleitungen
zu 2) non-preemtive = laufender Prozess gibt CPU frei
- Lesen der Tageszeit
- Setzen der Tageszeit preemptive = das BS gibt frei
zu 3) Druckaufträge werden im quot;Stackquot; gespeichert und
dann nacheinander gedruckt,d.h. Drucker gibt frei
Prof. W. Burkard 33
zu 4) Wenn BS abstürzt kann man durch shell neustarten.
Stichworte
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
Notizen
-Sperren aller Unterbrechungsleitungen
(niemals dürfen Interuppts gesperrt werden)
-Setzen der Tagesezeit
(niemals dürfen Prozesse Zeiten ändern)
user mode
-Lesen der Tageszeit
33
18. ALU =
arithmetic
Hardware-Grundlagen Die CPU in der von-Neumann-Architektur
logic unit
• 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
uni- E/A-Gerätes (Breite je nach System 16,32,64 Bit (= Signalleitungen), dadurch
direkt- Festlegung des adressierbaren physikalischen Speichers)
ional • 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
beide Richtungen
bidirektional
Das Steuerwerk (englisch Control Unit, kurz CU) ist der Kern des
/8 Leitungen Prof. W. Burkard 34 Prof. W. Burkard 35
Mikroprozessors. Im Steuerwerk befinden sich Befehlsregister und
Befehlsdecoder. Seine Aufgabe ist die Abarbeitung des
Stichworte Stichworte
Programms, d.h. Befehl für Befehl eines Programmes werden
ein Bus verbindet mindestens 2 (oder mehrere)
durch das Steuerwerk des Mikroprozessors ausgeführt.
Stationen miteinander
Eine arithmetisch-logische Einheit (englisch arithmetic logic
paralleler Bus hat mehrere Leitungen
unit, daher oft abgekürzt ALU) ist ein elektronisches
Rechenwerk, welches in Prozessoren zum Einsatz kommt.
Notizen Notizen
Taschenrechner != CPU, da kein Steuerwerk
Steuerwerk interpretiert Befehlsregister und
inkrementiert Programmcounter um 1 und übergibt
dann den Befehl an CPU, diese Wertet aus, und
bekommt dann neuen Befehl.
34 35
19. Der zentrale Prozessor (CPU) Die von-Neumann-Architektur
• 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
Cache
• 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
Prof. W. Burkard 36 Prof. W. Burkard 37
Stichworte Stichworte
E/A Register wird behandelt wie Haupt-
wie unterscheidet man daten und instruktionen?
speicher (d.h. wie eine spezielle Datei)
-gar nicht!
Notizen Notizen
36 37
20. Der Bus in der von-Neumann-Architektur Gängige Systembusse
1
2
3
4 10100101
5
10100101
6
7
Zelle 4
8
schreiben
Prof. W. Burkard 38 Prof. W. Burkard 39
Cache mit vollem CPU-Takt, sonst
nur die CPU darf den Adressbus benutzen!
Stichworte Stichworte
quot;Flaschenhalseffektquot;-quot;Pipeliningquot;
Adressbus [Bearbeiten]
Datenbus [Bearbeiten] Ein Adressbus ist in der Computertechnologie - im Gegensatz zum Datenbus - ein Bus, der
Ein Datenbus überträgt Daten zwischen Computerbestandteilen nur Speicheradressen überträgt. Die Busbreite, also die Anzahl der Verbindungsleitungen,
innerhalb eines Computers oder zwischen verschiedenen bestimmt dabei, wieviel Speicher direkt adressiert werden kann. Wenn ein Adressbus n
Notizen Notizen
Computern. Anders als bei einem Anschluss, bei dem ein Gerät
Adressleitungen hat, können 2n Speicherstellen adressiert werden.
mit einem anderen Gerät über eine oder mehrere Leitungen
Dieser Bus ist unidirektional und wird vom jeweiligen Busmaster (s. a. oben) angesteuert.
verbunden ist, kann ein Bus mehrere Peripheriegeräte über den
Letzterer ist meistens die CPU, aber vor allem DMA-fähige Bausteine können diesen Bus
gleichen Satz von Leitungen miteinander verbinden.
auch übernehmen, wenn sie aktiv werden.
Die Bezeichnung als Datenbus wird in mehrfachem
Zusammenhang verwendet:
Steuerbus (Kontrollbus) [Bearbeiten]
• mit Betonung auf Daten: zur Abgrenzung gegenüber
Der Steuerbus ist ein Teil des Bussystems, welcher die Steuerung (engl. control) des
gemeinsamen Anschlüssen, wie der Stromversorgung
Bussystems bewerkstelligt. Hierzu zählen unter anderem die Leitungen für die Interrupt-
• mit Betonung auf Bus: zur Unterscheidung der Topologie, wie z.
Steuerung, Buszugriffssteuerung, der Taktung (falls ein Bustakt erforderlich ist), Reset- und
B. direkten Punkt-zu-Punkt-Verbindungen
Statusleitungen. Welche der Leitungen in einem Bus eingesetzt sind, ist von der Art und
• bei parallelen Bussen: zur Unterscheidung von Adress- oder
Struktur des Busses abhängig. In Multi-Master-Systemen, in denen mehr als ein Subsystem
38 39
Steuerleitungen
die Buskontrolle übernehmen kann, ist ein Arbiter als Entscheidungsinstanz erforderlich.
21. kommt noch!
Maschinenbefehle und Daten im Speicher 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
Programmcounter
• 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
Prof. W. Burkard 40 Prof. W. Burkard 41
Stichworte Stichworte
Notizen Notizen
Schiebeoperationen:
pipelining=64bit datenbus schickt benachbarte ...
Speicherzellen gleich mit
40 41