Einführung /Grundbegriffe

Werbung
2 Zusammenspiel der Hardware mit der Software ( auf dem PC)
2.1. Hardware Etwas zur Historie:
● Serienproduktion von Computern begann in den 60er Jahren
● ab etwa 1966 Einsatz von integrierten Schaltungen, hochintegrierten Schaltungen
(siehe für Details: Remboldt/Levi S. 9­30)
Die meisten heutigen Rechner sind nach dem John­von­Neumann­Prinzip aufgebaut (auch John­von­Neumann­Architektur), d.h. Das Programm, das
ausgeführt werden soll, wird im Computer gespeichert.
Schematische Darstellung:
Eingabegeräte
Zentraleinheit (CPU)
Rechenwerk
Speichergeräte
Register
Steuerwerk
Dialoggeräte
Arbeitsspeicher
Ausgabegeräte
Hardware – Gesamtheit der technisch realisierten Komponenten eines Computers
Hardware­Komponenten:
● Zentrale Bestandteile des Rechners auf der Hauptplatine (motherboard):
⇨Prozessor = Zentraleinheit (Central Processing Unit – CPU)
●
⇨Arbeitsspeicher
Eingabegeräte:
Tastatur (Texteingabe), Maus , CD­ROM, Scanner (Eingabe von Texten, Bildern),
Videoadapter (Eingabe von Video­Clips), Mikrophon (sprachliche Eingabe)
● Ausgabegeräte:
Bildschirm, Drucker, Plotter (graphische Ausgabe), Lautsprecher (sprachliche
Ausgabe), Videorecorder (Ausgabe Video­Clips), Projektor
● Speichergeräte:
Festplatten, CD­ROM, Disketten, USB­sticks
● Dialoggeräte:
z.B. Modem, Fax, ISDN­Karte
Programmausführung:
­ Programm oder Daten werden über die Eingabegeräte in Speichergeräten aufbewahrt
(z.B auf der Festplatte)
­ Beim Aufruf eines ausführbaren Programms:
⇨Laden in den Arbeitsspeicher
⇨Abarbeiten durch den Prozessor
⇨Löschen aus dem Arbeitsspeicher
Arbeitsspeicher
­ auch RAM = random access memory (da über Speicheradressen beliebiger direkter Zugriff auf Speicherplatz)
­ dient der Speicherung von Programmen während ihrer Ausführung
­ speichert ein Programm und zugehörige Daten ab Beginn seiner Ausführung bis zum
Abschluß/Abbruch
Inhalt ändert sich ständig
Inhalt wird gelöscht, sobald Programmausführung beendet ist (auch bei Abschalten
des Computers)
Prozessor
Zentraleinheit (CPU)
Rechenwerk
Steuerwerk
Register
­ Kernstück des Rechners
­ seine Aufgabe besteht in der Verarbeitung von Befehlen ­ führt die Schritte eines abzuarbeitenden Programms auf Hardwareebene aus
Bestandteile: ● Steuerwerk: Interpretation und Ausführung der aktuellen Programmbefehle
 entsprechende Aktivierung des Rechenwerks
 Steuerung der benötigten Daten zwischen Registern und Arbeitsspeicher
●
Rechenwerk: Schaltkreise, die arithmetische und logische Operationen ausführen können (kurz ALU = arithmetic logic unit)
●
Register:
extrem schnell zugreifbare Hilfsspeicherzellen, die direkt mit dem
Rechenwerk verbunden sind
z.B. Befehlszähler, Akkumulator, Instruktionsregister
CPU arbeitet mit einer Hierarchie von Zwischenspeichern:
sogenannter CACHE ­ auf den Cache kann deutlich schneller zugegriffen werden
­ Problem: je schneller desto teurer und voluminöser
 zwei Speicherhierarchien gebräuchlich:
