INFORMATIK 1. Fehlerbehandlung, Funktionsweise eines Computers

Ähnliche Dokumente
Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Rechner Architektur. Martin Gülck

Ausnahmen-Behandlung

Der von Neumann Computer

Informatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Von-Neumann-Architektur

!!! Der Mikroprozessor ist überall!!!

Teil 2: Rechnerorganisation

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

Computer - Aufbau u. Funktionsweise

Aufbau und Funktionsweise eines Computers

Philipp Grasl PROZESSOREN

HW- und SW-Komponenten eines PC. IBM 5150 aus dem Jahre 1981

L3. Datenmanipulation

Grundlegendes zum PC

Vorlesung Rechnerarchitektur. Einführung

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Arbeitsfolien - Teil 4 CISC und RISC


Die HAM. Die Hypothetische Akku-Maschine

Tutorium Rechnerorganisation

Teil VIII Von Neumann Rechner 1

1. Übung - Einführung/Rechnerarchitektur

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

1 Aufgaben Wie funktioniert ein Computer. a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 5W, 12W,

3. Rechnerarchitektur

Abschlussklausur Informatik, SS 2012

Rechnergrundlagen. Vom Rechenwerk zum Universalrechner

Computer-Architektur Ein Überblick

Mikroprozessor (CPU)

Rechnergrundlagen. Vom Rechenwerk zum Universalrechner. von Prof. Dr. Rainer Kelch. Fachbuchverlag Leipzig im Carl Hanser Verlag

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer

Allgemein PC Aufbau 1

Wie ist ein Computer aufgebaut?

Informatikgrundlagen I Grundlagen der Informatik I

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen

Mikrocomputertechnik

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Die Mikroprogrammebene eines Rechners

Hardware & Kernel-Module

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Einstieg imperative Programmierung auf Von-Neumann-Rechnern

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

ZENTRALEINHEITEN GRUPPE

1. TÜ-Zusammenfassung zum Modul Computersysteme

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

Mikroprozessortechnik Grundlagen 1

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben

Teil 1: Prozessorstrukturen

ZTP Der kurze Weg zur langen Sicherheit. Vortragender: Clemens Prentner

Betriebssysteme Vorstellung

Johann Wolfgang Goethe-Universität

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...

Mikroprozessor als universeller digitaler Baustein

Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S ]

Im Original veränderbare Word-Dateien

Grundlagen der Rechnerarchitektur. Einführung

Steffen Uhlig Meinrad Weick

Arithmetische und Logische Einheit (ALU)

Rechner- organisa-on 2 TOY. Karl C. Posch.

Informatik I Information & Daten Repräsentation von Daten

Klausur "Informatik I" vom Teil "Rechnerstrukturen"

Einführung in die Informatik

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Microcomputertechnik

Angewandte Informatik

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Grundlagen Rechnerarchitektur und Betriebssysteme

Architektur und Organisation von Rechnersystemen

Programming 101. Carl Herrmann IPMB & DKFZ

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

C. BABBAGE ( ): Programmgesteuerter (mechanischer) Rechner

Rechnergrundlagen SS Vorlesung

Klausur "Informatik I" vom Teil "Rechnerstrukturen"

