Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe...

25
Prof. Dr. Dieter Hogrefe Dipl.-Inform. Michael Ebner Lehrstuhl für Telematik Institut für Informatik Informatik II Informatik II SS 2004 Teil 8: Zusammenfassung 8. Zusammenfassung 8.2 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Klausur Termin: Samstag, 24.7, 10:00-12:00Uhr Ort: Mathematisches Institut: Maximum, HS1, Übungssaal Identifizierung Personalausweis und Immatrikulationsbescheinigung oder 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.3 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Lehrstuhl für Telematik Vorlesungen Informatik II (SS) Telematik (WS) Mobilkommunikation I (SS) und II (WS) Seminare Netzwerksicherheit (WS) Mobilkommunikation (SS) Praktika Praktikum Telematik BSc und MSc Arbeiten siehe http://www.tmg.informatik.uni-goettingen.de/theses Hiwis ZFI/IFI/TMG Web auf Anfrage 8. Zusammenfassung 8.4 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik 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 IP Voice 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

Transcript of Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe...

Page 1: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 2: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 3: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 4: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 5: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 6: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 7: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 8: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 9: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 10: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 11: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 12: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 13: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 14: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 15: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 16: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 17: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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’ | є

Page 18: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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)

Page 19: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 20: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 21: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 22: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 23: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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

Page 24: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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).

Page 25: Informatik II...8. Zusammenfassung 8.9 Dipl.-Inform. Michael Ebner, Prof. Dr. Dieter Hogrefe Informatik II - SS 2004 Architektur und Programmierung Das Wissen über die Rechnerarchitektur

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