Level­1­Cache ­ sehr schnell, sehr teuer
Level­2­Cache
­ zur schnellen Programmverarbeitung werden Programmstücken in den Cache g
geladen
(System)Bus
Serie paralleler Datenleitungen, über die Daten zwischen Prozessor und
Peripheriegeräten (Ein/Ausgabe­, Speicher/Dialoggeräte) ausgetauscht werden
Außerdem: ­ Je nach Ausstattung noch gewisse Karten, die in Sockelleisten (slots) eingesteckt sind: z.B. Graphikkarte, Soundkarte, ISDN­Karte, Netzkarte
­ Diese Karten heißen auch Controller, da sie für die Ansteuerung der entsprechenden Geräte vom Prozessor aus verantwortlich sind
Beispiel: die Graphikkarte dient zur Ansteuerung des Bildschirms, besitzt einen eigenen Speicher zur Speicherung des Bildschirminhaltes und einen eigenen Graphikprozessor
2.2 SOFTWARE
Gesamtheit aller Programme und deren Dokumentationen, die auf einem Computer eingesetzt werden können
Ebenen:
Hardware
Betriebssystem
Anwendungs­
Programm
(A) Betriebssysteme
bringen den Computer zum „Laufen“ und organisieren die Kopplung von
Hardware und Anwenderprogrammen
Die aktuell wichtigsten Betriebssysteme:
WINDOWS (MSDOS), UNIX / LINUX, APPLE
(B) Anwenderprogramme
arbeiten auf der Grundlage eines entsprechenden Betriebssystems Wichtige Kategorien:
● Textverarbeitung (Latex, Word, Office) , Tabellenkalkulation (Excel) ● Datenbanken (Literaturrecherche, Datenverwaltung)
● mathematisch orientierte Anwendungssoftware (Maple, Mathematica, Matlab)
● Compiler für höhere Programmiersprachen
● Entwicklungsumgebungen für höhere Programmiersprachen (PellesC, Plato, KDevelop)
Die meisten Nutzer von Computertechnik arbeiten auf der Ebene der Programmerstellung mit dazu zur Verfügung stehenden Entwicklungsumgebungen
Programmiersprachen
(A) Höhere Programmiersprachen
­ strukturiertes Programmieren anhand einer logisch aufgebauten, der menschlichen in gewisser Weise nahen, Sprache  relativ leichte Lesbarkeit der Programme, damit bessere Pflege und Wandelbarkeit möglich
 Nachteil: erheblicher Effizienzverlust im Laufzeitverhalten ­ gestatten die Formulierung von Algorithmen auf relativ verständliche Weise: z.B.
