Post on 05-Apr-2015
transcript
D - CA - XVI - MH D - 1
HUMBOLDT-UNIVERSITÄT ZU BERLININSTITUT FÜR INFORMATIK
Vorlesung 16
Software
Sommersemester 2000
Leitung: Prof. Dr. Miroslaw Malek
D - CA - XVI - MH D - 2
SOFTWARE
1. Software
Software bezieht sich auf alle Programme, die auf Computern egal welcher Größe ausgeführt werden; sowohl auf großen als auch auf kleinen Systemen.
* Systemsoftware
** Compiler ( Sprachprozessoren )
** Betriebssysteme
** Residente Subroutinen
** Bibliotheken
** Benutzerprogramme
HARDWARE
SYSTEM SOFTWARE
ANWENDUNGEN(BENUTZERPROGRAMME)
D - CA - XVI - MH D - 3
2. Sprachen und Übersetzer
* Maschinensprache (binär, oktal, hexadezimal)
* Assembler (Directiven, Assembler)
* Hochsprache
** Betriebssteuerangaben
** Compiler bilden ein Quellprogramm (Syntax der Sprache) und erzeugen das Objektprogramm
*** Zwischensprache (Interpreter)
*** Maschinenprogramm
Hochsprachen* Assemblersprache**
Kompilation Assemblierung
Maschinencode
Hardware
* 1 Hochsprachenanweisung entspricht 5-20 Maschinencodeanweisungen.** 1 Assembleranweisung entspricht 1-5 Maschinencodeanweisungen.
D - CA - XVI - MH D - 4
55
60
65
70
75
80
85
90
I OC
SI B
SY
S
DO
S/3
60
OS
/36
0
DO
S/ V
DS
EM
VS
/37
0
VS
VS
E/E
SA
MV
S/ X
A
MV
S/ E
S
VM
/37 0
CP
/CM
S
TS
O
VM
/ XA
VM
/ ES
A
SY
ST
EM
III
SY
ST
EM
V
SY
ST E
M V
.4
CT
S
AI X
AI X
/37
0
AI X
/ES
A
MU
L TIC
S
UN
I X
UN
I X V
.7
SU
N O
S
PO
SI X S
OL
AR
ISOS
F/1
MA
CH
4.1
BS
D
4.2
BS
D
4.3
BS
D
4.4
BS
D
XE
NIX
MS
-DO
S
OS
/2
WIN
DO
WS
NT
DR
/DO
S
CP
/M
BE
TR
IEB
SS
YS
TE
ME
- E
NT
WIC
KL
UN
GQ
uelle
: W
olfg
ang
Coy
"A
ufb
au u
nd A
rbei
tsw
eise
von
Rec
hena
nla
gen:
Ein
führ
ung
in R
echn
erar
chite
ktu
r u
nd R
echn
ero
rgan
isa
tion
", V
iew
eg 1
992
002
00
0
D - CA - XVI - MH D - 5
3. Betriebssysteme
** Integraler Teil von Computerdesign
** Laden
** Linken
** Speicherverwaltung
** CPU-Sharing-Überwachung (Scheduling und Speicheranforderung )
Betriebssysteme sind Programme, die die Ausführung von Programmen handhaben. Das Betriebssystem handhabt die CPU in bezüglich der verfügbaren E/A Ressourcen. Ressource-Teilung kann Kosten reduzieren, wenn dies zu einer Erhöhung des Systemdurchsatzes führt, z.B. mehr laufende Benutzerprogramme pro Zeiteinheit.
a. Die Hauptfunktion eines Betriebssystems ist die Steuerungder Initiierung der CPU- und Kanal- (E/A) Aktivität.
D - CA - XVI - MH D - 6
b. Lader
Wie laden wir ein Maschinenspracheprogramm in den Speicher?Wie veranlassen wir einen Computer, ein Programm auszuführen?
a)ZuerstWir schalten den Computer ein.
(1) Manuelles Laden eines Programms durch eine Konsoleund Schalter.
a. Bootstrap (einfacher Lader)b. Komplexere Lader (Paritätsprüfung, usw.)
(2) Nach Reset arbeitet der Computer ein ROM-Programm ab.
b)Programmabschnitte ( Segmente )
(1) Header oder Identifizierungsabschnitt (Typ 00)
a. Typ "00"b. Namec. Abschnitts- und/oder Blockzählerd. Prüfsumme
(2) Maschinenspracheabschnitt
a. Typ "01"b. Byte- oder Wort-Zählerc. Startadressed. Maschinensprachebefehlee. Prüfsumme
D - CA - XVI - MH D - 7
3. Typen von Ladern
(1) Absoluter binärer Lader
Lädt Programme, basierend auf den oben beschriebenen Informationen. Die Startadresse ist die absolute Adresse,an die das Maschinenprogramm geladen wird.
(2) Verschiebbare Lader
Können entsprechend formatierte Maschinensprach-abschnitte von Programmen in variable Adressbereicheladen.
a. Verschiebbare Objektprogramme
* Identifizierung von Adreßkonstanten, d.h. jene Adressen,
die sich mit der Verschiebung nicht verändern.
* Addieren eines Offset auf alle Adressen, außer denAdreßkonstanten. Das Basisregister ist ein Beispiel.
b. Der Einfluß auf das Rechnerdesign ist signifikant.
D - CA - XVI - MH D - 8
c. Linker
1.Große Programme können aus einer Anzahl von Routinen bestehen, die getrennt voneinander programmiert und oftunabhängig assembliert wurden.
(1) Der Linker ist ein Programm, das mehrere Objektmodulein ein einzelnes Maschinenspracheprogramm zu einemLademodul verbinden kann.
(2) Objektmodule sind assemblierte (Maschinensprache-)Versionen von verschiedenen Routinen, die miteinanderin einem einzelnen Programmsystem verbunden werden.
(3) Externe Symbole müssen vom Programmierer zur Zeitder Programmcompilierung definiert sein. Externe Symbolesind jene, die Variablen und Label repräsentieren, die vonmehr als einem der verschiedenen assembliertenProgramme oder Unterprogramme referenziert werden.
Ein kombinierter Linker-Lader wird oft implementiert.
2. Kompromiß
Assemblieren aller Programme und Unterprogramme in einereinzelnen Übersetzung, die ein Lademodul erzeugen würde,oder einzeln.
3.Formatierung
* Verzeichnis externer Symbole (ESD)* Maschinenspracheprogramm* Verschiebungsverzeichnis (RD) ** Ort der Adreßkonstanten.
D - CA - XVI - MH D - 9
d. Ein Job hängt mit einem gegebenen Benutzerprogramm
zusammen. Ein Schritt identifiziert eine Eingabe-,Berechnungs- oder Ausgabephase eines Jobs.
e. Stapelverarbeitung.
Jobs werden nacheinander in sequentieller Abarbeitung
ausgeführt.
f. Wenn wir uns mehrere Jobs ansehen und die Anfragen
dieser bearbeiten können, besteht die Möglichkeit, eine
effektivere Nutzung der Ressourcen zu realisieren.
Überlappung kann in einigen Fällen erreicht werden. DasLesen der Eingabe und das Schreiben der Ausgabekönnen als dauerhafte Prozesse, wenn möglich, auftreten.
D - CA - XVI - MH D - 10
g. Spooling
(1) Es gibt typischerweise E/A-Puffer im Hauptspeicher. Fürgewöhnlich wird der Pufferplatz durch Anforderung
minimalenHauptspeichers, der dennoch die E/A-Effizienz
gewährleistet,optimiert. Der Rest der E/A, der nicht in den Puffern
gehaltenwird, wird für gewöhnlich auf einer Festplatte gespeichert.
DieE/A wird dann durch fortwährendes Lesen von Jobs in
denSpeicher und das Puffern dieser auf einer Festplatte, bis
siegebraucht werden, gehandhabt. Dies nennt man Eingabe-Spooling. Sehr oft wird das Laden von der Festplatte
durcheinen anderen Prozessor ausgeführt. Das Puffern vonAusgabedaten auf der Festplatte und das darauffolgendeTransferieren der Daten zu einem Ausgabegerät, wie z.B.
einDrucker, nennt man Ausgabe-Spooling.
(2) Spooling glättet unter Umständen den Eingabe-/ Ausgabefluß.
D - CA - XVI - MH D - 11
SPOOLING
Hauptspeicher
E/A Puffer
Festplatte
Ziele: 1) Brücken des Geschwindigkeitsunterschiedes vonHauptspeicher und Festplatte
2) Erhöhung der Geschwindigkeit und Glätten vonE/A-Operationen
Geschwindigkeitsbrücke
Oft besitzt das Disk-Speicher-Interfaceeigene Speicher und Prozessoren
D - CA - XVI - MH D - 12
h. Multiprogramming
Das Konzept der Multiprogrammierung ist es, mehrere Programme im Hauptspeicher zu haben. Wenn die Ausführung eines Programms für E/A-Operationen ausgesetzt werden muß, wird die CPU veranlaßt, eines der anderen Programme im Speicher auszuführen.
(1) Wahrscheinlich ist, daß die CPU besser genutzt werden kann,
jedoch kann ein zu komplexes Betriebssystem selbst mehr
CPU-Zeit benötigen als es einsparen kann.
(2) In der Praxis haben sich Multiprogrammsysteme als nützlich
und effizient erwiesen.
Beispiel:
Die Jobs X, Y und Z werden in einer Multiprogramming-
Umgebung angeführt,
Führe X(C1) aus
Suspendiere X(R2)
Führe Y(C1) aus
Suspendiere Y(R2)
Führe Z(C1) aus
Suspendiere Z(R2)
Führe Y(C2) aus
X(R2) fertig
Führe X(C2) aus
Suspendiere X(R3)
Führe Z(C2) aus
Führe X(C3) aus
D - CA - XVI - MH D - 13
i. Multiprogramming-Steuerungen
a. Eine Scheduling-Routine eines Betriebssystems führt Long-
Term Scheduling durch das Gruppieren von Jobs, für
gewöhnlich nach Priorität und Klasse für die Ausführung
durch die CPU aus. Speicheranforderungen (MM & Ersatz-)
und Prioritätsfaktoren werden normalerweise in die
Scheduling-Gleichung mit einbezogen.
* Speicher-Management
* Short-Term Scheduling
* Ein Prozeß ist eine Routine, die als Teil der Ausführung
eines geplanten Jobs ausgeführt werden darf.
** Bietet Informationen, die die Unterbrechung und
folgende Reinitiation der Ausführung eines Programms
erlaubt.
D - CA - XVI - MH D - 14
b. Zustandsdiagramm
Ein Programm kann durch eine Anzahl von Zustands-
veränderungen laufen zwischen den Zuständen:
* Ausführbar
* Blockiert
* In Ausführung
Das Zustandsdiagramm illustriert die Steueraktivitäten, die
für die Prozeßverwaltung nötig sind. Die Beschriftungen
entlang der Pfeile zeigen die Gründe der Änderung von
einem Zustand in den anderen.
* Interrupts können Zustandsänderungen hervorrufen.
* Programme mit höherer Priorität können laufende
Programme unterbrechen.
Die meisten Details von E/A-Operationen können nicht
eingesehen und vom Programmierer nicht kontrolliert
werden, es sei denn, das Betriebssystem hat einen
Benutzermodus, der dem Benutzer die Kontrolle bis zu einem
gewissen Grad erlaubt. Normalerweise läuft das
Betriebssystem im Überwachungsmodus.
D - CA - XVI - MH D - 15
PROCESS STATE DIAGRAM
Bereit Laufend
Wartend
Anhalten(z.B. wenn E/A hält)
BeendenErzeugen
Freigeben
(z.B. wenn E/A fertig)
Abarbeiten
Zurückstellen
D - CA - XVI - MH D - 16
4. Interaktives Computing
Online-Geräte interagieren direkt mit der CPU, die die gesamte
Umgebung kontrolliert.
Die Hauptaufgabe der CPU ist das Erzeugen von Antworten an
individuelle Benutzer (im Gegensatz zu maximalen Durchsatz).
* Zeitverzögerung der Antwort (T)
* Time Slice
* Round-Robin
* Obere Grenze des Zeitintervalles der Antwort ist, eine
Quantum-Zeit. Nach einem Zeitintervall geht die
Kontrolle an das Betriebssystem zurück.
D - CA - XVI - MH D - 17
„DIE FRIEDLICHE NEUE WELT“
MENSCHEN(Benutzer)
COMPUTER
SENSORENAKTOREN
(z.B. Roboter)
COMPUTERNETZWERK
D - CA - XVI - MH D - 18
SOFTWARE ZUSAMMENFASSUNG
SOFTWARE
LADER (MANUELL, BOOTSTRAP, PROGRAMM IM ROM)
LINKER
ÜBERSETZER
ASSEMBLER AL ML
COMPILER HLL ML
BETRIEBSSYSTEME (AUSFÜHRENDE ÜBERWACHER)
MONITOR
SPEICHERVERWALTUNG
RESOURCE SCHEDULER
DIAGNOSTIK
E/A PROGRAMME
PAKETE (BIBLIOTHEKSPROGRAMME)
PROGRAMM-WERKZEUGE
D - CA - XVI - MH D - 19
EIN
IGE
AU
FG
AB
EN
DE
S B
ET
RIE
BS
SY
ST
EM
SA
US
BE
NU
TZ
ER
SIC
HT
Be
trie
bsm
ittel
verw
altu
ng
An
wen
dun
gspr
ogr
amm
eÜ
bers
etz
er
Pro
zeß
verw
altu
ng
Ed
itore
nA
sse
mb
liere
r
Sp
eich
erve
rwal
tun
gT
abe
llenk
alku
latio
nC
ompi
ler
Dat
enve
rwa
ltung
Dat
enb
ank
Inte
rpre
ter
Ein
/Au
sgab
ever
wa
ltung
Link
er/L
adep
rogr
am
me
Mak
roin
terp
rete
r
Jobv
erw
altu
ngD
atei
bea
rbe
itung
Sys
tem
bef
ehl
sint
erp
rete
rA
bre
chnu
ng
Dia
gnos
e u
nd T
est
loka
le N
etzv
erw
altu
ng
Meh
rpro
zess
orv
erw
altu
ng
Te
leko
mm
unik
atio
n
D - CA - XVI - MH D - 20
SY
ST
EM
SIC
HT
DE
S B
ET
RIE
BS
SY
ST
EM
S:
SC
HIC
HT
EN
MO
DE
LL
NR
. SC
HIC
HT
NA
ME
TY
PIS
CH
E O
BJE
KT
ET
YP
ISC
HE
OP
ER
AT
ION
EN
1 S
chal
tkre
ise
Reg
iste
r, G
atte
r, B
usse
Nan
d, N
or,
Exo
r2
Mas
chin
ensp
rach
eB
efeh
lszä
hler
, ALU
Add
, M
ove,
Ld,
St
3 U
nter
prog
ram
mve
rwal
tung
Pro
zedu
rblo
ck, K
elle
rspe
iche
rC
all,
Jsr,
Rts
4 U
nter
brec
hung
enF
ehle
rrou
tinen
Bus
fehl
er, R
eset
5 e
infa
che
Pro
zess
eP
roze
ß, S
emap
hor,
Puf
fer
war
ten,
ber
eits
telle
n, a
usfü
hren
6 lo
kale
r Z
usat
zspe
iche
rD
aten
bloc
k, E
/A-K
anal
lese
n, s
chre
iben
, erö
ffnen
,sc
hlie
ßen
7 v
irtue
ller
Spe
iche
rS
eite
(pag
e), S
eite
nrah
men
lese
n, s
chre
iben
, aus
taus
chen
(sw
ap)
8 P
roze
ßko
mm
unik
atio
nÜ
berg
abek
anal
(pip
e)le
sen
schr
eibe
n, e
röffn
en9
Dat
eive
rwal
tung
Dat
eien
lese
n sc
hrei
ben,
erö
ffnen
,ko
pier
en10
Ger
ätev
erw
altu
ngZ
usat
zspe
iche
r, T
erm
inal
sle
sen,
sch
reib
en11
Ein
/Aus
gabe
strö
me
Dat
enst
röm
eöf
fnen
, sch
ließ
en, l
esen
,sc
hrei
ben
12 B
enut
zerp
roze
sse
Ben
utze
rpro
zess
eei
nlog
gen,
aus
logg
en,
verz
wei
gen
13 V
erze
ichn
isve
rwal
tung
inte
rne
Tab
elle
ner
stel
len,
lösc
hen
ände
rn14
Ben
utzu
ngso
berf
läch
eF
enst
er, M
enüs
, Iko
neB
etrie
bssy
stem
befe
hle
D - CA - XVI - MH D - 21
C-Compiler
nroff/troff/TEX
System-programme
ANWENDERANSCHICHT
Anwenderprogramme
SYSTEMSCHICHT
Pascal/Modula-2Lisp/Prolog e.a.
AssemblerDebugger
YACC Compiler-Compiler
Editorened/vi/sed e.a.
Textverarbeitung
BEFEHLSVERARBEITUNG
Vorder-/Hinter-grund
Befehlsketten Befehls- undDateiumlenkung
OnlinehandbuchLernprogramm
HilfsprogrammeBefehlsinterpreter(Shell, GUI)
SortierprogrammeSpiele
UNIX-KERN
Mehrprozeß-verwaltung
Mehrplatz-verwaltung
Interprozeß-Kommunikation
HierarchischeProzeßverwaltung
HierarchischeDateiverwaltung
ErweiterbareDateisysteme
pipes filter AutomatischeProzeßvergabe
Autom. Datei-ein-/auslagerung
D - CA - XVI - MH D - 22
Vor der Einführung von virtuellem Speicher wurden Primär- (Hauptspeicher) und Sekundärspeicherung explizit durch das Programm verwaltet. Durch virtuellen Speicher verwaltet nun eine Kombination aus Hardware und Systemsoftware unsichtbar für das Benutzerprogramm die Primärspeicherung.
P M
PHYSIKALISCHER SPEICHER
Haupt-speicher
Haupt- und Sekundärspeicher werden explizit von Programmen organisiert.
VIRTUELLER SPEICHER
Hauptspeicher wird für Anwenderprogramme transparent organisiert.
Virtueller Adreßraum(Sekundärspeicher)
P M
Haupt-speicher
Sekundär-speicher
D - CA - XVI - MH D - 23
SOFTWARE ZUSAMMENFASSUNG
- ANWENDUNGEN
- MIDDLE WARE
- BETRIEBSSYSTEM
- werden immer größer
- beeinflussen die Performance, Zuverlässigkeit undEinfachheit der Benutzung eines Systems
- Komplexität und Funktionalität sind fast außer Kontrolle