Rechnerorganisation. H.-D. Wuttke `

Inhaltsangabe. 2.1 DieCPU Der Speicher Die Busse Klassifikation der von-neumann-rechner... 37

Steuerwerk einer CPU. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

Fachbereich Medienproduktion

Teil 1: Prozessorstrukturen

Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega128

Transkript:

706.088 INFORMATIK 1 Fehlerbehandlung, Funktionsweise eines Computers

1. 1 Wiederholung:»» Binärzahlen Binär rechnen Fehler-behandlung in Python Funktionsweise eines Computers 1. 2

BINÄRZAHLEN 2. 1

BINÄR RECHNEN addieren subtrahieren» 2er Komplement multiplizieren dividieren 2. 2

BINÄR RECHNEN Bit Operatoren»»»» shi en AND OR XOR 2. 3

FEHLER-BEHANDLUNG IN PYTHON 3. 1

FEHLERBEHANDLUNG IN PYTHON Ausnahmebehandlung, engl: Exception Handling Vereinfacht Fehlerbehandlung durch speziellen Mechanismus Rückgabewerte von Funktionen können für ordentlichen Programmablauf verwendet werden Fehler können strukturiert behandelt werden 3. 2

EXCEPTION HANDLING Fehler 'wir ' eine Exception (Objekt) nach 'oben', Funktion ist beendet. Übergeordnete Funktion kann:»»» fangen, fortfahren fangen, weiterwerfen, Funktion ist beendet lässt passieren, Funktion ist beendet 3. 3

EXCEPTION OBJEKT Enthält Attribute und Methoden (Funktionen) zur Klassifizierung des Fehlers >>> e = Exception("My custom error") >>> e.args ('My custom error',) >>> e = Exception("My custom error","test", 1,2) >>> e.args ('My custom error', 'test', 1, 2) 3. 4

EXCEPTION WERFEN >>> raise Exception("My Exception") Traceback (most recent call last): File "<stdin>", line 1, in <module> Exception: My Exception 3. 5

EXCEPTION WERFEN Nur BaseException und davon Abgeleitete dürfen geworfen werden >>> raise "test" Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: exceptions must derive from BaseException 3. 6

EINGEBAUTE EXCEPTIONS BaseException Exception (Basisklasse für Benutzer) SyntaxError NameError TypeError ImportError... 3. 7

EXCEPTION BEHANDLUNG try öffnet den Try-Block Exceptions aus dem Try-Block werden im Except-Block gefangen except definiert welche Exceptions behandelt werden 3. 8

EXCEPTION FANGEN >>> open("/tmp/non_existing_file",'r') Traceback (most recent call last): File "<stdin>", line 1, in <module> FileNotFoundError: [Errno 2] No such file or directory: '/tmp/non_exi try: open("/tmp/non_existing_file") except OSError as e: print("caught:", e) Caught: [Errno 2] No such file or directory: '/tmp/non_existing_file' 3. 9

TRY - EXCEPT - ELSE try: print("all good") except NameError: print("undefined vars found") except: print("don't know this error!") raise else: print("everything is fine") 3. 10

EXCEPT - ELSE try: print("all good") open("/tmp/non_existing_file") except NameError: print("undefined vars found") except: print("don't know this error!") raise else: print("everything is fine") print("normal program flow") all good Don't know this error! Traceback (most recent call last): File "<stdin>", line 3, in <module> FileNotFoundError: [Errno 2] No such file or directory: '/tmp/non_exi 3. 11

EXCEPT - ELSE try: print(a) # undefined! print("all good") except NameError: print("undefined vars found") except: print("don't know this error") raise else: print("everything is fine") print("normal program flow") Undefined vars found normal program flow 3. 12

EXCEPT - ELSE try: print("all good") except NameError: print("undefined vars found") except: print("don't know this error!") raise else: print("everything is fine") print("normal program flow") all good everything is fine normal program flow 3. 13

FINALLY try: open("/tmp/non_existing_file",'r') except FileNotFoundError: print("file does not exist") except: print("don't know this error") raise finally: print("cleaning up") file does not exist cleaning up 3. 14

ASSERT Setzt Bedingung, die, wenn falsch, zu einer Exception führt. Nur zur Entwicklung sinnvoll. Nur mit debug == Trueaktiv Wird mit python3 -Odeaktiviert ( debug = False) 4. 1

ASSERT a = [1,2] a[0] = 17 assert a == [17,2] a[1] = a[1] + 3 assert a == [17,4] Traceback (most recent call last): File "<stdin>", line 1, in <module> AssertionError 4. 2

AUFBAU EINES COMPUTERS 5. 1

AUFBAU Symbolbild, CC BY 2.5, Quelle 5. 2

PROZESSOR - CPU Central Processing Unit Intel 80486DX2, CC BY-SA 2.0, Link 5. 3

Innenleben Intel 80486DX2 Von Uberpenguin aus der englischsprachigen Wikipedia, CC BY-SA 3.0, Link

5. 4 ARBEITSSPEICHER - RAM CC BY-SA 3.0, Link 5. 5

ARBEITSSPEICHER - RAM Magnetic Core Memory, 1947 By Daniel Sancho from Málaga, Spain - 8 bytes vs. 8Gbytes, CC BY 2.0, Quelle 5. 6

MAINBOARD - HAUPTPLATINE 1980 Von User Smial on de.wikipedia - Eigenes Werk, CC BY-SA 2.0 de, Link 5. 7

MAINBOARD - HAUPTPLATINE 2004 Von Freddy2001 Description by User:leipnizkeks released under same license. - Eigenes Werk, CC BY-SA 2.5, Link 5.8

MAINBOARD - HAUPTPLATINE 5. 9

FESTPLATTEN persistierender/nichtflüchtiger Speicher, billiger, langsamer als RAM. Klassische Festplatte:» magnetisierbare, rotierende Platten Von Eric Gaba, Wikimedia Commons user Sting, CC BY-SA 3.0, Link 5. 10

FESTPLATTEN Solid State Drive (SSD), Halbleiterlaufwerk Von Hans Haase - Eigenes Werk, CC BY-SA 3.0, Link 5. 11

ARBEITSWEISE EVA-Prinzip E: Eingabe» über Maus, Tastatur, Speichermedien gelangen Daten in den Computer V: Verarbeitung» Der Prozessor (CPU) verarbeitet diese Daten A: Ausgabe» Verarbeitete Daten werden über Ausgabegerät ausgegeben (Bildschirm, Drucker, Festplatte) 5. 12

HARVARD ARCHITEKTUR Strikte Trennung von Daten und Befehlen Zugriff erfolgt über je einen eigenen Bus. Entwickelt 1944 (Mark I) von IBM und der Harvard-University Von Matthias Kleine (April 2005) - Matthias Kleine, CC BY-SA 3.0, Link 5. 13

HARVARD ARCHITEKTUR Steuerwerk: ist für das Einlesen der Befehle zuständig Rechenwerk(e): führt entsprechende arithmetische und/oder logische Befehle aus Daten: enthält gespeicherte oder zu verarbeitende Daten Befehle: enthalten die einzelnen Befehle eines Programms Bussystem (Pfeile): transportiert Daten zwischen Einheiten 5. 14

VON NEUMANN ARCHITEKTUR 5. 15

VON NEUMANN ARCHITEKTUR CPU: Besteht aus Rechen- und Steuerwerk Steuerwerk: ist für das Einlesen der Befehle zuständig Rechenwerk: führt entsprechende arithmetische und/oder logische Befehle aus Arbeitsspeicher: enthält das Programm sowie alle dafür notwendigen Daten»» Bussystem: transportiert Daten zwischen Einheiten Ein-/Ausgabe: kommuniziert mit der Umwelt 5. 16

VON NEUMANN VS. HARVARD ARCHITEKTUR Von Neumann Architektur: Einfacher da Programm und Daten im Speicher liegen, erlaubt einheitliche Routinen des Betriebssystems Programmcode kann sich selbst modifizieren; leichter zu 'debuggen' Selbstmodifikation ist Risiko für Stabilität Es gibt keinen Speicherschutz Langsamer: eine Leitung für Befehle und Daten 5. 17

HARVARD VS. VON NEUMANN ARCHITEKTUR Harvard Architektur: Schnellerer Zugriff auf Daten und Programme, durch getrenntes Ansteuern Speicherschutz einfach umsetzbar Parallele Zugriffe können zu Race Conditions führen» Ungewolltes Verhalten von Programmen 5. 18

RACE Schritt System CONDITIONS 1 System 2 Bei Race condition hängt das Ergebnis einer Operation vom zeitlichen Verhalten der Einzeloperationen ab Beispiel: 2 Systeme wollen Wert einer Zahl erhöhen Schritt System 1 System 2 0 Lesen 0 1 Lesen 0 2 Erhöhen 1 3 Schreiben 1 4 Erhöhen 1 5 Schreiben 1 5. 19

MODERNE COMPUTER Basieren auf der Von Neumann Architektur CPU, Arbeitsspeicher und Ein-/Ausgabe Hardware werden durch eine Hauptplatine (Mainboard) via Bussystem verbunden Integrierte Hardware im Mainboard (Sound, Netzwerk, Grafik) zählt weiter als Peripherie. 5. 20

FUNKTIONSWEISE CPU Von PeterFrankfurt - Eigenes Werk, CC BY-SA 3.0, Link 5. 21

1. FETCH ABSTRAKTE FUNKTIONSWEISE CPU Befehlsadresse lesen und aus Arbeitsspeicher in Register laden 2. DECODE Befehl in Register wird dekodiert und entsprechende Schritte für Verarbeitung werden vorbereitet 3. EXECUTE Der Befehl wird ausgeführt und das Ergebnis in den Arbeitsspeicher zurück geschrieben 4. UPDATE Instruction Pointer Die nächste Befehlsadresse wird eingestellt 5. 22

FUNKTIONSWEISE CPU Von PeterFrankfurt - Eigenes Werk, CC BY-SA 3.0, Link 1. Befehlszähler (PC) zeigt auf Adresse im Speicher 2. Steuerwerk legt Adresse auf Bus und startet Lesebefehl 3. wenn RAM bereit, legt Inhalt an Datenleitung an 4. Steuerwerk kopiert den Inhalt des Befelsregisters 5. Befehl wird dekodiert und geprü... 5. 23

FUNKTIONSWEISE CPU Nach Dekodieren: Wenn Befehl grösser oder benötigt Befehl weitere Daten aus Speicher: Schritte 1-3 erneut, und ins entsprechende Prozessorregister geladen. Von PeterFrankfurt - Eigenes Werk, CC BY-SA 3.0, Link 6. Steuerwerk involviert benötigte Ressourcen (z.b. ALU) 7. ALU führt Befehl aus (z.b: Addition 2er Registerinhalte) 5. 24

FUNKTIONSWEISE CPU 8. Ergebnis wird in ein Register geschrieben 9. Falls nötig wird das Ergebnis vom Register in RAM gespeichert 10. Programmzähler wird erhöht 11. Befehl ist abgearbeitet (start bei 1) Von PeterFrankfurt - Eigenes Werk, CC BY-SA 3.0, Link 5. 25

CPU BEFEHLSSÄTZE RISC»»» CISC»»» 2 generelle Gruppen: Reduced Instruction Set Computing Sehr einfache Befehle (z.b: "ADD") Kleine Anzahl an Befehlen Complex Instruction Set Computing Komplexe Befehle direkt durchführbar Bsp: Gleitkommazahl-Operationen Große Anzahl an Befehlen 5. 26

ARBEITSSPEICHER - CPU REGISTER Register in Prozessoren sind sehr klein (aber schnell). Programme benötigen viel mehr Speicherplatz als im Register vorhanden ist. Intelligentes Zwischenspeichern von o gebrauchten Daten im Arbeitsspeicher (RAM) Schneller als Laden von Festplatte, aber langsamer als direkt im Prozessor Register im Arbeitsspeicher sind nicht persistent» Ohne Strom ist Inhalt verloren Heute Arbeitsspeicher in "GByte" 5. 27

FRAGEN? 6. 1

NÄCHSTES MAL 2016-11-30 16:00 SOFTWAREENTWICKLUNGSPROZESS mit Johanna Pirker DI Florian Klien, IICM, https://git.iicm.tugraz.at/info1bm/folien/ 6. 2