Thread

Werbung
Betriebssysteme
Folie 2 - 1
2 Grundbegriffe
•
Betriebsmittel: alle Komponenten eines Rechners, die zur Ausführung eines Programms erforderlich sind
•
−
Zentraleinheit,
−
Speicher,
−
Ein- / Ausgabegeräte,
−
Programme,
−
Dateien,
−
Kontrollblöcke, usw.
Komponenten eines Rechners
Rechner
Hardware
Zentraleinheit
Software
Systemsoftware
Hauptspeicher
Betriebssystem
Prozeßverwaltung
Speicherverwaltung
Geräteverwaltung
...
Programmentwicklungssystem
Übersetzungsprogramme
Binder
Lader
...
Datenbanksystem
...
externer Speicher
Magnetplattenspeicher
optischer Plattenspeicher
Magnetbänder
...
Peripherie
Sichtgeräte
Drucker
Plotter
Mikrofilmausgabegeräte
Belegleser
...
Rechnernetzanschlüsse
...
Anwendungssoftware
techn./wiss. Programme
kommerzielle Programme
Branchenprogramme
...
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 2
2.1 Komponenten des Betriebssystems
•
•
•
•
Unterbrechungsbehandlung
−
Ablauf einer Zeiteinheit,
−
Ende einer Ein- / Ausgabeoperation,
−
Anforderung eines Systemdienstes durch das Programm,
−
Division durch Null, usw.
Prozeßverwaltung
−
Zuteilung des Prozessors,
−
steuert und überwacht Datenaustausch zwischen Programmen
Hauptspeicherverwaltung
−
Zuordnung des Hauptspeichers zu den Prozessen,
−
Speicherschutz
Dateiverwaltungssystem
−
•
•
Verwaltung der externen Speichermedien
Ein- /Ausgabeverwaltung (Geräteverwaltung)
−
Zuordnung der Geräte zu den Prozessen,
−
steuert Datentransfer zwischen Gerät und Prozeß
Dienstprogramme
−
Kommandosprachen-Interpreter,
−
Abrechnungsverwaltung,
−
Benutzerverwaltung, usw.
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 3
2.2 Speicherung / Generierung des Betriebssystems
•
•
Betriebssystem ist auf viele Dateien aufgeteilt
−
Quellcode i.a. in Assembler und höherer Programmiersprache,
−
Objektcode wird in Systembibliotheken abgelegt
Generierung eines Betriebssystems
−
erforderlich, da es kein universelles Betriebssystem gibt,
−
abhängig von Hardware-Konfiguration,
−
u.U. abhängig von aktuellem Einsatzgebiet,
−
u.U. abhängig von der Organisation des Rechenzentrums
⇒ Zusammenstellung der erforderlichen Betriebssystemteile für das
spezifische System
⇒ Systemgenerierung
⇒
♦
Steuerung durch Konfigurationsdateien
♦
residenter Betriebssystemkern
⋅
ständig im Hauptspeicher,
⋅
enthält die Basisfunktionen, die ständig zur Verfügung
stehen müssen (Verwaltung der Uhren, Prozeßverwaltung,
Geräteverwaltung, usw.)
♦
auslagerbare (nachladbare) Betriebssystemprogramme
⋅
seltener benutzte Routinen, die bei Bedarf nachgeladen
werden (z.B. Teile der Dateiverwaltung)
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 4
2.3 Laden des Betriebssystems
•
erfolgt beim Systemstart (Urladen)
−
früher: Eingabe eines kleinen Programms über Schalter, das ein
Ladeprogramm einlesen konnte, das dann das Betriebssystem geladen hat
−
heute: automatisch, da sich der Urlader zusammen mit anderen
Programmen (z.B. zum Testen der Hardware) in einem
nicht-flüchtigen Speicher des Rechners befindet
•
der Urlader lädt ein Ladeprogramm aus dem Bootblock des Gerätes,
das seinerseits das Betriebssystem lädt
•
Initialisierung der Hardware
•
Initialisierung der Systemtabellen
•
Aktivierung aller erforderlichen Systemprozesse
⇒ Benutzer erhält Eingabeaufforderung
•
Systemstart dauert zwischen einigen Sekunden und einigen Minuten
(abhängig vom Betriebssystem, der Anzahl Tests, usw.)
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 5
2.3.1 Starten eines MS-DOS Rechners
•
Rechner einschalten
⇒ Programmausführung beginnt ab Adresse F000:FFF0
(i.a. Sprungbefehl zu einer BIOS-Routine, die die eigentliche Initialisierung vornimmt)
•
Initialisierungsphase
−
Funktionen des Prozessors, seine Register und einige Befehle
testen
−
ROM und RAM testen
−
Schnittstellenbausteine, DMA-Controller usw. testen und
initialisieren
−
Peripherie (Tastatur, Diskettenlaufwerke, usw.) testen
−
BIOS-Variablen und Unterbrechungsvektor-Tabelle initialisieren
−
ROM-Erweiterungen suchen und testen (z.B. Video-Karte)
(ab dem dritten Byte befindet sich die Initialisierungsroutine des ROM-Moduls)
⇒ im Fehlerfall wird der Rechner i.a. angehalten
(bis jetzt befindet sich noch kein Betriebssystem im Rechner)
•
Urladen eines Betriebssystems
−
das Laden übernimmt der Interrupt 19H (bootstrap loader), der
auch beim Warmstart (Ctrl-Alt-Del) aufgerufen wird
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 2 - 6
über Interrupt 19 wird der Boot-Block der Diskette oder Festplatte (der den Urlader enthält) gelesen und gestartet
(der Boot-Block wird ab Adresse 0000:7C00H geladen)
1. Versuch: Diskettenlaufwerk (Boot-Block des Betriebssystems)
2. Versuch: aktive Partition der Festplatte (nur dann, wenn keine
Diskette im Laufwerk ist)
(Zuerst wird der Master-Boot-Block der Festplatte, der auch die Partitionstabelle enthält, geladen. Dieser Ur-Urlader lädt dann seinerseits
den Boot-Block der aktiven Partition, der das Betriebssystem lädt)
−
falls keine Systemdiskette / -partition gefunden wird, wird der
Benutzer aufgefordert, eine Systemdiskette einzulegen
(es muß keine DOS-Diskette sein, da es dem BIOS egal ist, welches Betriebssystem es
lädt)
⇒ die Aufgaben des BIOS sind abgeschlossen
•
Arbeitsweise des Urladers
−
überprüfen, ob die ersten beiden Dateien des Mediums die
Systemdateien IO.SYS, MSDOS.SYS bzw. IBMBIO.COM,
IBMDOS.COM sind
−
falls dies nicht der Fall ist, ist das Medium nicht boot-fähig und
der Benutzer erhält eine entsprechende Meldung
−
falls die Dateien vorhanden sind, werden sie geladen
(IO.SYS bzw. IBMBIO.COM besteht aus zwei Moduln. Im ersten Modul befinden sich
die Gerätetreiber für Tastatur, Bildschirm, Diskettenlaufwerk, usw. und im zweiten die
Initialisierungsroutinen für DOS)
−
der Urlader ruft die Initialisierungsroutine von IO.SYS auf
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 2 - 7
Arbeitsweise der Initialisierungsroutine von IO.SYS
−
sie verschiebt sich an das Ende des Hauptspeichers
−
sie führt weitere Initialisierungen des Systems durch
−
sie verschiebt den DOS-Kern, der mit MSDOS.SYS geladen
wurde, an seine endgültige Lage
−
•
sie ruft eine Initialisierungsroutine im DOS-Kern auf
Arbeitsweise der Initialisierungsroutine des DOS-Kerns
−
sie initialisiert den DOS-Kern (Tabellen, Datenbereiche, ...)
−
sie ruft die Initialisierungsroutinen der einzelnen Gerätetreiber auf,
die mit IO.SYS geladen worden sind
⇒ MS-DOS ist installiert
•
die Datei CONFIG.SYS wird gesucht
−
CONFIG.SYS wird ggf. geladen
−
MS-DOS wird nach den Angaben in dieser Datei konfiguriert
(Puffer anlegen und initialisieren, spezielle Gerätetreiber laden und initialisieren, Ein- /
Ausgabegeräte festlegen und öffnen)
−
der Kommandoprozessor COMMAND.COM wird geladen
−
die Kontrolle wird an den Kommandoprozessor übergeben
(die Initialisierungsroutinen bleiben als Datenmüll im Speicher bis sie von einem
anderen Programm überschrieben werden)
⇒ der Boot-Vorgang ist abgeschlossen
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 2 - 8
der Kommandoprozessor sucht nach der Datei AUTOEXEC.BAT
−
falls die Datei gefunden wird, werden alle in ihr enthaltenen
Befehle ausgeführt (start-up file)
⇒
der Benutzer kann mit dem Rechner arbeiten
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 9
2.3.2 Aufbau eines Bootsektors
Beispiel MS-DOS V5.0:
•
•
•
•
•
•
•
die ersten drei Byte enthalten einen Sprungbefehl zum Urlader
es folgt ein Parameterblock
danach kommt der Urlader
danach Fehlermeldungen
danach die Namen der Systemdateien, die geladen werden müssen
danach ein unbenutzter Bereich
danach das Endekennzeichen 55AA des Bootsektors
F:\>debug
-l 0 2 0 1
-d 0 1ff
132C:0000 EB 3C
132C:0010 02 00
132C:0020 00 00
132C:0030 4D 31
132C:0040 C0 8E
132C:0050 16 53
132C:0060 0F 8B
132C:0070 CD 13
132C:0080 89 0E
132C:0090 16 1E
132C:00A0 7C A3
132C:00B0 1E 0B
132C:00C0 00 BB
132C:00D0 B0 01
132C:00E0 A6 75
132C:00F0 E8 5F
132C:0100 58 58
132C:0110 F7 E3
132C:0120 50 52
132C:0130 72 BB
132C:0140 15 7C
132C:0150 70 00
132C:0160 3B 16
132C:0170 33 D2
132C:0180 C3 B4
132C:0190 CA 86
132C:01A0 4B 65
132C:01B0 20 4C
132C:01C0 0D 0A
132C:01D0 61 73
132C:01E0 4F 20
132C:01F0 20 20
-u 0 2
132C:0000 EB3C
132C:0002 90
90
02
00
20
D0
BF
0E
72
20
7C
49
7C
00
E8
0A
00
58
03
51
05
8A
AC
18
F7
02
E9
69
61
57
74
20
53
4D
1C
00
20
BC
3E
18
79
7C
03
7C
03
05
AC
8D
33
EB
06
E8
01
16
0A
7C
36
8B
8A
6E
75
65
65
20
59
53
80
80
20
00
7C
7C
33
A0
06
89
C3
8B
00
7F
C0
E8
49
3A
00
24
C0
73
1A
16
16
20
66
63
20
20
53
44
F8
00
20
7C
B9
88
C0
10
0E
16
48
16
72
20
CD
8B
7C
00
83
7C
74
19
7C
4D
24
53
77
68
64
20
00
JMP
NOP
4F
20
29
46
16
0B
4D
39
7C
7C
4B
F7
52
16
B9
16
47
13
72
D2
8B
29
F7
88
7C
7C
79
65
73
72
20
00
53-35
00-24
D3-16
41-54
07-BB
00-FC
F9-89
06-13
F7-26
83-D2
7C-B8
F3-01
7C-A1
8B-FB
0B-00
5E-1F
1A-48
16-4B
D8-B0
00-03
1E-49
B4-0E
36-18
16-25
B1-06
8A-36
73-74
72-6B
65-6C
81-63
53-59
00-00
2E
00
70
31
78
F3
47
7C
16
00
20
06
50
B9
F3
8F
48
7C
01
1E
7C
BB
7C
7C
D2
25
65
73
6E
6B
53
00
30
0C
08
36
00
A4
02
74
7C
A3
00
49
7C
0B
A6
04
8A
BB
E8
0B
A1
07
FE
A3
E6
7C
6D
66
20
65
4D
00
00
00
53
20
36
06
C7
08
03
50
F7
7C
E8
00
74
8F
1E
00
54
7C
4B
00
C2
4D
0A
CD
20
65
75
6E
53
00
003E
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
02
24
59
20
C5
1F
07
8B
06
7C
26
83
92
BE
18
44
0D
07
00
E2
7C
CD
88
7C
36
13
6F
68
6E
0D
44
00
04
00
53
20
37
C6
3E
0E
1C
89
11
16
00
DF
BE
02
7C
B9
59
E2
EA
10
16
F8
4F
C3
64
6C
64
0A
4F
00
01
00
54
FA
1E
45
7C
13
7C
16
7C
4B
72
7D
9E
CD
32
03
5A
8A
00
EB
4F
C3
7C
0D
65
65
20
00
53
55
00
00
45
33
56
FE
FB
7C
13
52
8B
7C
1D
F3
7D
19
FF
00
58
2E
00
F2
7C
F9
8B
0A
72
72
54
49
20
AA
.<.MSDOS5.0.....
...... .$...$...
......)..p.SYSTE
M1
FAT16
.3
.....|...x.6.7.V
.S.>|.........E.
....|.M..G...>|.
..ry3.9..|t....|
.. |..|.&.|...|.
..|...|....P|..R
|.I|..K|. ..&.|.
..|..H....I|..K|
......R|.P|...r.
.....r........}.
.u... .....t...}
._.3...^....D...
XXX...G.HH...|2.
....I|..K|......
PRQ.:.r....T.YZX
r..........|....
.|..$|..I|.K|...
p....t).........
;..|s..6.|....O|
3..6.|..%|.M|...
.....M|.....6O|.
.....$|.6%|.....
Kein System oder
Laufwerksfehler
..Wechseln und T
aste dr.cken...I
O
SYSMSDOS
SYS.........U.
Betriebssysteme
Folie 2 - 10
2.3.3 verschiedene Bootsektoren
Bootsektor für PC-DOS V3.3
2298:0000
...
2298:0170
2298:0180
2298:0190
2298:01A0
2298:01B0
2298:01C0
2298:01D0
2298:01E0
2298:01F0
EB 28 90 49 42 4D 20 20-33 2E 33 00 02 01 01 00
.(.IBM
00
4F
2D
64
6C
61
64
20
4F
44
6E
20
70
20
61
74
43
AA
.IBMBIO COMIBMD
OS COM......Non
-System disk or
disk error$..Rep
lace and strike
any key when rea
dy..$..Disk boot
failure$Copr. C
OMPAQ 1983-87.U.
EA 05 00 C0 07 E9 99 00-00 29 03 00 C8 E4 00 80
.........)......
03
43
07
52
50
21
41
00
.3........Your P
C is now Stoned!
.....LEGALISE MA
RIJUANA!........
EB 1A 90 53 59 53 56 33-38 36 20 00 02 01 01 00
...SYSV386 .....
8B
4F
74
65
6E
00
20
6E
C8
8C
32
0D
06
8A
52
73
6D
61
00
30
65
8C
EF
E8
78
56
0C
CD
...F.2..p.q].ERR
OR reading boots
trap......Base m
emory < 512k, ca
n't boot UNIX...
.Diskette unit 0
must be quad de
nsity..... ?....
...P......!.....
.......&.!....P.
2...Loading Unix
..../unix..U..WV
.SQR.F..^..v..n.
.N.........s....
EB 3C 90 49 42 4D 20 31-30 2E 32 00 02 01 01 00
.<.IBM 10.2.....
C3
74
32
64
73
20
73
52
00
...Lesefehler Da
tentr.ger.....OS
2LDR nicht gefun
den...2.Systemdi
skette einlegen,
das System neu
starten....OS2LD
R
..........
..............U.
49
53
53
69
61
6E
79
66
4D
42
20
79
73
63
79
0A
61
50
4D
20
73
6B
65
20
0D
69
41
42
43
74
20
20
6B
24
6C
51
49
4F
65
65
61
65
0A
75
20
4F
4D
6D
72
6E
79
0D
72
31
20-20
00-00
20-64
72-6F
64-20
20-77
44-69
65-24
39-38
43
00
69
72
73
68
73
43
33
4F
00
73
24
74
65
6B
6F
2D
4D
0A
6B
0A
72
6E
20
70
38
49
0D
20
0D
69
20
62
72
37
42
4E
6F
52
6B
72
6F
2E
00
4D
6F
72
65
65
65
6F
20
55
3.3.....
Bootsektor einer Diskette, die den STONED-Virus enthält
2298:0000
...
2298:0180
2298:0190
2298:01A0
2298:01B0
...
33
20
0D
49
DB
69
0A
4A
FE
73
0A
55
C1
20
00
41
CD
6E
4C
4E
13
6F
45
41
EB-C5
77-20
47-41
21-00
07
53
4C
00
59
74
49
00
6F
6F
53
00
75
6E
45
00
72
65
20
00
20
64
4D
00
Bootsektor für Microport Unix System V/386 V3.0e.1
2298:0000
...
2298:0120
2298:0130
2298:0140
2298:0150
2298:0160
2298:0170
2298:0180
2298:0190
2298:01A0
2298:01B0
2298:01C0
2298:01D0
2298:01E0
2298:01F0
EC
52
72
6D
27
44
6D
73
8E
CB
02
0A
53
4E
8B
20
61
6F
74
69
75
69
D8
8E
0D
00
51
10
46
72
70
72
20
73
73
74
50
C3
0A
00
52
B0
04
65
0D
79
62
6B
74
79
8B
8E
4C
2F
8E
01
32
61
0A
20
6F
65
20
0D
EC
D3
6F
75
46
B4
E4
64
00
3C
6F
74
62
0A
83
8D
61
6E
08
02
E6-70
69-6E
2E-00
20-35
74-20
74-65
65-20
00-00
C5-06
26-00
64-69
69-78
8B-5E
B2-00
E4
67
00
31
55
20
71
BA
BA
21
6E
00
0A
CD
71
20
42
32
4E
75
75
20
21
8D
67
00
8A
13
5D
62
61
6B
49
6E
61
3F
00
06
20
55
76
73
C3
6F
73
2C
58
69
64
B0
ED
D4
55
8B
0E
06
45
6F
65
20
0D
74
20
80
0C
01
6E
EC
8A
B4
52
74
20
63
0A
20
64
EE
01
50
69
57
6E
00
Bootsektor für OS/2 V1.3
1635:0000
...
1635:0170
1635:0180
1635:0190
1635:01A0
1635:01B0
1635:01C0
1635:01D0
1635:01E0
1635:01F0
18
65
4C
65
6B
64
74
20
00
00
6E
44
6E
65
61
61
20
00
4C
74
52
0D
74
73
72
20
00
65
72
20
0A
74
20
74
20
00
73
84
6E
00
65
53
65
20
00
65
67
69
32
20
79
6E
00
00
66-65
65-72
63-68
00-53
65-69
73-74
2E-0D
00-00
00-00
68
0D
74
79
6E
65
0A
00
00
6C
0A
20
73
6C
6D
00
00
00
65
00
67
74
65
20
4F
00
00
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
72
17
65
65
67
6E
53
00
00
20
00
66
6D
65
65
32
00
00
44
4F
75
64
6E
75
4C
00
55
61
53
6E
69
2C
20
44
00
AA
Betriebssysteme
Folie 2 - 11
2.3.4 Master-Boot-Programm von MS-DOS 5.0
Initialisierung der
Register
Master-Bootblock
verschieben
1. Eintrag der Partitionstabelle auswählen
n
j
aktive Partition?
restliche Einträge
überprüfen
Daten merken
n
fehlerhafter
Eintrag?
j
n
j
weiterer Eintrag?
A
n
j
letzte Partition?
nächsten Eintrag
auswählen
nächsten Eintrag
auswählen
Fehler
n
ROM-Basic starten
(Partition erfragen)
j
korrekter Eintrag?
Fehler
A
Fehler
Urlader des BS
einlesen
n
Fehlermeldung
ausgeben
j
Rechner stoppen
(Endlosschleife)
erfolgreich?
RESET Controller
n
j
n
letzter Versuch?
Zähler dekrementieren
Fehler
Endekennzeichen
des Blocks ok?
Fehler
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
j
Urlader starten
Betriebssysteme
Folie 2 - 12
2.4 Betriebsarten
•
Einsatzgebiete eines Rechners
−
Software-Entwicklung, Programmierausbildung, usw.
Kennzeichen:
−
♦
sehr kurze Antwortzeiten gefordert,
♦
(Quasi-)Parallel-Verarbeitung.
♦
überwiegend wird nur die CPU belastet,
♦
E / A - Geräte werden kaum genutzt.
Gehaltsabrechnung inkl. Ausdruck der Abrechnungsformulare
Kennzeichen:
−
interaktive Benutzung des Rechners,
aufwendige Berechnungen (Statik einer Brücke, Animationen)
Kennzeichen:
−
♦
♦
geringe Belastung der CPU,
♦
starke Belastung der Drucker.
Flugbuchungen durch Reisebüros
Kennzeichen:
♦
viele Sichtgeräte an entfernten Orten,
♦
alle Benutzer arbeiten mit dem gleichen
Programm.
−
Steuerung einer industriellen Fertigungsstraße
Kennzeichen:
♦
u.U. kurze Reaktionszeiten erforderlich, falls
z.B. Fehler auftreten
⇒
♦
unterschiedliche Anforderungsprofile
♦
Betriebsart: Art und Weise, in der Aufträge bearbeitet werden
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 13
2.4.1 Einprogramm- / Mehrprogrammbetrieb
•
Einprogrammbetrieb
−
der Rechner bearbeitet nur eine Aufgabe,
−
alle Betriebsmittel stehen diesem Programm zur Verfügung:
−
♦
Prozessor,
♦
Hauptspeicher,
♦
Dateien, usw.
kommt heute nur noch bei einfachen Arbeitsplatzrechnern oder
Spezialrechnern vor
0
5
10
Zeit
e1
idle
e2
idle
e3
idle
Eingabegerät
idle
a1
idle
a2
idle
a3
Ausgabegerät
idle
r1
idle
r2
idle
r3
idle
CPU
e1
r1
P1
a1 e2
r2
a2 e3
P2
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
r3
P3
a3
Betriebssysteme
•
Folie 2 - 14
Mehrprogrammbetrieb (multiprogramming)
−
der Rechner bearbeitet abwechselnd mehrere Aufgaben, die
ineinander verzahnt (quasi-) parallel ablaufen
−
jede Aufgabe erhält während ihrer Laufzeit bestimmte Betriebsmittel zugeteilt
−
die Reihenfolge, in der die Programme gestartet werden, hängt
von den Prioritäten der Programme ab
−
Programmwechsel z.B. nach dem Start einer E / A - Operation
−
Betriebssystem kann einem Programm die Kontrolle über den
Rechner entziehen
−
rechenintensive Programme belegen den Rechner sehr lange
(da sie keine E / A - Operationen ausführen, können sie nicht verdrängt werden)
⇒ u.U. große Wartezeiten für einzelne Programme
0
5
10
Zeit
e1
idle
e2
idle e3
idle
Eingabegerät
idle
a1 idle
a2
idle
a3
Ausgabegerät
idle
r1
r2
r3
idle
CPU
e1
r1
eingesparte
Zeit
P1
a1
e2
r2
a2
P2
e3
r3
a3
P3
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 2 - 15
Beispiel für Mehrprogrammbetrieb, wenn die Ein-/Ausgabe nicht nur
am Anfang und Ende des Programms stattfindet
Benutzerprogramm-Priorität
hoch
niedrig
Programm 1
Programm 3
Zeit
Programm 2
Steuerprogramm
E/A-Anforderung
Prozeßwechsel
E/A-Anforderung
P-wechsel
Unterbrechung
Start E/A 1
Start E/A 2
Ende E/A 1
Prozeßwechsel
Ende E/A 2
Unterbrechung
E/A-Anforderung
Start E/A 1
Prozeßwechsel
E/A-Anforderung
P-wechsel
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Start E/A 2
Ein/Ausgabe
Betriebssysteme
Folie 2 - 16
2.4.2 Zeitscheibenverfahren (time sharing)
•
•
vermeidet den Nachteil des Mehrprogrammbetriebs
ist immer mit Mehrprogrammbetrieb gekoppelt
⇒ multiprogramming und time sharing werden häufig synonym
verwendet
aber: der Mehrprogrammbetrieb setzt kein Zeitscheibenverfahren
voraus
•
Betriebssystem verdrängt ein Programm automatisch, wenn es die
CPU eine bestimmte Zeit genutzt hat und nicht freiwillig abgibt
•
•
Größe einer Zeitscheibe: 50 - 500 ms
Systemuhr erforderlich
⇒ Rechenzeit wird auf alle Programme gleichmäßig verteilt
0
5
10
Zeit
e3
e2
e1
idle
Eingabegerät
idle
a2 idle a3
a1
Ausgabegerät
r3
r2
r3 r2
r1
r3
r1
CPU
e1
e2
r1
r2
r1
eingesparte
Zeit
a1
P1
r2 a2
P2
e3
r3
r3
r3 a3
P3
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
eingesparte
Zeit
Betriebssysteme
Folie 2 - 17
2.4.3 Ein- / Mehrbenutzerbetrieb
•
Einbenutzerbetrieb
(single user mode)
−
i.a. bei Arbeitsplatzrechnern
−
bei einfachen Betriebssystemen (z.B. MS-DOS), die keinen
Mehrprogrammbetrieb unterstützen, zwingend
•
•
Mehrbenutzerbetrieb
(multi user mode)
−
setzt Mehrprogrammbetrieb voraus
−
Zeitscheibenverfahren ist notwendig (kurze Reaktionszeiten)
im Ein- und Mehrbenutzerbetrieb wird interaktiv mit dem Rechner
gearbeitet
⇒ Rechner muß Dialogbetrieb unterstützen
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 18
2.4.4 Stapel- / Dialogbetrieb
•
Stapelbetrieb (batch processing)
−
älteste Betriebsart
−
Rechner erhält vollständig definierten Auftrag
−
Benutzer kann den Ablauf des Auftrags dann nicht mehr beeinflussen
−
sehr gute Auslastung des Rechners ist möglich, da alle Betriebsmittel vorab bekannt sind
−
•
heute i.a. als Hintergrundbetrieb
Dialogbetrieb (interactive processing)
−
Auftrag ist nicht vorab festgelegt
−
Auftrag kann vom Benutzer interaktiv gesteuert werden
(vergleichbar mit einem Gespräch, das mit dem Rechner geführt wird)
−
i.a. über ein Zeitscheibenverfahren realisiert
−
wird in Teilhaber- und Teilnehmerbetrieb eingeteilt
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 19
2.4.5 Teilhaber- / Teilnehmerbetrieb
•
Teilhaberbetrieb
−
alle Benutzer (Dialogstationen) benutzen dasselbe Programm
(z.B. Programm für Flugbuchung, Patientenaufnahme, ...)
−
nur eingeschränkter Zugang zum Rechner (kein eigener Dialogprozeß)
−
Dialogstationen werden dem Programm als E / A - Gerät
zugewiesen
−
−
Vorteil:
Ablauf:
♦
geeignet für ungeschulte Benutzer (Krankenschwester, ...)
♦
Rechner muß weniger Dialogprozesse verwalten
♦
ein Transaktionsmonitor bekommt über Kommandos einige Dialogstationen zugewiesen
♦
er startet danach z.B. ein Flugbuchungsprogramm,
das sich auf allen zugewiesenen Dialogstationen
meldet und mit den Benutzern einen anwendungsbezogenen Dialog führt
♦
wenn z.B. eine bestimmte Uhrzeit erreicht ist,
meldet es sich bei den Dialogstationen ab, und
beendet sich
♦
der Transaktionsmonitor gibt die Dialogstationen
frei und beendet sich ebenfalls
•
Teilnehmerbetrieb
−
jede Dialogstation erzeugt einen eigenen Dialogprozeß
−
der Benutzer kann unabhängig von anderen Benutzern Aufträge
an den Rechner abgeben
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 20
2.4.6 Echtzeitbetrieb (real time processing)
•
•
Zeitschranken müssen eingehalten werden
Einsatzgebiet: z.B. in der Prozeßdatenverarbeitung
(Meß-, Steuer-, Regelungstechnik)
2.4.7 Mehrprozessorbetrieb (multiprocessing)
•
•
Rechner mit mehreren Prozessoren
echte Parallelverarbeitung
1) asymmetrischer Mehrprozessorbetrieb (asymmetric multiprocessing)
−
es gibt einen ausgezeichneten Prozessor (den sogenannten Master)
−
nur der Master führt privilegierte Anweisungen aus (z.B. Ein-/
Ausgaben, Verwaltung der Betriebsmittel)
−
das Betriebssystem kann nur auf dem Master ablaufen
⇒ Abnahme der Leistungsfähigkeit, wenn mehrere Prozessoren
gleichzeitig Betriebssystemdienste benötigen
2) symmetrischer Mehrprozessorbetrieb (symmetric multiprocessing)
−
mehrere Prozessoren können den Betriebssystemcode ausführen
−
im Idealfall können alle Prozessoren gleichzeitig Code des
Betriebssystemkerns ausführen
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 21
3) Architektur mit gemeinsamen Speicher (shared memory architecture)
−
klassisches Multiprozessorsystem
−
z.B. Rechner von Sun Microsystems
−
gemeinsames Bussystem
−
Bus / Speicher kann Engpaß werden
−
Interprozeßkommunikation wie bei einem Einprozessorsystem
möglich
CPU
CPU
CPU
CPU
Cache
Cache
gemeinsamer
Speicher
Cache
Cache
gemeinsamer Bus
4) Architektur mit verteiltem Speicher (distributed memory architecture)
−
z.B. Transputersystem
−
sehr schnelles Verbindungsnetzwerk (z.B. Kreuzschienenverteiler)
−
Interprozeßkommunikation über Nachrichtenaustausch (message
passing)
lokaler
Speicher
lokaler
Speicher
lokaler
Speicher
lokaler
Speicher
lokaler Bus
CPU
CPU
CPU
CPU
Verbindungsnetzwerk
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 22
2.4.8 Multitasking
•
spezielle Form des Mehrprogrammbetriebs
(Programme können vom Betriebssystem verdrängt werden)
•
Begriff wird nicht einheitlich verwendet
(Task als Synonym für Prozeß bzw. Auftrag innerhalb eines Programms)
•
die Programmiersprache ADA besitzt entsprechende Sprachmittel
−
Aufträge (tasks) innerhalb eines Programms können unabhängig
voneinander ablaufen
⇒ CPU-Vergabe kann auf Task-Ebene durchgeführt werden
•
hier: Task als spezielle Form des Mehrprogrammbetriebs
Auftrag innerhalb eines Programms: Thread
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 23
2.4.9 Multithreading
•
Threads werden in der Literatur unterschiedlich definiert (z.B. in
SunOS multi-thread architecture, Mach C Threads, POSIX Standard
P1003.1c-1995, OS/2-Threads, usw.)
•
ein Thread ist eine zusammengehörende Folge von Anweisungen
innerhalb eines Programms
•
jeder Thread besitzt einen eigenen Programmzähler einen eigenen
Registerbelegungssatz und einen eigenen Stack für lokale Variablen
⇒ Threads können unabhängig voneinander ausgeführt werden
•
Threads teilen sich den Adreßraum und die Anweisungen des
umfassenden Prozesses
⇒ falls ein Thread globale Daten ändert, kann die Änderung von
allen anderen Threads gesehen werden
•
Threads teilen sich den Betriebssystemzustand des umfassenden
Prozesses
⇒ sie sehen die gleichen offenen Dateien
(falls ein Thread eine Datei öffnet, kann ein anderer Thread sie lesen, d.h. sie können
sich in unvorhersehbarer Weise beeinflussen, wenn das Programm nicht sehr sorgfältig
erstellt wurde (es gibt keinen Betriebssystemschutz auf Thread-Ebene!))
⇒ falls ein Thread die Betriebssystemfunktion exit() aufruft, werden
alle Threads beendet
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 24
•
ein traditioneller UNIX-Prozeß ist ein single-threaded process
•
Multithreading bedeutet: Ein Prozeß besteht aus mehreren Threads,
die parallel (quasi-parallel auf einem Einprozessorsystem) ausgeführt
werden
•
Warum wurden Threads eingeführt?
1) effizientere Bearbeitung eines Programms auf Mehrprozessorsystemen
(Auf Einprozessorsystemen sind diese Programme i.a. langsamer als ein traditionelles
Programm, da die Verwaltung der Threads Zeit kostet. User-level Threads können auch
auf Mehrprozessorsystemen weiterhin nur quasi-parallel ausgeführt werden, wenn dem
Prozeß nur ein Kernel-level Thread zur Verfügung steht.)
2) Anwendungsprogramme können häufig einfacher entwickelt werden, wenn die einzelnen Aufgaben als in sich geschlossene Teile
implementiert werden können
(moderne Fensteroberflächen bieten z.B. viele Funktionen über sogenannte Widgets oder
Icons an, die separat entwickelt werden können)
3) User-level Threads belasten den Betriebssystemkern nicht, da ihre
Verwaltung durch entsprechende Bibliotheksprogramme auf
Benutzerebene erfolgt und sie dem Betriebssystemkern daher
unbekannt sind
(Für User-level Threads werden nur Datenstrukturen im Adreßraum des Programms
angelegt und verwaltet und nicht im Betriebssystemkern. Das Scheduling der Threads
erfolgt bei Sun durch sogenannte Lightweight Processes (bei POSIX: Kernel-level
Threads), deren Scheduling im Betriebssystemkern stattfindet. Lightweight Processes
können als virtuelle Prozessoren betrachtet werden.)
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 2 - 25
User-level Threads
−
Wechsel zwischen Threads ist sehr effizient
−
der Programmierer muß sicherstellen, daß sich Threads nicht in
unerwünschter Weise beeinflußen
♦
falls ein Thread das Verzeichnis wechselt, sehen alle Threads
das neue aktuelle Verzeichnis
♦
falls ein Thread eine Datei schließt, ist sie für alle Threads
geschlossen
♦
falls ein Thread die Funktion exit() aufruft, wird der gesamte
Prozeß mit allen Threads beendet
♦
falls mehrere User-level Threads rechenintensiv sind, dauert
es eine Weile, bis das Betriebssystem ausreichend viele
Kernel-level Threads für eine (quasi-) parallele Bearbeitung
erzeugt
(u.U. werden die Threads in diesem Fall auch sequentiell ausgeführt, falls das
Betriebssystem dem Prozeß nur einen Kernel-level Thread zur Verfügung stellt und
die Threads nicht von sich aus auf den Prozessor verzichten)
♦
•
...
Kernel-level Threads
−
Thread-Wechsel effizienter als Prozeßwechsel, aber schlechter als
bei user-level threads
−
das Betriebssystem entscheidet, welcher Thread als nächster
ausgeführt wird
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 2 - 26
Beispiel (aus: M.L. Powell, et al.: SunOS Multi-thread Architecture.
Proc. USENIX Winter Conf., Dallas, TX, 1991):
−
Prozeß 1 ist ein traditioneller UNIX-Prozeß mit einem Thread, der
einem Lightweight Process (LWP) zugeordnet ist
−
Prozeß 2 enthält Threads, die von einem LWP verwaltet werden
−
Prozeß 3 enthält Threads, die von einer geringeren Anzahl LWP's
verwaltet werden
−
Prozeß 4 enthält Threads, die permanent an einen LWP gebunden
sind
−
Prozeß 5 enthält eine Kombination aller erlaubten Möglichkeiten:
eine Gruppe von Threads wird von einer Gruppe LWP's verwaltet
und zwei Threads sind permanent an LWP's gebunden. Außerdem
ist ein LWP permanent einem Prozessor zugeordnet. Alle Threads
können sich untereinander und mit Threads in anderen Prozessen
mit den üblichen Mechanismen synchronisieren.
Thread
Process 1
Lightweight Process
Process 2
Process 3
Processor (CPU)
Process 4
User Mode
Kernel Mode
Hardware
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Process 5
Betriebssysteme
Betriebssystemarchitekturen
2.5
•
Folie 2 - 27
traditionelle Betriebssysteme besitzen einen relativ großen monolithischen Kern (UNIX, VMS, ...)
•
neuere Betriebssysteme benutzen einen
−
dynamischen Betriebssystemkern (Solaris, Linux, ...)
−
sehr kleinen Mikrokern (microkernel architecture), der nur eine
rudimentäre Funktionalität besitzt (Windows NT, Mach, ...)
2.5.1 Monolithischer Betriebssystemkern
•
der Kern enthält alle traditionellen Funktionen (Prozeßverwaltung,
Hauptspeicherveraltung, Dateiverwaltung, Netzwerkdienste, ...)
•
der Kern enthält die Treiber für alle Geräte, die eventuell an dem
Rechner betrieben werden sollen
⇒ Verschwendung von Hauptspeicher
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 28
2.5.2 Dynamischer Betriebssystemkern
•
der Kern enthält nur die Funktionen, die häufig benutzt werden
•
spezielle Gerätetreiber, Netzwerkdienste usw. sind als Moduln
konzipiert und werden bei Bedarf hinzugeladen
•
nicht mehr benötigte Moduln werden aus dem Haupspeicher entfernt
•
Beispiel (Moduln unter Linux)
/lib/modules/2.0.21 # dir
drwxr-xr-x
2 root
root
drwxr-xr-x
2 root
root
drwxr-xr-x
2 root
root
drwxr-xr-x
2 root
root
-rw-r--r-1 root
root
drwxr-xr-x
2 root
root
/lib/modules/2.0.21 # dir block
-rw-r--r-1 root
root
/lib/modules/2.0.21 # dir misc
-rw-r--r-1 root
root
-rw-r--r-1 root
root
-rw-r--r-1 root
root
•
1024
1024
1024
1024
611
1024
Oct
Oct
Oct
Oct
Feb
Oct
64072 Oct
128915 Oct
20529 Oct
8576 Oct
3
3
3
3
7
3
15:57
15:57
15:57
15:57
10:42
15:57
3 15:35 floppy.o
3 15:37 ftape.o
3 15:45 ipx.o
3 15:35 lp.o
Beispiel (Laden und automatisches Entfernen von Moduln)
/ # lsmod
Module:
#pages:
Used by:
/ # mount -t msdos /dev/fd0 /mnt
/ # lsmod
Module:
#pages: Used by:
floppy
11
1 (autoclean)
/ # umount /mnt
/ # lsmod
Module:
#pages: Used by:
floppy
11
0 (autoclean)
/ # tar vft /dev/ftape
...
/ # lsmod
Module:
ftape
#pages:
43
Used by:
0 (autoclean)
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
block/
fs/
ipv4/
misc/
modules.dep
net/
Betriebssysteme
Folie 2 - 29
2.5.3 Mikrokern-Betriebssystem
•
enthält nur Basis-Mechanismen zur Prozeßerzeugung und zum
Scheduling
•
grundlegende Mechanismen zur Nachrichtenübermittlung (message
passing)
•
Basis-Mechanismus zur Speicherverwaltung
•
grundlegende Mechanismen zur Ein- / Ausgabe
•
eine Aufgabe wird nur dann im Mikrokern erledigt, wenn die Funktionalität des Systems nicht gewährleistet ist, wenn die Aufgabe
außerhalb des Mikrokerns erbracht wird
•
Mikrokerne sind u.U. ineffizienter, da häufig zwischen user und
kernel mode umgeschaltet werden muß und statt Prozeduraufruf eine
Nachrichtenübertragung benutzt wird
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 2 - 30
traditionelle Funktionen des Betriebssystemkerns (Prozeßverwaltung,
Dateiverwaltung, Netzwerkdienste, ...) werden im normalen Adreßraum (user mode) bereitgestellt
−
verbesserte Modularität
−
Code im user mode ist einfacher zu testen als Code im kernel
mode
−
Funktionalität kann verteilt werden (verteilte Betriebssysteme auf
Basis einer Client / Server Architektur)
−
verschiedene Betriebssysteme können gleichzeitig auf einem
Rechner einfach emuliert werden
•
Makrokern-Architektur
Anwendung
user
mode
Systemdienste
kernel
mode
Dateisystem
Speicher- und E/AGeräteverwaltung
↔
Mikrokern-Architektur
Anwendung
NetzwerkServer
SpeicherServer
DateiServer
ProzeßServer
...Server
user
mode
kernel
mode
Mikrokern
Prozessorund Prozeßsteuerung
Hardware
Dienst- / Funktionsaufruf
Hardware
Antwort / Ergebnis
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 31
Aufgaben
1) Aus welchen Komponenten besteht der Kern eines Betriebssystems?
2) Welche Aufgabe hat der Boot-Block einer Platte?
3) Was ist ein Branchenprogramm?
4) Nennen Sie den Unterschied zwischen einem Teilnehmer- und einem
Teilhaberbetrieb.
5) Kann ein Betriebssystem gleichzeitig folgende Betriebsarten unterstützen:
Stapelbetrieb, Zeitscheibenverfahren, Teilnehmerbetrieb, Mehrprozessorbetrieb und Multitasking?
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 32
Lösungen (Seite 1)
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 2 - 33
Lösungen (Seite 2)
Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Herunterladen