if (a < 0) a = ­a; ( C )
if a < 0 then a := ­a; (PASCAL)
IF (a < 0) THEN
(FORTRAN)
a= ­a
ENDIF
if (a < 0) (MATLAB)
a=­a; end ­ Die aktuell wichtigsten höheren Programmiersprachen sind:
C (Ritchie , 1972) bzw. C++ (Stroustrup, 1985)
FORTRAN (Backus, 1954) , aktuelle Version FORTRAN 95 ('03 im Kommen),
PASCAL (Wirth, 1970) , JAVA (1995) , PYTHON (van Rossum, nach 1990)
­ Programmiersprachen sind standardisiert  Bei Vorliegen eines entsprechenden Compilers leichte Portierbarkeit auf andere Computersysteme
eventuell haben Sprachen mehrere Dialekte: BORLAND­C, PLATO­C, PELLES­C
Weitere bekannte Sprachen (aus Vergangenheit und Gegenwart):
LOGO, BASIC, ALGOL 60, ALGOL 68 , MODULA, PROLOG,
SIMULA, LISP, SQL, OBERON, PYTHON, PERL, MATLAB, HTML
­ Unterscheidung höherer Programmiersprachen:
Fortran Pascal C C++ Java
Prolog
Logo Matlab
imperativ, prozedural imperativ, prozedural imperativ, prozedural imperativ, objektorientiert
imperativ, objektorientiert deklarativ, logisch deklarativ, funktional
Skriptsprache, imperativ
­ Gebiet der Theoretischen Informatik: Metasprachliche Beschreibung der Syntax einer Programmiersprache ­ Backus­Naur­Form (siehe backnaur.pdf) ­ Chomsky­Grammatiken
­ Attribut­Grammatiken Jedes Programm wird letztlich in ausführbaren Code übersetzt, d.h. in Maschinensprache,
um vom Prozessor verarbeitet werden zu können.
(B) Maschinensprachen
­ streng auf einen bestimmten Prozessortyp zugeschnitten, demzufolge nicht portierbar
­ sehr effizient im Laufzeitverhalten
­ jeder Befehl ist durch eine bestimmte Nummer kodiert,
sog. OP­Code (Befehlscode für eine Operation)
dadurch schwer lesbar und ohne Hilfsmittel kaum erstellbar
jeder Algorithmus muß in seine elementarsten Einzelschritte zerlegt werden
(C) Assemblersprachen
­ maschinennahe Sprachen
­ auch streng auf konkreten Prozessor orientiert und somit nicht übertragbar (portierbar)
­ im Laufzeitverhalten ähnlich effektiv wie direkter Maschinencode
­ Maschinenbefehle werden durch sprachnahe Bezeichnungen verständlicher, z.B. Arithmetische und logische Operationen ADD, SUB ... Additions­ bzw. Subtraktionsbefehl
NOT, AND, OR ... log. Verneinung, log. ODER bzw. Log. UND LOAD, MOVE ... Datentransferbefehle
heutige Prozessoren können bereits über 100 verschiedene Grundoperationen
direkt verstehen und verarbeiten
2.3 Grobdarstellung einer Programmausführung
1. Programmdatei wird in den Arbeitsspeicher geladen
übersetzt in Maschinencode, d.h. als Folge von OP­Codes
2. CPU übernimmt die Kontrolle, führt die den OP­Codes entsprechend den
Befehle nach der Reihenfolge aus
Zyklus einer Abarbeitung:
Befehlsregister enthält die Speicheradresse des nächsten Befehls
LOAD: Lade den OP­Code aus dem Speicherplatz den der Befehlszähler angibt
INCREMENT: Setze Befehlszähler auf die nächste zu lesende Speicheradresse im Arbeitsspeicher
EXECUTE:
führe den Befehl aus, der im Befehlsregister steht
hole dazu ggf. Daten aus Arbeitsspeicher
Beispiel: (mgl. Assemblerbefehle für Addition zweier Zahlen)
LOAD R1, S1
LOAD R2, S2
ADD R1, R2, R3
3. Ergebnis wird auf vorgegebenem Platz gespeichert oder an Ausgabegerät gegeben
Speicherung/Verarbeitung der OP­Codes:
⇨OP­Codes werden auf Hardwareebene verarbeitet
Im Arbeitsspeicher kann jede Speicherzelle genau zwei Zustände besitzen:
AN / AUS Strom fließt / fließt nicht ⇨ kleinstmögliche Informationseinheit ist zweiwertig 0 oder 1 ⇨OP­Codes werden in Binärdarstellung (Dualdarstellung) gespeichert
2.4 Grundeinheiten und Zeichensätze
Informationseinheiten (Speichereinheiten)
Bit (binary digit)
­ die zweiwertige Grundeinheit in der Informationstheorie und damit jeder Informationsverarbeitung abstrakten Werte: 0 oder 1
­ technische Realisierung: Magnetisierung, Spannung in Speicherzelle = Schaltkreis
­ ein Bit reicht nicht aus, um Zeichen zu speichern
Byte ­ Gruppe von 8 Bits ­ nächsthöhere Einheit der Informationsverarbeitung
­ i.a. kleinstmögliche Speichereinheit, die im Arbeitsspeicher eine Adresse besitzt
(d.h. Blöcke zu je 8 Speicherzellen sind im Arbeitsspeicher nacheinander durchnumeriert)
KByte = 1024 Byte = 210 Byte = 1 Kilobyte
MByte = 1024 KByte = 220 Byte = 1 Megabyte
GByte = 1024 MByte = 230 = 1 Gigabyte
Alle Daten/Programme sind intern in Binärdarstellung umgewandelt
Wie funktioniert das?
(1) Alphanumerische Zeichen (characters):
Menge der Buchstaben {A, B, ... , Z, a, b, ... , z}
Menge der Ziffern {0, 1, ... , 9}
Menge gewisser Sonderzeichen {+, ­, *, /, ...}
+ Steuerzeichen : z.B. für Zeilenvorschub o.ä.
Alle Zeichen können über Tastatur eingegeben werden
⇨intern in Binärdarstellung: durch Kodierung der Zeichen
Drei Standards haben sich etabliert:
EBCDI­Code (Extended Binary Coded Digit Interchange) ... IBM­Standard
Darstellung der Zeichen durch 1 Byte => Zeichenvorrat: 256 Zeichen
ASCII­Code (American Standard Code for Information Interchange)
Darstellung der Zeichen durch 1 Byte => Zeichenvorrat: 256 Zeichen
Unicode (Universal Codeset)
Darstellung der Zeichen durch 2 Byte => Zeichenvorrat: 65536 Zeichen
Beispiel: Zeichen EBCDI ASCII­Nr. ASCII Unicode
A 1100 0001 65
0100 0001 0000 0000 0100 0001
1 1111 0001 49 0011 0001 0000 0000 0011 0001
um alle möglichen Zeichen zu kodieren, reicht je 1 Byte Speicherplatz, d.h. 8 Speicherzellen aus (127 Zeichen; 128 = 2^7 – sogar 7 Bit reichen schon aus)
(2) Zeichenketten(Wortgruppen): ­ jedes Zeichen wird einzeln in Binärdarstellung überführt
­ die Binärdarstellungen der Zeichen werden im Speicher aneinandergereiht 
Herunterladen