Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe...
Transcript of Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe...
Prof. Dr. Dieter HogrefeDipl.-Inform. Michael Ebner
Lehrstuhl für TelematikInstitut für Informatik
Informatik IIInformatik IISS 2004
Teil 8: Zusammenfassung
8. Zusammenfassung
8.2Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Klausur
Termin: Samstag, 24.7, 10:00-12:00UhrOrt: Mathematisches Institut: Maximum, HS1, ÜbungssaalIdentifizierung
Personalausweis und Immatrikulationsbescheinigungoder Studentenausweis mit Lichtbild
Hilfsmittel: keine (aber Kugelschreiber mitbringen ☺)Klausureinsicht: 28.7, 14:00-15:00Uhr, Raum MN68
Wiederholungsklausur: 1. Vorlesungswoche im WS2004/05(genauer Termin wird rechtzeitig auf der Informatik II Webseite bekannt gegeben)
8. Zusammenfassung
8.3Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Lehrstuhl für Telematik
VorlesungenInformatik II (SS)Telematik (WS)Mobilkommunikation I (SS) und II (WS)
SeminareNetzwerksicherheit (WS)Mobilkommunikation (SS)
PraktikaPraktikum Telematik
BSc und MSc Arbeitensiehe http://www.tmg.informatik.uni-goettingen.de/theses
HiwisZFI/IFI/TMG Webauf Anfrage
8. Zusammenfassung
8.4Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Aktuelle Projekte des Lehrstuhls für Telematik
Internet-Signalisierungsprotokolle (Dr. Fu)Testen von IPv6 (Dr. Fu)Netzwerksicherheit (Dipl-Inf. Soltwisch)
Quality of Service und Authentifizierung in Mobil IPVoice over IP (Dipl.-Inf. C. Werner)E-Learning (Dipl.-Math. Riedel, Dipl.-Inf. Zibull)Ökonomie von WLAN Internetzugängen (Dipl.-Math. Riedel)Verwendung von formalen Beschreibungstechniken zum Testen
Automatische Testgenerierung für Kommunikationsprotokolle(Dipl.-Inform. Ebner, Dipl.-Inform. Richter)
usw.
Weitere Informationen: http://www.tmg.informatik.uni-goettingen.de
8. Zusammenfassung
8.5Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Überblick
Betriebssysteme (Kapitel 5)
Maschinenorientierte Programmierung (Kapitel 4)
SpeicherZahlen und logische Schaltungen (Kapitel 2)
von-Neumann-Rechner (Kapitel 3)
von-Neumann-Rechner
Kommunikation (Kapitel 7)
Compilerbau (Kapitel 6)
8. Zusammenfassung
8.6Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Überblick I
1. EinführungVorstellung der beteiligten PersonenAblauf der ÜbungenInhalt der Vorlesung
2. Zahlen und logische SchaltungenNachrichten, Information, DatenZahlensysteme und –darstellungRechnerarithmetiklogische Schaltungenboolesche Algebra
3. Von-Neumann-RechnerRechnermodell
4. Grundlagen der maschinenorientierten ProgrammierungAssemblerprogrammierung
8. Zusammenfassung
8.7Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Überblick II
5. Grundlagen BetriebssystemeProzesseSpeicher
6. Automaten, formale Sprachen und CompilerbauAufbau und Funktionsweise von CompilernLexer und Parserdeterministische und nicht deterministische (Keller-)AutomatenReguläre und kontextfreie Sprachen
7. Grundlagen von verteilten SystemenOSI SchichtenmodellFunktionsweisen von RechnernetzenInternet
8. Zusammenfassung
8.8Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Wie funktioniert ein Computer???
Grundidee: Ebenen der Abstraktion
Verberge unnötige ImplementierungsdetailsHilft zur Beherrschung realer, komplexer Systeme
Befehlsarchitektur
Transistoren, Layout integrierte Schaltungen
SchaltkreisdesignDigitale Logik
Datenpfade & KontrolleProzessor Speicher E/A SystemHardware
Software
Netzwerke(TCP/IP,Ethernet,WLAN, ...
Betriebssystem (Linux,
Windows, MacOS, ...)
Automaten & Formale Sprachen
Anwendungen (Browser, Email, etc.)
Informatik II
AssemblerCompiler
8. Zusammenfassung
8.9Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Architektur und Programmierung
Das Wissen über die Rechnerarchitektur hilft das Design von Programmiersprachen zu verstehen
Was passiert beim Übersetzen des Quellcodes?Warum ist Rechnerarithmetik manchmal falsch?Was ist ein Busfehler oder Speicherzugriffsfehler?
Wie kann schneller ausführbarer Code erstellt werden? Wo und wie Daten abgelegt werden macht einen großen Unterschied.Schon das Umordnen von Statements kann hilfreich sein.
Softwareentwicklung erfordert oftmals wissen über RechnersystemeJeder Rechner hat 5 klassische KomponentenCompiler können optimierten Code für einen Prozessor erzeugenBetriebssysteme verwalten RessourcenGutes Eingabe/Ausgabe Verhalten ist für Datenbanken und Netzwerke wichtigVerwaltung der eigenen Daten/Code im Speicher
8. Zusammenfassung
8.10Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Zusammenfassung
Informatik II studiert die Funktionsweise von RechnernGrundlegende Hardwarekomponenten: Datenpfad, Speicher, Eingabe/Ausgabe Geräte und Kontrolle; sowie die darunterliegendedigitale Schaltungen/LogikPrinzipien von Software: Betriebssysteme, Kommunikationssysteme,Compiler; Automaten und formale Sprachen
Prinzipien der Abstraktion sind wichtig zum Verstehen und Bauen von geschichteten Systemen
Datenrepräsentation ist wichtig für die Leistung des Systems, Verwendung von Ressourcen und besseren Genauigkeit.Abstraktion und hierarchisches Design sind fundamentale Konzepte zur Handhabung von KomplexitätRohe Daten (Bitmuster) können alles bedeuten (integer, float, char, etc.). Erst ein Programm legt die Bedeutung fest
Wissen über Rechnersysteme hilft beim Programmieren und beim Software-Engineering
8. Zusammenfassung
8.11Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Überblick
Information und InformationsdarstellungZahlensystemeRechnerarithmetikBoolesche Algebra und GatterSchaltwerke
8. Zusammenfassung
8.12Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Informationsdarstellung
Zur Übertragung von Nachrichten/Daten müssen diese in Signale umgesetzt werden.
Signal: physikalische Darstellung von Nachrichten/DatenSignaltypen: Radiowellen, Rauchsignale, Stromfluss, Schallwellen, usw.
Signalparameter: Ausprägung eines Signals mit dessen Hilfe Nachrichten/Daten dargestellt werden.
Parameterarten: Frequenz, Farbe, Form, Spannung, Lautstärke, usw.
Signal
Nachricht/Daten
Information/Wissen
Informationsdarstellung
8. Zusammenfassung
8.13Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Codierung - Grundlagen
Alphabet (Zeichenvorrat):Endliche Menge von Zeichen, die zur Darstellung von Informationen benutzt wirdBeispiele:
Ziffern: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}Alphanumerisches Alphabet: {a,...,z, A,...,Z, 0,...,9}Binärzeichen: {0, 1}
Wort:Folge von Zeichen, die in einem bestimmten Kontext als Einheit betrachtet werdenBeispiele:
Zahlwörter: 105, 75, 73, 15, ... Schreibwörter: Kohlkopf, Hunger, HundBinärwörter: 001, 10010010, 1, 0, ...
Bemerkungen zum Kontext:in Englisch hat das Wort ‘Kohlkopf’ keine Bedeutung‘010’ kann von Rechner mit Wortlänge 8 nicht verarbeitet werden
Informationsdarstellung
8. Zusammenfassung
8.14Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Codierung - Schichtenmodell
Schichtenmodell als Gedankenmodell
Beispiel:
ignoriert aber deren tiefere Codierung.C0ab. Die höhere Schicht nimmt Zeichen entgegen,C1höhere Schicht stützt sich auf die nächst tiefereC2Codierungen sind häufig geschachtelt. D.h. eineC3
ElektronenebeneSchaltzustände
Binärstellen, Bits8-Bit BytesISO 7-Bit
Großbuchstaben ISOC++ – Schlüsselwörter
Informationsdarstellung
8. Zusammenfassung
8.15Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Polyadische Zahlensysteme (1/2)
Potenzen zu einer Basis B als Stellenwert
n = ∑ai * Bi (B, ai ∈ N0, B > 1)
= aN-1 * BN-1 + aN-2 * BN-2 + ... + a1 * B1 + a0
= ((...(aN-1 * B) + aN-2) * B + ...)*B + a1) *B + a0(Horner Schema)
Konvention:<ZAHL><BASIS> besagt das <ZAHL> einen Wert im Zahlen-
system mit der Basis <Basis> beschreibt.z.B. 12310 123 im Dezimalsystem,
11102 1110 im Dualsystem
N-1
i=0
Zahlensysteme
8. Zusammenfassung
8.16Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Zahlensysteme mit Zweierpotenz als Basis
Binärsystem (Basis 2)Vierersystem (Basis 4)Oktalsystem (Basis 8)Hexadezimalsystem (Basis 16) (Zeichenvorrat: 0...9, A...F)Einfache Umrechnung: „Umgruppieren der Binärstellen“Beispiel:146310 = 101101101112
1123134=313211
110111100101=
26678= 7662
111110110010=
5B716=7B5
011110110101=
Zahlensysteme
8. Zusammenfassung
8.17Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Umrechnung zwischen Zahlensystemen
Im allgemeinen reicht es nicht aus einfach nur die Binärstellen umzugruppieren.Empfehlung für die manuelle Umrechnung:
*
/
III. Darstellung mit Basis B2
DividierendeUmrechnung im Quellsystem(hier Basis 10)
(2)II. Darstellung mit Basis 10
MultiplikativeUmrechnung im Zielsystem(hier Basis 10)
(1)I. Darstellung mit Basis B1
Zahlensysteme
8. Zusammenfassung
8.18Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Zahlendarstellung und Rechnen im Dualsystem (1/3)
Durch N Bits lassen sich 2N Zahlenwerte codierenNur positive Zahlen, Wertebereich: 0 ... (2N–1)Positive und negative Zahlen:
(N-1) - Bit Zahl mit Vorzeichendarstellbarer Wertebereich: [-2N-1 ... 0 ... 2N-1-1]
„Most significant“ Bit als Vorzeichencodierung
N = 8 Wertebereich: 0 ... 255 oder -128 ... +127N= 16 Wertebereich: 0 ... 65535 oder -32768 ... +32767
= negative Zahl1= positive Zahl0
„most significant bit“↑
01234567
Rechnerarithmetik
8. Zusammenfassung
8.19Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Zahlendarstellung und Rechnen im Dualsystem (2/3)
N Bits erlauben 2N Möglichkeiten zur Zahlendarstellung, d.h. nur eine Darstellung mit endlicher Genauigkeit.
Bei positiven Zahlen:Zahlen n und n + BN sind nicht unterscheidbar (höchstwertige Bit geht verloren)Bei positiven und negativen Zahlen:Additionsüberlauf kann zu negativen Ergebnissen führenBeispiel:
negatives Vorzeichen
-38|
> 1281660 1 0 0 1 1 0188+1 0 1 1 0 0 00+781 0 0 1 1 1 00
Rechnerarithmetik
8. Zusammenfassung
8.20Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Basiskomplement (B-Komplement)
C für das Basiskomplement: C = BN
Komplementbildung:
d.h. die Komplementbildung ist für das Basiskomplement etwas aufwendiger
(B–1)–Komplement bildenAufaddieren einer 1
Beispiel:
N-1
i = 0+ 1B-1a=
ai * BiBN –Ba =
1 1 0 1 1≅B51+Aufaddieren von 1:
1 1 0 1 0≅B–15(B-1)-Komplement:
0 0 1 0 1≅5
Rechnerarithmetik
ai * Bi ) + 1(BN-1) – ( =N-1
i = 0
8. Zusammenfassung
8.21Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Eigenschaften Basiskomplement (Dualsystem)
Negative Zahlen werden als Komplemente der positiven Zahlen dargestellt.Das „most significant Bit“ beschreibt das Vorzeichen der Zahl.
Es gibt nur eine NullBemerkung: Komplement der Null liegt beim Basiskomplement, anders als beim Stellenkomplement, nicht mehr im darstellbaren Zahlenbereich (Übertrag in die (n+1).te Stelle).
Darstellbarer Zahlenbereich–(½ * BN ) ... +(½ * BN – 1)
–⇒1+⇒0
Rechnerarithmetik
8. Zusammenfassung
8.22Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Zahlenring im Basiskomplement
14-2
1110
4 010012-4
1100
15-11111
13-31101
11-5
1011
10-6
1010
9-7
1001 7 0111
6 0110
5 0101
3 0011
2 0010
1 0001
0000
negativeZahlen
positiveZahlen
0
8
-81000
8
Rechnerarithmetik
8. Zusammenfassung
8.23Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Ziel: Rechnerarithmetik implementieren
a0a1a2a3a4a5 Operand A
b0b1b2b3b4b5 Operand B
e0e1e2e3e4e5 Ergebnis E
E = A ? B
? ... beliebige logische Verknüpfung
E = x"34" ? x"1C"
Operand A
Operand B
Ergebnis E
001011
001110
000001
Boolesche Algebra und Gatter
Bitweise logische Operationen
8. Zusammenfassung
8.24Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Boolesche Algebra (1/2)
Boolesche Algebra:Die Booleschen Algebra (speziell die Aussagenlogik) ist ein Formalismus zur Beschreibung der Funktion digitaler Komponenten.
Binäre oder Boolesche Variable (BV): Variable, die nur zwei Werte annehmen können. Diese Werte werdenmit L - H , wahr - falsch oder 0 - 1 bezeichnet. Boolesche Variable sind logische Variable.
Boolesche Operatoren:Auf Boolesche Variable können Boolesche Operatoren angewendet werden: NOT, OR, AND,XOR, ...
Boolesche Ausdrücke, Boolesche Funktionen:Boolesche Ausdrücke oder Boolesche Funktionen ergeben sich durchVerknüpfung von Boolesche Variable mit Booleschen Operatoren.
Boolesche Algebra und Gatter
8. Zusammenfassung
8.25Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Wahrheitstabellen
Darstellung der Abhängigkeiten zwischen der Eingabe und AusgabeAlle möglichen Kombinationen der Eingabe (A,B) werden mit der korrespondierenden Ausgabe (X) angegeben.Beispiel:
Die Ausgabe ist nur 1, wenn beide Eingaben 1 sind.
?Eingabe Ausgabe
AB
X
B A X0 0 00 1 01 0 01 1 1
Boolesche Algebra und Gatter
8. Zusammenfassung
8.26Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
UND-Operator
Name
Tabelle
Schriftlich
Gatter
UND wird verwendet, um Bits gezielt auf 0 zu setzen. Dazu hat die Maske an allen Bitpositionen, die übernommen werden sollen, eine 1 und an den Stellen, die rückgesetzt werden sollen, eine 0.
Operand A
Operand B
Ergebnis E
x“14“ = x"34" ∧ x"1C"
001011
001110
001010
UND (AND)
b a y0 0 00 1 01 0 01 1 1
y = a ∧ b oder= ab oder= a * b
&
Boolesche Algebra und Gatter
8. Zusammenfassung
8.27Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
10 Regeln für logische OperationenBoolescheVariablen a, b Elemente aus {0,1}
a ∨ 0 = a a ∧ 0 = 0 R1a ∨ 1 = 1 a ∧ 1 = a R2a ∨ a = a a ∧ a = a R3a ∨ a = 1 a ∧ a = 0 R4a = a R5
a ∨ (b ∨ c) = a ∧ (b ∧ c) = R6(a ∨ b) ∨ c = (a ∧ b) ∧ c =a ∨ b ∨ c a ∧ b ∧ c
Assoziativgesetz
a ∨ b = b ∨ a a ∧ b = b ∧ a R7Kommutativgesetz
a ∨ (b ∧ c) = a ∧ (b ∨ c) = R8(a ∨ b) ∧ (a ∨ c) (a ∧ b) ∨ (a ∧ c)
Distributivgesetz
a ∨ (a ∧ b) = a a ∧ (a ∨ b) = a R9Absorptionsgesetz
(a ∨ b) = a ∧ b (a ∧ b) = a ∨ b R10De Morgan'schesGesetz
Boolesche Algebra und Gatter
8. Zusammenfassung
8.28Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Implikationen aus dem De Morgan'schen Gesetz
(a ∨ b) = a ∧ b (a ∧ b) = a ∨ b
&A
BQ>=1
A
BQ NOR
&A
BQ >=1
A
BQ
(a ∨ b)
a ∧ b
a ∧ b
(a ∧ b)
a ∨ b
a ∨ b
NAND
Alternative NOR Darstellung Alternative NAND Darstellung
&A
BQ
1
1
>=1A
BQ
1
1
8. Zusammenfassung
8.29Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Normalform (2/2)
Disjunktive Normalform (DNF)disjunktive Verknüpfung von KonjunktionenKonjunktionen müssen alle Variablen enthalten (bejaht oder negiert)Konjunktionsterme werden Minterme genanntIn der DNF werden alle UND – Verknüpfungen (Konjunktionen) disjunktiv verknüpft (ODER- verknüpft), deren Ausgangsvariablen den Wert „1“ annehmen.amerikanischer Ausdruck: “sum of products“ (SOP)
Konjunktive Normalform (KNF)Konjunktive Verknüpfung von DisjunktionenDisjunktionen müssen alle Variablen enthalten (bejaht oder negiert)Disjunktionsterme werden Maxterme genanntIn der KNF werden alle ODER – Verknüpfungen (Disjunktionen) konjunktiv verknüpft (UND- verknüpft), deren Ausgangsvariablen den Wert „0“ annehmen.
Boolesche Algebra und Gatter
8. Zusammenfassung
8.30Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Übersetzung DNF Gleichung in HardwareJede Gleichung läßt sich 1:1 in Hardware umsetzen
y = x4 x3 x2 x1 ∨ x4 x3 x2 x1 ∨ x4 x3 x2 x1
Boolesche Algebra und Gatter
&
1
>1
&x4
x3
x2
x1
1
1
1
&
y
8. Zusammenfassung
8.31Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Beschreibung von logischen Schaltnetze
Logische Schaltnetze können mit den grundlegenden logischen Verknüpfungen UND, ODER und NICHT beschrieben werden:1. x = AB ∨ C2. x = (A ∨ B) C3. x = (A ∨ B) C ∨ A
Die Verwendung nur eines Gattertyps erleichtert die technische Realisierung, weswegen NAND oder NOR basierte Systeme oftmals verwendet werden.Logische Schaltnetze können durch die Minimierung der logischen Verknüpfung minimiert werden
In vielen Fällen sind einfachere Schaltungen schnellerWeniger Gatter reduziert die KostenEs wird weniger Energie benötigt
Boolesche Algebra und Gatter
8. Zusammenfassung
8.32Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
MinimierungDNF liefert relativ aufwendige Lösungen
Baut auf den Mintermen aufJedes UND Gatter enthält alle EingangsvariablenNicht praktikabel in „echten“ Anwendungen
Die Suche nach einer einfacheren Lösung ist Ziel der Optimierung (Minimierung).Voraussetzung jeder Optimierung: Kostenfunktion beschreibt Ziel.In unserem Fall: Möglichst wenige, möglichst kleine GatterGenauer: Die Anzahl der Eingänge in alle Gatter soll minimal werden.In einer Gleichung ist dann die Anzahl der Variablen aller Terme plus die Anzahl der Terme (Länge) minimal.
_ _ _Y = (D C B A) ∨ (D C B) ∨ (E C) => L = 4+3+2+3 = 12
Wie erzielen wir möglichst kleine Gatter? Wir versuchen, durch Anwendung der Rechenregeln, die einzelnen Terme kürzer zu machen.
Boolesche Algebra und Gatter
8. Zusammenfassung
8.33Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
12 13
10 11
17 16
15 14
5 4
7 62 3
0 1
B
A
C
D
01111170011116010111500011141110113001011211001110000110011107001106010105000104111003101002110001100000ZABCDFall
_ _ _ _ _ _ _ _ _ _ _ _DNF: Z = A B C D ∨ A B C D ∨ A B C D ∨ A B C D
Minterme: 0: 0000 1: 0001 13: 1011(Blöcke) 2: 0010 3: 0011 11: 1001
_ _ _ _ _ _Minimierte Gleichung: Z = A C D ∨ A C D ∨ ACD
1 1
1 1
1
1
0 0
0
0
0
0
0
0
0
0
00-0 00-1 10-1
Primblöcke: 00-- -0-1 _ _ _ Minimierte Gleichung mit Primtermen: Z = C D ∨ A C
Blockbildung im KV-Diagramm
Boolesche Algebra und Gatter
8. Zusammenfassung
8.34Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Arithmetisch-Logische Einheit (ALU) (2/2)Register X Register Y
Multiplexerschaltnetz
arithmetisch-logisches Schaltnetz
Schiebeschaltnetz
Register Z
s1
s2
cin
s3s4s5
s6s7
zerosign
overflow
cout
Boolesche Algebra und Gatter
8. Zusammenfassung
8.35Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Schaltnetze
x2
x3
xn
Eingangs-variablen Ausgangs-
variablen
Schaltwerkex1
y2
y3
yn
y1
Speicher-
elementeTakt
Schaltwerk
ResetSchaltwerke
8. Zusammenfassung
8.36Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
DC
lk
SR DC
lk
SR DC
lk
SR DC
lk
SR
Q1Q2Q3Q4
D1D2D3D4
ClrClk
Das Register (1/2)
Ein Register ist eine Aneinanderreihung von D-Flipflops, z.B. 8, oder 16 oder 32 Stück ("Breite" des Registers)Der Takt ist allen FFs gemeinsam
Schaltwerke
8. Zusammenfassung
8.37Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Bestandteile eines von Neumann Rechners
Haupt- bzw. Arbeitsspeicher für Programme und DatenRAM, ROM
BusseDatenbus, Adressbus, Steuerbus
Ein- / Ausgabewerk (I/O)Keyboard, Maus, Scanner, …..Drucker, Bildschirm, ….Festplatten / Magnetbänder
Steuerwerk (auch Leitwerk genannt)Rechenwerk
Register Arithmetical Logical Unit (ALU)
Steuerwerk + Rechenwerk = CPU
8. Zusammenfassung
8.38Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
8. Zusammenfassung
8.39Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
temp = v[k];v[k] = v[k+1];v[k+1] = temp;
lw $15, 0($2)lw $16, 4($2)sw $16, 0($2)sw $15, 4($2)
0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111
IR ← Imem[PC]; PC ← PC + 4
Programm in einerHochsprache (C, Java)
Assembler Programm(Spim für MIPS R2000)
MaschinenspracheProgramm (MIPS R2000)
RegistertransferAnweisungen
Compiler
Assembler
Interpretation durchLeitwerk
°°
C code
Assembler-programm
Maschinen-code
ALUOP[0:3] ⇐ InstReg[9:11] & MASK
Register-transferAnweisung
8. Zusammenfassung
8.40Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Assember Programm – ein Beispiel
# Beispielprogramm V. 001# berechnet den Umfang eines Dreiecks mit den Kanten x, y, z# kein sehr sinnvolles Programm.datax: .word 12y: .word 14z: .word 5u: .word 0.textmain: lw $t0, x
lw $t1, ylw $t2, zadd $t0, $t0, $t1 # $t0 := x + yadd $t0, $t0, $t2 # $t0 := x + y + zsw $t0, u # u := x + y + zli $v0, 10 # EXITsyscall
8. Zusammenfassung
8.41Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Übersicht
Kontrollstrukturen Sprünge (bedingte und unbedingte)If-then-else, CaseLoop (n Durchläufe) While (Abbruchbedingung)
StackUnterprogrammePipelining
8. Zusammenfassung
8.42Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Pipelining
Der Befehl wird nicht schneller ausgeführt, aber es können mehr Befehle pro Zeit ausgeführt werden.
Parallelität und damit eine Geschwindigkeitssteigerung um die Anzahl der Pipelinestufen.
Pipelinekonflikte Datenfluss-Konflikt durch Datenabhängigkeiten (Data Interlock)Beispiel:add $t0, $t1, $t2 # $t0 $t1 + $t2addi $t0, 1# $t0 $t0 + 1
add ID $t1,$t2 + $t0
addi ID $t0 + 1 $t0
8. Zusammenfassung
8.43Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Architektur eines Pentiumsystems
Einführung
8. Zusammenfassung
8.44Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Task Semantic Objects Example OperationGUI/shell window execute shell script
Application a.out quit, kill, …
File System directories, files open, close, read,
Devices printer, display open, write, ...
Communication ports send, receive, …
Virtual Memory segments, pages write, fetch
Secondary Store chunks, blocks allocate, free,
Processes task queue exit, create…
Threads ready queue wakeup, execute,
Interrupts interrupt handler invoke, mask, ...
Potentielle Systemkomponenten
Einführung
8. Zusammenfassung
8.45Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Aufgaben eines Betriebssystems (1/5)
Prozessverwaltung(Ein Prozess oder auch Task ist ein in Ausführung befindliches Programm)Erzeugen und Löschen von ProzessenProzessorzuteilung (Scheduling)ProzesskommunikationSynchronisation nebenläufiger Prozesse, die gemeinsame Daten benutzen
SpeicherverwaltungZuteilung des verfügbaren physikalischen Speichers an ProzesseEinbeziehen des Hintergrundspeichers (Platte) durch virtuelle Adressierung, demand Paging, Swapping (= Ein-/Auslagern von Prozessen), etc.
Einführung
8. Zusammenfassung
8.46Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Allgemeine Schalenstruktur von UNIX und Linux
Einführung
8. Zusammenfassung
8.47Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Ausblick
Kurzer Blick auf Konzepte zur Realisierung der Aufgaben eines BetriebssystemsEinfluss auf Programmierung von AnwenderprogrammenEs werden Teilgebiete der folgenden grundlegenden Konzepte betrachtet
ProzessverwaltungSpeicherverwaltungEin- und AusgabeDateisysteme
Studenten des Studienganges „Angewandte Informatik“ wird der Besuch der Spezialvorlesung dringend empfohlen!
Einführung
8. Zusammenfassung
8.48Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Prozesse
Ein Prozess ist der Ablauf eines sequentiellen Programms.Benötigt Betriebsmittel (CPU, Speicher, Dateien, etc.) und ist selbst ein Betriebsmittel.Wird vom Betriebssystem verwaltet (Erzeugung, Terminierung, Scheduling, etc.) Ein Prozessor führt in jeder Zeiteinheit maximal einen Prozess aus. Laufen mehrere Prozesse, dann finden Prozesswechsel statt. Das Betriebssystem entscheidet über die Prozesswechsel.Prozesse sind gegeneinander abgeschottet, d.h. jeder besitzt (virtuell) seine eigene Betriebsmittel, wie etwa den Adressraum. Das BS sorgt für die Abschottung.Wir gehen von voneinander unabhängigen Prozessen aus. Bei Kooperation ist eine explizite Synchronisation erforderlich.
Prozessverwaltung
8. Zusammenfassung
8.49Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Leichtgewichtsprozesse (Threads)
Threads sind parallele Kontrollflüsse, die nicht gegeneinander abgeschottet sind
laufen innerhalb eines Adressraumes, innerhalb eines „echten“ Prozessesteilen sich gemeinsame Ressourcen
Prozessverwaltung
8. Zusammenfassung
8.50Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Interprozesskommunikation (IPC)
Prozesse arbeiten oft nicht allein, sondern müssen Informationenaustauschen, um eine gemeinsame Aufgabe zu erfüllen.
Beim diesem Austausch müssen drei wichtige Fragen beantwortet werden:
Wie werden die Daten ausgetauscht?Über gemeinsame Variablen?Über Nachrichtenaustausch?
Wie wird sicher gestellt, dass die Prozesse nicht gleichzeitig auf gemeinsame Information zugreifen?Wie wird die richtige Reihenfolge des Zugriffs sicher gestellt (Producer-Consumer-Problem)?
Die beiden letzten Fragen beschreiben das Synchronisationsproblem.
Prozessverwaltung
8. Zusammenfassung
8.51Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Kommunikationsformen
Gemeinsame Variablen: vor allem in Ein-Prozessor und Multiprozessor-Systemen mit gemeinsamem physikalischen Speicher
Nachrichtenaustausch: vor allem bei verteilten Systemen, also Kommunikation über Rechnergrenzen hinweg
Prozess
Prozess
Rechner
Speicher
Prozess Rechner
Prozess Rechner
Netz
Prozessverwaltung
8. Zusammenfassung
8.52Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Verklemmungen/Deadlocks
Prozesse benötigen Betriebsmittel, meist sogar mehrereDruckerFestplatteSpeicher (z.B. in internen BS-Tabellen)
Was passiert wenn sich zwei Prozesse jeweils ein Betriebsmittel reservieren, das der andere auch benötigt?
Diese Situation wird als Deadlock bezeichnetDefinition: Eine Menge von Prozessen befindet sich in einer Verklemmung (deadlock), wenn jeder Prozess der Menge auf ein Ereignis wartet, dass nur ein anderer Prozess aus der Menge auslösen kann.
Prozessverwaltung
8. Zusammenfassung
8.53Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Notwendige Bedingungen für eine Verklemmung
1. Wechselseitiger Ausschluss (mutual exclusion):Ein Betriebsmittel ist entweder genau einem Prozess zugeordnet oder es ist verfügbar.
2. Wartebedingung (hold and wait):Es gibt einen Prozess, der ein Betriebsmittel belegt und auf einanderes Betriebsmittel wartet, das von einem anderen Prozess belegt wird.
3. Keine Verdrängung (no preemption):Einem Prozess kann ein Betriebsmittel nicht entzogen werden.
4. Zirkuläres Warten (circular wait):Es gibt eine Menge {P1, P2,..., Pn} von Prozessen, so dass P1 auf ein Betriebsmittel wartet das P2 belegt, P2 wartet auf ein Betriebsmittel das P3 belegt, ..., und Pn wartet auf ein Betriebsmittel das P1 belegt.
Prozessverwaltung
8. Zusammenfassung
8.54Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Einführung
Speicherverwaltung
Verschiedene Arten von Speichern, hierarchisch organisiert:Cache-SpeicherHauptspeicherSekundärspeicherArchiv-Speicher
Eigenschaften des Hauptspeichers:Der Hauptspeicher besteht aus einer Menge von Wörtern oder Bytes, die jeweils über eine eigene Adresse verfügen.Sowohl die CPU als auch E/A-Geräte greifen auf den Hauptspeicher zu.Ausführbare Programme befinden sich zumindest teilweise im Hauptspeicher.Die CPU kann normalerweise nur auf Daten im Hauptspeicher direktzugreifen
8. Zusammenfassung
8.55Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Grundlegende Speicherverwaltung
Speichermanagement: grundsätzlich zwei Klassen:Verschieben von Prozessen vom Hauptspeicher auf Festplatte und zurück (Swapping, Paging)Oder nicht (einfache Variante)
Bei Verzicht auf Swapping und Paging:Monoprogramming:
immer nur ein Prozess sowie das OS im SpeicherEinsatzgebiet: frühe Batchsysteme, eingebettete Systeme
Multiprogramming mit festen PartitionenSpeicher wird in feste Blöcke eingeteilt, Programme bekommen einen Speicherbereich zugewiesenEinsatz im OS/360 von IBMOft wurde die Größe der Partitionen einmal am Tag festgesetzt
Speicherverwaltung
8. Zusammenfassung
8.56Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Abbildungen von Speicheradressen
Ein Compiler/Assembler übersetzt symbolische Adressen (Namen von Variablen und Funktionen) in absolute oder relative Speicheradressen.
Ein Linker bindet mehrere Objektmodule mit relativen Adressen und die benötigten Bibliotheken zu einem ausführbaren Programm (executable).
absolute/relative Adressen
ObjektmodulCompilerQuelltext
symbolische Namen
relative Adressen
Linker Executable
statisch/dynamisch gebunden
Objektmodule
Bibliotheken
statisch/dynamischSpeicherverwaltung
8. Zusammenfassung
8.57Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Moderne Speicherverwaltung
Heutige Computer haben andere Anforderungen an die Verwaltung des SpeichersInsbesondere
Laufen meist viele ProzesseHaben die Prozesse oft mehr Speicherbedarf als physikalischer Speicher vorhanden ist
Zwei wichtige Lösungen:Swapping: Verschieben von Prozessen zwischen Hauptspeicher und PlatteVirtual Memory: Prozesse sind nur zum Teil im Hauptspeicher
Speicherverwaltung
8. Zusammenfassung
8.58Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Shared Libraries
Speicherverwaltung
8. Zusammenfassung
8.59Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Direct Memory Access (DMA)
I/O kann mittels DMA deutlich beschleunigt werden, da die CPU weniger belastet istPrinzip: vergib einen Auftrag an DMA-Controller, erledige bis zum Ende der Bearbeitung andere DingeAblauf eines DMA-Transfers:
Ein- und Ausgabe
8. Zusammenfassung
8.60Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Einführung
InhalteGrundlegende Konzepte von ProgrammiersprachenOrganisation von Compilern für moderne ProgrammiersprachenEinführung in die Theorie von formalen Sprachen und Automaten
Als Grundlage dient das Buch “Programming Language Pragmatics” von Michael L. Smith
Einführung
8. Zusammenfassung
8.61Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Der Kompilationsprozess (-phasen)
Scanner (lexikalische Analyse)
Parser (syntaktische Analyse)
Semantische Analyse
Zwischencodegenerierung
Optimierung
Zielcodegenerierung
Optimierung Maschinenebene
Lese Programm und konvertiere Zeichenstrom in Marken (tokens). Theorie: Reguläre Ausdrücke, endlicher Automat
Lese Tokenstrom und generiere Ableitungsbaum (parse tree). Theorie: Kontextfreie Grammatiken, Kellerautomat
Traversiere Parserbaum, überprüfe nicht-syntaktische Regeln.
Traversiere Parserbaum noch mal, gebe Zwischencode aus.
Untersuche Zwischencode, versuche ihn zu verbessern.
Übersetze Zwischencode in Assembler-/Maschinencode
Untersuche Maschinencode, versuche ihn zu verbessern.
8. Zusammenfassung
8.62Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Implementierung eines lexikalischen Analysators
Wie übertragen wir reguläre Ausdrücke in einen lexikalischen Analysator?
Konvertiere reguläre Ausdrücke zu einem deterministischen endlichen (finite) Automaten (DFA)
Warum??? DFAs sind einfacher zu simulieren als reguläre Ausdrücke
Schreibe ein Programm zum Simulieren eines DFAsDer DFA erkennt die Tokens im Eingabetext und wird der lexikalische AnalysatorWenn ein Token erkannt wurde, dann kann eine benutzerdefinierte Aktion ausgeführt werden
z.B. überprüfe, ob der Wert einer Ganzzahlkonstante in eine 32-bit integer passt
Die Konvertierung von regulären Ausdrücken zu DFAs und das Schreiben eines Programms zum Simulieren des DFA kann entweder von Hand vorgenommen werden oder von einem anderen Programm, welches lexikalischer Analysegenerator genannt wird.
RegularExpressions
+Actions
Lexical AnalyzerGenerator
Lexical analyzersource code
High-level languagecompiler
Lexical analyzer
Lexikalische Analyse
8. Zusammenfassung
8.63Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Kontextfreie Grammatiken (1/4)
Eine kontextfreie Grammatik (KFG/CFG) ist eine rekursive Definition einer Sprache mit:
Einem Alphabet Σ von Symbolen
Eine Menge von Produktionen (oder Regeln) der Formsymbol -> symbol symbol … symbol
Ein Startsymbol
Eine Menge von nicht-terminalen Symbolen aus dem Alphabet Σ, welche auf der linken oder rechten Seite einer Produktionsregel erscheinen darf (convention: written in all capital letters)
Eine Menge von terminalen Symbolen aus dem Alphabet Σ, welche nur auf der rechten Seite einer Produktionsregel erscheinen darf. (convention: written in all lower case letters)
Die Menge aller von einer CFG G erzeugten Strings wird die Sprache von Ggenannt und wird symbolisiert durch L(G)
8. Zusammenfassung
8.64Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Ableitungen und Ableitungsbäume (2/2)
expr
⇒ ( sum)
⇒ ( expr + expr )
⇒ ( INT + expr )
⇒ (INT + ( sum ) )
⇒ (INT + ( expr + expr ) )
⇒ (INT + ( INT + expr ) )
⇒ (INT + (INT + INT ) )
expr
sum( )
expr + expr
INT
sum
expr + expr
( )
INT
INT
8. Zusammenfassung
8.65Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Mehrdeutigkeiten (1/2)
Eine Grammatik gilt als Mehrdeutig, wenn ein Satz mit (mind.) zwei verschiedenen Ableitungsbäumen abgeleitet werden kannBeispiel – linksseitige versus rechtsseitige Ableitung:
Grammatik:expression -> identifier | number | - expression | ( expression ) |
expression operator expressionoperator -> + | - | * | /
Eingabe: slope * x + intercept
8. Zusammenfassung
8.66Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Kellerautomat (2/4)
Kontextfreie Grammatiken können von Kellerautomaten (Push Down Automata, PDA) erkannt werdenPDAs sind eine Erweiterung der endlichen Automaten um ein „einfaches“ Gedächtnis (Hilfsband)Eigenschaften eines Kellerautomaten:
Das Eingabeband kann sich nur in eine Richtung bewegen.Es existiert ein "Hilfsband", welches sich in beide Richtungen bewegen kann.Der Automat liest im ersten Schritt die jeweils erste Zelle beider Bänder.Als Reaktion des Automaten kann entweder das Hilfsband vorwärts bewegt und ein Zeichen in die nächste Zelle geschrieben werden oder das Symbol gelöscht und das Hilfsband eine Zelle zurück bewegt werden.
8. Zusammenfassung
8.67Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Klassen von Grammatiken und Parsern
LL(k) ParserEingabe wird von links-nach-rechts(1. L) abgearbeitetlinksseitige Ableitung (2. L)“top down” oder “prädiktive” (voraussagende) Parser genannt
LR(k) parsersEingabe wird von links-nach-rechts(1. L) abgearbeitetrechtsseitige Ableitung (2. R)“bottom up” oder “schiebe-reduziere“ (shift-reduce) Parser genannt
“k” steht für die Anzahl von Symbolen (token) für die in der Eingabe vorausgeschaut werden muss um eine Entscheidung treffen zu können
LL(k) – welche nächste Produktion auf der rechten Seite ist bei einer linksseitigen Ableitung zu wählenLR(k) – ob zu schieben oder reduzieren
8. Zusammenfassung
8.68Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Probleme mit der LL-Syntaxanalyse (1/4)
LinksrekursionProduktionen von der Form:
A -> AαA -> β
Wenn eine Grammatik linksrekursive Produktionen enthält, dann kann es dafür keinen LL Parser geben
LL Parser würden in eine Endlosschleife eintreten, wenn versucht wird eine linksseitige Ableitung in solch einer Grammatik vorzunehmen
Linksrekursion kann durch das Umschreiben der Grammatik ausgeschlossen werden
A -> βA’A’ -> αA’ | є
8. Zusammenfassung
8.69Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Probleme mit der LL-Syntaxanalyse (3/4)
Gemeinsame PräfixeTritt auf wenn zwei verschiedene Produktionen mit der gleichen linken Seite mit den gleichen Symbolen anfangen
Produktionen der Form:A -> bαA -> bβ
LL(1) Parser kann nicht entscheiden welche Regel auszuwählen ist, wenn A in einem linksseitigen Ableitungsschritt zu ersetzen ist, weil beide rechten Seiten mit dem gleichen Terminalsymbol anfangen
Kann durch Faktorisierung ausgeschlossen werden:A -> bA’A’ -> α | β
8. Zusammenfassung
8.70Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
FOLLOWFIRSTNULLABLE
{$}{s,a,b}FalseS{s,a,b}{b, є}TrueB{b,s,a}{a,b,є}TrueA
Beispiel für PREDICT-Mengen
{a,b,s}S->ABS
{b, є}B->b{a,b,s}B->є
PREDICT
{s}S->s$
{a}A->a{a,b,є,s}A->B PREDICT-Mengen zeigen uns welche
Menge von look-ahead Symbolen die rechte Seite einer Produktion selektiertDiese Grammatik ist NICHT LL(1), da es duplizierte Symbole in den PREDICT-Mengen für alle drei Nichtterminale gibt
Siehe Hervorhebungen (dick, rot)
A -> aB -> bS -> A B S A -> BB -> єS -> s$
8. Zusammenfassung
8.71Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Ableitungsbäume und Parser mit rekursivem Abstieg (2/2)
Beispiel: Jedes nichtterminale Unterprogramm konstruiert einen Ableitungsbaumknoten
factor -> ( expr )factor -> [ sexpr ]
Nicht alle Symbole werden zu einem Ableitungsbaumknoten
Beispiele: ‘(‘, ‘)’, ‘[‘, ‘]’Diese Art von Ableitungsbaum wird „Abstrakter Syntaxbaum“ (abstract syntax tree, AST) genannt
node *factor (void) {switch(next_token()) {
case ‘(‘: node = factor_node(expr());match(‘)’); break;
case ‘[‘:node = factor_node(sexpr());match(‘]’); break;
}return node;
}
8. Zusammenfassung
8.72Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Ausblick
Namen, Bindungen und Gültigkeitsbereiche (Kapitel 3)Objektlebenszeit und SpeichermanagementKontrollfluss (Kapitel 6)Zusammenführung (Bau eines ausführbaren Programms) (Kapitel 9)
8. Zusammenfassung
8.73Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Zusammenfassung Namen und Bindungen
NamenEin mnemonischer Zeichenname wird verwendet um irgendetwas anderes zu repräsentieren oder zu benennen
Beispiel: Variable foo kann die Speicherstelle 10000 referenzieren
BindungenIst eine Assoziation zwischen zwei Dingen
Ein Name und das was er referenziert
BindezeitDie Bindezeit ist die Zeit zu der die Entscheidung über eine solche Assoziation gemacht wird
Beispiel: Ist der Wert von foo in einem Register oder im Speicher? (Entscheidung wird zur Compilezeit gemacht)
8. Zusammenfassung
8.74Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Gültigkeitsbereiche
Textueller Bereich eines Programms in welchem eine Bindung aktiv istEs gibt grundsätzlich zwei Varianten:
Statische Gültigkeitsbereiche (static scopes)Es kann zur Compilezeit genau festgestellt werden welcher Name welches Objekt an welchen Punkten im Programm referenziert
Dynamische Gültigkeitsbereiche (dynamic scopes)Bindungen zwischen Namen und Objekten hängen vom Programmfluss zur Laufzeit ab
Nähere AusführungDer Prozess durch den eine Menge von Bindungen aktiv wird wenn die Kontrolle in einen Gültigkeitsbereich eintritt
Zum Beispiel die Allokation von Speicher um Objekte darin zu halten
8. Zusammenfassung
8.75Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Objektlebensdauer (1/3)
Schlüsselereignisse während der Lebensdauer eines ObjektesObjekt wird erzeugtBindungen zum Objekt werden erzeugtReferenzen zu den Variablen, Unterprogrammen und Typen werden durch Bindungen gemachtDeaktivierung und Reaktivierung von temporär nicht verwendbaren BindungenVernichtung von BindungenVernichtung des Objekts
Lebensdauer von Bindungen: Zeit zwischen Erzeugung und Vernichtung einer Bindung
Beispiel: Zeit während der eine Java Referenz ein Objekt im Speicher referenziert
Lebensdauer von Objekten: Zeit zwischen Erzeugung und Vernichtung eines Objekts
Beispiel: Zeit während der ein Objekt im Speicher „lebt“
8. Zusammenfassung
8.76Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Objektlebensdauer (3/3)
Die Lebenszeit eines Objekts korrespondiert mit einem von drei Hauptmechanismen der Speicherallokation
Statische AllokationObjekte werden zur Compilezeit oder Laufzeit zu festen Speicherplätzen allokiert
Stack AllokationObjekte werden zur Laufzeit wie benötigt allokiert, wobei eine last-in, first-outOrdnung gilt
Beispiel: Lokales
Heap AllokationObjekte werden zur Laufzeit in einer beliebigen Reihenfolge allokiert und freigegeben
Beispiel: dynamisch allokierte Objekte
8. Zusammenfassung
8.77Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Kategorien von Kontrollflussmechanismen
Sequentialität (sequencing)Bestimmt für ein gegebenes Paar von Berechnungen welches zuerst ausgeführt wird
Auswahl (selection)Wähle, basierend auf einer Laufzeitbedingung, welche von mehreren Berechnungen ausgeführt werden soll
Iteration (iteration)Führt eine Gruppe von Berechnungen mehrmals aus
Rekursion (recursion)Erlaubt es Berechnungen durch sich selbst zu definieren (Allows computations to be defined in terms of themselves)
Prozedurale Abstraktion (procedural abstraction)Erlaubt es einer Gruppe von Berechnungen zu bennen, möglicherweise zu parametrisieren und auszuführen wann immer der Name referenziert wird
Nebenläufigkeit (concurrency)Erlaubt es Berechnungen „zur gleichen Zeit“ auszuführen
Keine Festlegung (Nondeterminancy)Reihenfolge zwischen Berechnungen wird unspezifiziert gelassen
8. Zusammenfassung
8.78Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Peephole-Optimierung
Sehe dir den Zielcode an, wenige Instruktionen gleichzeitig, undversuche einfache Verbesserungen zu machenVersucht kurze, sub-optimale Folgen von Instruktionen zu finden und ersetzt diese Sequenzen mit einer „besseren“ SequenzSub-Optimale Sequenzen werden durch Muster (patterns) spezifiziert
Meistens heuristische Methoden — Es gibt keinen Weg um zu überprüfen ob das Ersetzen eines sub-optimalen Musters tatsächlich das endgültige Programm verbessern wird
Einfach und ziemlich wirksam
8. Zusammenfassung
8.79Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Die Organisation eines typischen Compilers
FrontendFührt Operationen aus welche von der zu kompilierenden Sprache abhängen und nicht von der Zielmaschine
BackendFührt Operationen aus welche etwas Wissen über die Zielmaschine haben müssen
8. Zusammenfassung
8.80Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Binden (linking)
Beim Binden werden mehrere durch den Assembler erzeugte Objektdateien zu einer einzelnen, ausführbaren Datei kombiniert, welche durch ein Betriebssystem lauffähig ist
8. Zusammenfassung
8.81Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Was haben Sie in diesem Kapitel gelernt?
Programmiersprachen sind Abstraktionsmechanismen, welche:ein Rahmenwerk zum Lösen von Problemen und erzeugen neuer Abstraktionen bietenSchirmen den Programmierer von niederen Detailebenen (low-leveldetails) der Zielmaschine (Assemblersprache, Verbinden (linken), etc.) ab
Compiler sind komplexe Programme welche eine höhere Programmiersprache in eine Assemblersprache umwandeln um danach ausgeführt zu werdenCompilerprogrammierer handhaben die Komplexität des Kompilationsprozesses durch:
aufteilen des Compilers in unterschiedliche Phasenverwenden, ausgehend von der Spezifikation, eine Theorie für den Bau von Compilerkomponenten
8. Zusammenfassung
8.82Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Matrix der Kommunikationsformen
TCP über IP im Internet; Email; FTPTelefonVerbindungs
-orientiert
UDP über IPim Internet;
NFS-Anwendung
IP über feste ATM-Strecken
Verbindungs-los
Paket-Vermittlung
Leitungs-vermittlung
8. Zusammenfassung
8.83Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Netztopologien und Medienzuteilung
Sterneinfache Wegwahlgeringe Ausfallsicherheit
Ringeinfache Wegwahlgeringe Ausfallsicherheithoher Aufwand für die Steuerung
BusStationen teilen sich ein Mediumgute Ausfallsicherheit
Liniennetzkonzeptionell einfachmittlere AusfallsicherheitPosition im Netz beeinflusst Übertragungszeiten
8. Zusammenfassung
8.84Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Darstellung und Schichtung von Diensten
Die Bildung von Schichten ist ein grundlegendes Prinzip zur Strukturierung von Kommunikationssystemen. Dienste einer Schicht dürfen immer nur Dienstprimitive von Diensten in direkt benachbarten Schichten in Anspruch nehmen.
N-Instanz 1 N-Instanz 2
Dienstnutzer DienstnutzerDienstzugangpunkt NDienstschnittstelle N
Schicht N
(N-1)-Instanz 1 (N-1)-Instanz 2 Schicht N-1
Dienstschnittstelle N-1 Dienstzugangpunkt N-1
8. Zusammenfassung
8.85Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Protokolldateneinheit (1/2)
N-Protokolldaten-einheit
(N-1)-Protokoll-dateneinheit
PKI PKI
PKIPKI
N-HeaderN-Benutzer- daten N-Trailer
(N-1)-Header (N-1)- Benutzerdaten (N-1)-Trailer
FolgenummerAdressen
Nachricht der N-Schicht FehlerprüfungBeispiele:
Eine Protokolldateneinheit (PDU, Protokol Data Unit) ist eine Informationseinheit, die zwischen Partnerinstanzen in verschiedenen Stationen als Teil des Protokolls ausgetauscht wird.Als Dienstdateneinheit (SDU, Service Data Unit) werden Schnittstellendaten bezeichnet, die von einer Schicht an die nächst niedrige oder umgekehrt übertragen werden.
8. Zusammenfassung
8.86Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Das ISO/OSI-Referenzmodell
Medium
Vermittlung
Transport
Bitübertragung
Sicherung
Steuerung
Darstellung
Anwendung
Network
Transport
Physical
Data Link
Session
Presentation
Application
Anwendungsprozeß
Network
Physical
Data Link
Application Process
Media
Transitsystem
Endsystem Endsystem
8. Zusammenfassung
8.87Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Protokollmechanismen die alle Schichten betreffen
Namensgebung (Naming): Identifikation von Objekten/RessourcenSegmentieren und BlockenVerbindungen und MultiplexenSynchronisation: Kontrolle in einer Umgebung mit unvorhersehbarer Verzögerung und FehlverhaltenFehlerüberwachung: Fehlererkennung und -behebungFlusskontrolle/StaukontrollePrioritäten
8. Zusammenfassung
8.88Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
LANs im ISO/OSI-Referenzmodell
Die LAN-Protokolle sind in der zweiten Schicht des ISO/OSI- Referenzmodells (Sicherungsschicht, data link layer) angesiedelt.
Die Sicherungsschicht wird nach IEEE in zwei Teilschichten aufgeteilt:
Die logical link control (LLC) Schicht realisiert die normalerweise in der Schicht 2 vorhandenen Sicherungsfunktionen.
Die media access control (MAC) Schicht regelt den Zugang zum Übertragungsmedium.
Vermittlung
Transport
Bitübertragung
Sicherung
Steuerung
Darstellung
Anwendung
Logical Link Control
Media Access Control
8. Zusammenfassung
8.89Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
IEEE 802.3 - CSMA/CD
Ablauf einer Kollision:
Backoff:Beim i-ten Versuch wird die Übertragung nach n Slotzeiten wiederholt, wobei n eine Zufallszahl aus dem Bereich 0 ... 2i-1 ist.Die Slotzeit für ein 10 Mbps Koaxialkabel mit maximal 2.5 km Länge entspricht 512 Bitzeiten oder 51.2 us.
Applet-Demo:http://herodot.informatik.uni-mannheim.de/appverw/appletlist2.php
StationA
StationB
A beginnt zu senden:B beginnt zu senden:B erkennt die Kollision:B sendet JAM Signal:
8. Zusammenfassung
8.90Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
IEEE 802.5 – Prinzip
Token-Ring ÜbersichtRingtopologie mit Sternverkabelung. Nur eine Senderichtung. Typischerweise STP-Kabel (andere möglich, z.B. koaxial). 4/16 Mbps, < 260 Stationen, < 100 m zwischen den Stationen.
MAC-ProtokollToken rotation (token passing) protocol.Unterstützung von Echtzeitdatenverkehr:
beschränkte Wartezeit für den Medienzugriff wegen begrenzter token holding time. Prioritäten.
TokenInterface
C
D
A
B
TokenInterface
C
D
A
B
Concentrator
D
B
A C
Concentrator
D
B
A C
8. Zusammenfassung
8.91Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Verbindung von Netzen
Klassifikation von Verbindungen:Verbindung von homogenen Netzen über BrückenVerbindung von heterogenen Netzen über Brücken oder Gateways
ZwischensystemeRepeater und Hubs (bis Schicht 1)Brücken (bridges) und Switches (bis Schicht 2)Router (bis Schicht 3)Gateways (bis Schicht 4 oder höher)
Diese Zwischensysteme gibt es oft nicht in Reinform, da verschiedene Funktionalitäten angeboten werden
z.B. Router haben oft Funktionalitäten eines Gateways, wie z.B. Port-Filter (für Firewalls)
Die Bezeichnungen von Zwischensystemen werden auch desöfteren falsch verwendet!
8. Zusammenfassung
8.92Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Zwischensysteme: Zusammenfassung
Ja
Nein
Ja
Ja
Switch
NeinNeinJaDurchleiten ohne Zwischenspeicherung
JaNeinNeinOptimale Wegewahl
NeinJaJaPlug & Play
JaJaNeinIsolation des Verkehrs
RouterBrückeHub
8. Zusammenfassung
8.93Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Die Internet-Protokollfamilie
NetworkIPICMP
Data Link
OSkernel
TCP TransportUDP
Application Programming Interface (API)
Userspace
Application protocols:HTTP, SMTP, FTP, ...
Web browser,e-mail, ... Other user
applicationsApplications
IGMP
ARP
RIP
RARP
OSPF
LAN DLtechnology
WAN DLtechnology
8. Zusammenfassung
8.94Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Routing-Tabellengeben den Ausgang zu einem Ziel an
„Best effort“-DienstKeine Garantie für
Auslieferung eines PaketsKorrekte Reihenfolge
Praktisch keine Echtzeit
DA,SA data
R1R3
R4R6
R2 R5
yx
Das Modell von IP
DatagrammeEinzelne, unabhängig voneinander weitergeleitete Pakete, die sich ihren Weg zum Ziel suchen
Router R1DA Next hopy R3, R4
... ...
Routing tablesRouter R3
DA Next hopy R6... ...
Router R6DA Next hopy -... ...
yx yxyx
yx yx
yx
8. Zusammenfassung
8.95Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
IPv4-Adressen
32 bitsBinäre und dezimale Darstellung
Hierarchische AdressierungNetzwerk-Nummer + Netzmaske (Classless Interdomain Routing (CIDR), RFC 1519). Bemerkung: IP-Adressklassen werden praktisch nicht mehr verwendet(wg. Adressknappheit)
Netzangabe: 134.76.0.0/255.255.0.0 oder alternativ 134.76.0.0/16 (16 = Länge der Netzmaske)
1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1
32 23 15 7 0
212 . 126 . 208 . 135
Binär:
Dezimal
8. Zusammenfassung
8.96Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Transportschicht: TCP und UDP
Aufgabe der Transportschicht: Datentransport von einem Prozess auf einem Rechner zu einem (oder mehreren) anderen Prozessen auf anderen Rechnern im Internet
Zwei MöglichkeitenDer grundlegende unzuverlässige Internetdienst genügt, dann verwende UDP.Er genügt nicht, dann verwende TCP.
End-To-End-Signifikanz:IP-Adressen identifizieren IP-Hosts und keine Applikationen.IP besitzt daher eine Host-To-Host-Signifikanz.Ein Transportendpunkt wird durch eine IP-Adresse und eine lokale eindeutige Portnummer identifiziert.TCP und UDP besitzen End-To-End-Signifikanz.Für Standard-Dienste sind Portnummern fest definiert (well-knownports).
8. Zusammenfassung
8.97Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
root NS
bob.com NSsam.edu NS
vega.sam.edu sun.bob.comQuery: “Address of
sun.bob.com”
(local) (authoritative)
Query: “Address ofsun.bob.com”
root NS
bob.com NSsam.edu NS
vega.sam.edu sun.bob.com
(local) (authoritative)
DNS-Abfragen (1/2)
Rekursive Abfragen Iterative Abfragen
5(R)
6(R)
2(Q)
1(Q)
3(Q)4(R)
2(Rfr)1(Q)
3(Q) 4(Rfr)
5(Q)
6(Rfr)
VegaVega sam.edu NSsam.edu NS root NSroot NS bob.com NSbob.com NS1(Q)1(Q)
2(Q)2(Q)3(Q)3(Q)4(R)4(R)
5(R)5(R)6(R)6(R)
VegaVega sam.edu NSsam.edu NS root NSroot NS bob.com NSbob.com NS1(Q)1(Q)
3(Q)3(Q)
5(Q)5(Q)6(R)6(R)
4(Rfr)4(Rfr)
2(Rfr)2(Rfr)
Q = Query R = ResponseRfr = Referral
8. Zusammenfassung
8.98Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
Geschafft
Betriebssysteme (Kapitel 5)
Maschinenorientierte Programmierung (Kapitel 4)
SpeicherZahlen und logische Schaltungen (Kapitel 2)
von-Neumann-Rechner (Kapitel 3)
von-Neumann-Rechner
Kommunikation (Kapitel 7)
Compilerbau (Kapitel 6)
8. Zusammenfassung
8.99Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
ENDE
8. Zusammenfassung
8.100Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter HogrefeInformatik II - SS 2004
ENDE