VL Betriebssysteme I - Operating Systems I

Werbung
Betriebssysteme
ws2000/2001
VL Betriebssysteme I Operating Systems I
Neuer Studienplan
gelesen von
Dr. Horst D. Clausen
SS 2001
Prof. Dr. H. D. Clausen - unisal
1
Literatur
• Silberschatz, Galvin „Operating System Concepts“, 5-th
ed. Addison Wesley
• A.S. Tanenbaum, „Operating Systems - Design and
Implementation“ (Minix), Prentice-Hall
• C. Crowley, Operating Systems - A Design Oriented
Approach, Irwin-Times Mirror
• H.-J. Siegert, U. Baumgarten, Betriebssysteme,
Oldenbourg, 1998
• R. Brause, „Betriebssysteme - Grundlagen und Konzepte“,
Springer-Verlag, 1998
• G. Weck, „Prinzipien und Realisierung von
Betriebssystemen“, B.G.Teubner 1989 (Sicherheit
–Referenzmonitor)
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
2
1
Betriebssysteme
ws2000/2001
Termine & Zeiten
• Di 8:15 - 10:00 (mit Pause)
• Proseminar:
– zwei Gruppen (@ 25)
SS 2001
Prof. Dr. H. D. Clausen - unisal
3
1. Einführung
1.1 Grundlagen
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
4
2
Betriebssysteme
ws2000/2001
Systemkonfiguration
Massenspeicher
Tape
Drucker
controller
controller
Terminal
controller
controller
bus
netw.interf.
controller
CPU
Speicher
LAN
SS 2001
Prof. Dr. H. D. Clausen - unisal
5
Softwarekonfiguration
Benutzer (user)
Applikationssoftware
Systemsoftware
Betriebssystem (Kern)
Hardware
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
6
3
Betriebssysteme
ws2000/2001
Rechnerarchitektur - I
Die einfachste Systemstruktur der ersten Rechner
Memory
CPU
SS 2001
Periph.
Gerät
Periph.
Gerät
I/O
Prof. Dr. H. D. Clausen - unisal
7
Rechnerkomponenten
• Leitungen (Bus): Busbreite (8/16/32/64 bit)
– control/status - Kommandos, Statusanzeigen
– address - Adressen
– data
- Datenleitungen
• Speicher (memory): Zellengröße(8/16/32/64 bit)
– access control unit
- Zugriffskontrolle
– organization (segments, pages) -Speicherorganisation
– (register file
- Registersatz)
• Zentralprozessor (CPU)
– ALU
- arithmet. - logische Funktionseinheit
– PSW, IR and control unit
- Programmstatuswort,
Befehlszähler Ablaufsteuerung,
– accumulators, registers
- Register, (Registersatz)
– interrupts, SW and HW - Unterbrechungen
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
8
4
Betriebssysteme
ws2000/2001
Rechnerarchitektur - II
Systemstruktur mit getrennter Ein-/Ausgabeeinheit (Kanal)
memory
Direkter
Speicherzugriff
CPU
SS 2001
access ctrl
Periph.
Gerät
Periph.
Gerät
DMA
interrupt
I/O
I/O-bus
Prof. Dr. H. D. Clausen - unisal
9
Rechnerarchitektur - III
Memory
Zentraler Bus
CPU
SS 2001
Prof. H. D. Clausen
Periph.
Gerät
Periph.
Gerät
access ctrl
I/O
ctrl
Prof. Dr. H. D. Clausen - unisal
10
5
Betriebssysteme
ws2000/2001
Rechnerarchitektur ENIAC
Memory
Data - Instr.
Daten
Rechnen
ALU
Befehle
ControlU.
I/O
SS 2001
Ein gemeinsamer
physischer Speicher
mit logischer
Unterscheidung von
Daten und Befehlen.
Steuern
Ein-/Ausgabe
Prof. Dr. H. D. Clausen - unisal
11
1. Einführung
1.2 Geschichte und Geschichten
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
12
6
Betriebssysteme
ws2000/2001
ENIAC und EDVAC
Wurden
von John
Mauchley
und J.
Presper
Eckert
erfunden
und auch
gebaut !
SS 2001
Prof. Dr. H. D. Clausen - unisal
13
ENIAC Architektur und ihre Abstraktion „von Neumann* Maschine“
Speicherwerk
Eingabewerk
Steuerwerk
Ausgabewerk
Rechenwerk
* John von Neumann veröffentlichte eine Beschreibung dieses
Systems aber ohne die eigentlichen Erfinder zu benennen –
Dieses Konzept wurde erstmals von Eckert und Mauchley in
Form der ENIAC gebaut – lange vor von-Neumann !
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
14
7
Betriebssysteme
ws2000/2001
„von Neumann Architektur“
Speicher
enthält:
Adresse
(nächste
r Befehl)
•
Daten und
•
Programme
Daten
(Ergebnis)
Instruktion
(Befehl)
Steuerwerk
Daten
Rechenwerk
Kontrollsignale
NICHT von Herrn von Neumann erfunden sondern nur
beschrieben und als abstraktes Konzept vorgestellt!
SS 2001
Prof. Dr. H. D. Clausen - unisal
15
von Neumann Architektur (SISD)
Adresse
(nächster
Befehl)
Speicher Mp
enthält:
D
Daten
•
Daten und
•
Programme
I
Programmzähler PC
Befehle/
Instruktionen
Befehlsregister IR
FC
Funktionscode
SS 2001
Prof. H. D. Clausen
Rechenwerk
ALU
Prof. Dr. H. D. Clausen - unisal
Mod
Operand
Modifier
Adresse,
direkter Operand
16
8
Betriebssysteme
ws2000/2001
Fetch-Execute Zyklus
REPEAT
IR := Mp[PC];
PC := PC+1
Execute (IR);
Behandlung von
Sprungbefehlen
IF (FC == JpClass) THEN
PC := Operand
END_IF;
UNTIL cpu_HALT;
SS 2001
Prof. Dr. H. D. Clausen - unisal
17
Interrupt Mechanismus
IR := Mp[PC]
IF (FC == JpClass): yes
no
PC := Operand
Execute (IR);
PC := PC+1
Interrupt
save PC;
PC := i-Loc
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
18
9
Betriebssysteme
ws2000/2001
Unterbrechungen
• Interrupts werden durch externe Signale ausgelöst
• Traps (Software Interrupts) werden hingegen intern
durch Instruktionen ausgelöst um z.B. einen
Prozesswechsel einzuleiten
• beide Arten der Unterbrechung bewirken die
Fortsetzung der Programmausführung an einer von
der Hardware festgelegten Adresse (Interrupt
Vektor) - IRQ
• eine wesentliche Komponente des Betriebssystems
ist die Behandlung von Unterbrechungen
SS 2001
Prof. Dr. H. D. Clausen - unisal
19
Frühe Entwicklung - Elektron. Computer
• USA
–
–
–
–
ENIAC
EDVAC
BINAC
• UK
J.v.Neumann veröffentlicht
den „First Draft“ für EDVAC
ohne die Erfinder zu nennen !
UNIVAC
• D
– (COLOSSUS)
– Zuse
– EDSAC
– Manchester
– Z3
– PERM
» IBM
Entstehen einer neuen Industrie:
UNIVAC, IBM, Honeywell,
Control Data, Burroughs, Digital
Equipment, .....
SS 2001
Prof. H. D. Clausen
ICT, Elliot,
Marconi .....
Prof. Dr. H. D. Clausen - unisal
Zuse, Siemens,
Telefunken, .....
20
10
Betriebssysteme
ws2000/2001
Frühe Programmierung
• Benutzung der „nackten Maschine“ (bare machine)
• häufig verwendete Befehlssequenzen werden als
„Unterprogramme“ (subroutines) zusammengefasst
• Häufig verwendete Unterprogramme werden in einer
Bibliothek zusammengefasst
• Anwendungsprogramme werden zunehmend in einer
symbolischen Notation geschrieben -> Assembler
• die Verwaltung des Adressraums wird durch
symbolische Namen bei der Übersetzung erleichtert
SS 2001
Prof. Dr. H. D. Clausen - unisal
21
Frühe Programmierung
• Binden (linkage edit) und Laden werden durch eigene
Programme erledigt.
(linkage editor, loader)
• Ablauf wird von einem „Monitor“ Programm (Exec)
überwacht und notfalls beendet.
• Weitere Dienstprogramme (utilities) werden
bereitgestellt: Editor, Compiler, Sortierprogramm
• mittels Steuerkarten und „Job Control Language“
(JCL) kann der Ablauf des Jobs gesteuert werden
• alle Systemprogramme zusammen ergeben die
Betriebssoftware und die unteren, maschinen-nahen
Schichten das Betriebssystem
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
22
11
Betriebssysteme
ws2000/2001
Colossus
SS 2001
Prof. Dr. H. D. Clausen - unisal
23
Manchester „baby machine“ 1948/49
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
24
12
Betriebssysteme
ws2000/2001
Manchester „Mark I“ 1951
(A. Turing and 2 Ferranti engineers)
SS 2001
Prof. Dr. H. D. Clausen - unisal
25
SS 2001
Prof. Dr. H. D. Clausen - unisal
26
Prof. H. D. Clausen
13
Betriebssysteme
ws2000/2001
CDC 6638 disk drive
upper
positioner
motor
motor
lower
positioner
SS 2001
Prof. Dr. H. D. Clausen - unisal
27
1. Einführung
1.3 Hardware, Software, Bootstrap
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
28
14
Betriebssysteme
ws2000/2001
Softwarestruktur
Software
32 k
Daten
Adressraum
Programm
0
Systemprogramme/Treiber
Software/
HardwareSchnittstelle
Hardware
SS 2001
Prof. Dr. H. D. Clausen - unisal
29
Grobstruktur eines Computer Systems
Nutzer Schnittstelle
user interface
Anwenderprogramme - applications
POSIX
Betriebssystem-Schnittstelle (API) - system calls
Betriebssystem - operating system
Hardware Schnittstelle - machine interface
hardware
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
30
15
Betriebssysteme
ws2000/2001
Aufgaben eines Betriebssystems
• Bereitstellung und Handhabung des Zugriffs auf die
System Hardware
• Isolation des Anwenderprogramms von der speziellen
Hardware
• Organisation des Systems
• Verwaltung der Betriebsmittel (Ressourcen resources)
• Bereitstellung von abstrahierten Funktionen
(logische oder „virtuelle“ Funktionen)
SS 2001
Prof. Dr. H. D. Clausen - unisal
31
Funktionen des Betriebssystems
• Zwei unterschiedliche Betrachtungsweisen
• „top down“ - Bereitstellung einer „virtuellen
Maschine“ für den Anwender/Programmierer
– Systemschnittstelle = „system calls“ (Systemaufrufe)
Ø
Prozessverwaltung, Dateiverwaltung, Signale, Directory and
Filesystem, Schutz und Sicherheit, Zeitüberwachung
– POSIX Standard (IEEE Systemschnittstelle für Unix +)
• „bottom up“ Verwaltung, Betrieb und Koordination
der einzelnen Ressourcen (Betriebsmittel) des
Systems
– Hardware Einrichtungen
Ø
CPU, Speicher, I/O Kanäle, Periphere Geräte
– Software Einrichtungen
Ø
SS 2001
Prof. H. D. Clausen
Prozesse, Dateien (files)
Prof. Dr. H. D. Clausen - unisal
32
16
Betriebssysteme
ws2000/2001
Frage:
• Wie kommt die Software in den Speicher
• Wie wird die Ausführung eines Programms gestartet
• Dieser Vorgang wird bezeichnet als:
– Urstart
– Coldstart
– Deadstart
– Bootstrap
• Dieser Vorgang muss durch die Hardware des
Rechners unterstütz werden.
SS 2001
Prof. Dr. H. D. Clausen - unisal
33
Urlader - Bootstrap Loader
Aufgabe: ein Monitor Programm in den Arbeitsspeicher
laden und dann starten.
Dieser Prozess wird auch als „deadstart“, „coldstart“,
„bootstrap“ bezeichnet. Er muss von der Hardware durch
einen fest verdrahteten Urlader unterstützt werden.
Press_Load:
for (i = 0; i<80; i++) DO {
Read(Mp[i]);
}
goto (M[0]);
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
34
17
Betriebssysteme
ws2000/2001
SS 2001
Prof. Dr. H. D. Clausen - unisal
1
1
35
Schalter
0
25:
4
68
1
1
0
68
1
1
Oktaler Wert
1
0
0
0 1
48
JMP
7
1 0 1
0
58
28
&
25
Oktaler
Wert
Befehl
Springe nach Adr.25
68
JMP
SS 2001
Prof. H. D. Clausen
W(
25)
Prof. Dr. H. D. Clausen - unisal
Springe nach Inhalt
von Adr.25 (4711)
36
18
Betriebssysteme
ws2000/2001
SS 2001
Prof. Dr. H. D. Clausen - unisal
37
Bootstrap
In der zweiten Phase kann dieses Minimalprogramm jetzt
einen grösseres Programm einlesen - z.B. einen
mächtigeren Lader oder bereits den Kern des Monitors
0
1
LA
n
79
Absoluter Code (Programm/Daten)
Ladeadresse
LOOP:
for (i = 0; i<80; i++) DO Read(Mp[r+i]); ;
LA = Mp[r];
n = Mp[r+1];
if (n==0) goto (LA);
for (i = 0; i<n; i++) DO
Mp[LA+i] = Mp[r+2+i];
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
38
19
Betriebssysteme
ws2000/2001
Bootstrap
0
1
79
LA1
n1
Absoluter Code (Programm/Daten)
LA2
n2
Absoluter Code (Programm/Daten)
LA3
n3
Absoluter Code (Programm/Daten)
..
..
E_A
0
......
Entry Adresse =
Einsprungpunkt
SS 2001
Prof. Dr. H. D. Clausen - unisal
39
Bootstrap Loader I
Aufgabe: ein Monitor Programm bzw. Betriebssystem in den
Arbeitsspeicher laden und dann starten.
Beim Start wird von einem HW
Programm (ROM) der erste
Sektor der Boot Disk gelesen und
in den Speicher geschrieben.
Dann wird diese Programm
gestartet. Es liest das
eigentliche Boot-Programm ein
und legt es im Speicher ab.
Anschliessend wird das BootProgramm gestartet. Es liest
dann das Betriebssystem ein,
legt es im Speicher ab und ihm
wird zuletzt die Kontrolle
übergeben.
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
40
20
Betriebssysteme
ws2000/2001
Bootstrap Loader II
3-stufiger Ablauf
Betriebssystem
SS 2001
Speicher
Prof. Dr. H. D. Clausen - unisal
41
Bootstrap Loader III
1
2
Beim Start wird von einem HW
Programm (ROM) der erste
Sektor der Boot Disk gelesen in
dem die Partition Table steht
und dann der Bootblock der
aktiven Partition.
3
Die weiteren Schritte laufen
dann ab wie beim Booten von
einer nicht partitionierten
Disk.
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
42
21
Betriebssysteme
ws2000/2001
1. Einführung
1.4 System-Software
SS 2001
Prof. Dr. H. D. Clausen - unisal
43
Speicheraufteilung - 1. Generation
User Space
Übersetzer, Binder, Lader,
Programme (temporär geladen)
Monitor
(permanent geladen)
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
44
22
Betriebssysteme
ws2000/2001
Einfache Batch Systeme Speicheraufteilung
Freier Speicher
Benutzerprogramm
Executive System
SS 2001
Programmcode und
Datenbereiche
Rudimentäres
Betriebs- system
(Monitor, Exec)
Prof. Dr. H. D. Clausen - unisal
45
Arbeitsablauf eines „Auftrags“ (job)
• Anwendungsprogramm liegt in symbolischer
Maschinensprache (assembler) vor; die Lage des
Programms und aller Standardprozeduren im
Arbeitsspeicher sind festgelegt.
• Das Programm und die benötigten Daten liegen auf
Datenträger (Lochkarte, Lochstreifen) vor.
• Zur festgelegten Blockzeit übernimmt der Benutzer
die Rechenanlage und lädt den Assembler von einem
externen Datenträger (Lochstreifen, Magnetband) ab
einer festgelegten Adresse in den Arbeitsspeicher;
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
46
23
Betriebssysteme
ws2000/2001
Job Abwicklung - 1
Quellcode (source)
Übersetzer, z.B. cpp
(temporär geladen)
Objektcode (object)
Monitor
(permanent geladen)
SS 2001
Prof. Dr. H. D. Clausen - unisal
47
Job Abwicklung - 2
Objektcode (.obj)
Binder z.B. make
(temporär geladen)
Ausführbarer
Code (.exe)
Monitor
(permanent geladen)
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
48
24
Betriebssysteme
ws2000/2001
Arbeitsablauf eines „Auftrags“ (job)
• Anschliessend wird das zu übersetzende Programm
in den Leser gelegt und der Assembler an einer
wohlbekannten, festgelegten Adresse gestartet.
• das (hoffentlich fehlerfreie) Programm wird in
Maschinencode (object code) übersetzt, der auf
Lochstreifen oder Magnetband ausgegeben wird.
• der Datenträger mit den benötigten Standardprozeduren wird aus der Programmbibliothek
entnommen und die einzelnen Prozeduren werden an
die vorher festgelegten Adressen geladen;
SS 2001
Prof. Dr. H. D. Clausen - unisal
49
Job Abwicklung - 3
Lader [loader]
Ausführbarer
Code (.exe)
Programm
Monitor
(permanent geladen)
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
50
25
Betriebssysteme
ws2000/2001
Job Abwicklung - 4
Lader [loader]
Daten
(.dat,
.txt)
Programm
Ergebnisse
(.txt)
Monitor
(permanent geladen)
SS 2001
Drucker
Prof. Dr. H. D. Clausen - unisal
51
Arbeitsablauf für einen „Auftrag“ (job) -2
• anschliessend wird der Objektcode des Programms
dazugeladen. Damit ist der Binde- und Ladeprozess
beendet.
• Jetzt werden die Daten für das Programm in den
Leser gelegt und anschliessend das Programm am
vorher festgelegten Einsprungpunkt (entry point)
gestartet.
• *** jetzt beginn der eigentliche Lauf ***
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
52
26
Betriebssysteme
ws2000/2001
„Stacked Job“ - Stapelverarbeitung
Daten
(Loader)
Programm
Systemaufrufe (systems calls)
„Monitor“, Exec,
Bibliotheksprogramme
Hardware
SS 2001
Prof. Dr. H. D. Clausen - unisal
53
Ausführung eines Auftrags
Formulierung des Auftrags in einer Art Programmiersprache (Job Control Language - JCL, Kommandosprache)
REPEAT
Read_Card_Deck();
Compile();
Link();
JCL Interpreter
(Shell)
Load()
Execute();
Print_Results();
UNITL cpu_HALT;
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
Betriebssystem
(Monitor, Exec)
54
27
Betriebssysteme
ws2000/2001
Beispiel für die JCL
(Job Control Language)
$JOB user_spec
; identify the user for accounting purposes
$FORTRAN
; load the FORTRAN compiler
source program cards
$LOAD
; load the compiled program
$RUN
; run the program
data cards
$EOJ
; end of job
$JOB user_spec
$LOAD application
$RUN
data
$EOJ
SS 2001
; identify a new user
Prof. Dr. H. D. Clausen - unisal
55
Kartendeck für einen Job (Auftrag)
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
56
28
Betriebssysteme
ws2000/2001
„Spooling“
Plattenspeicher
Kopie des
Kartendecks
Kopie der
Ausgabe
Kartendeck
Eingabe
Rechner
Ausgabe
Ausgabe
(printout)
SS 2001
Prof. Dr. H. D. Clausen - unisal
57
Speicheraufteilung - 1. Generation
User Space
Übersetzer, Binder, Lader,
Programme (temporär geladen)
Monitor
(permanent geladen)
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
58
29
Betriebssysteme
ws2000/2001
Softwarestruktur 3. Generation
„partition“
Benutzer_n
„partition“
User Space
aufgeteilt in einzelne Bereiche
Benutzer_2
„partition“
Benutzer_1
Betriebssystem
(permanent geladen)
SS 2001
Prof. Dr. H. D. Clausen - unisal
59
Typen von Betriebssystemen
•
•
•
•
•
•
•
•
•
•
SS 2001
Prof. H. D. Clausen
Einfache Batch Systeme (Stapelverarbeitung)
Multiprogramming Systeme
Timesharing Systeme
Workstation / PC Systeme
Mehrprozessor-/Parallelsysteme
Echtzeitsysteme (Real Time)
Prozessrechner (Process Control)
Embedded Systems
Signalverarbeitungssysteme
Verteilte Systeme
Prof. Dr. H. D. Clausen - unisal
60
30
Betriebssysteme
ws2000/2001
Betriebssysteme
• „stacked batch jobs“ -Mitte 50-er bis Mitte 60-er
– einzelne Aufträge werden in einem Stapel angeordnet und der Reihe
nach abgearbeitet
• „spooling batch systems“-Mitte 60-er bis Ende 70-er
– einzelne Aufträge werden in einem Stapel angeordnet und der Reihe
nach eingelesen und auf dem Massenspeicher abgelegt; der
„scheduler“ wählt die einzelnen Aufträge zur Verarbeitung aus
• Multiprogramming Systeme - seit Mitte 60-er bis ...
– mehrere Aufträge werden quasi-simultan verarbeitet.
– Spezielle Form: Multitasking/Multiprocessing
• Timesharing Systeme - seit Mitte der 70-er bis ...
– mehrere Aufträge werden quasi-simultan verarbeitet wobei Aufträge
unterbrochen, ausgelagert und nach Prioritäten gereiht werden
können
SS 2001
Prof. Dr. H. D. Clausen - unisal
61
Ende
Klassifizierung
SS 2001
Prof. H. D. Clausen
Prof. Dr. H. D. Clausen - unisal
62
31
Herunterladen