1 Anschlüsse für externe Geräte

Werbung
SZH, LK Inf 11/1 Lue
Grundwissen über den Computer
Inhalt
1
Anschlüsse für externe Geräte .................................................................................................... 2
1.1
Serielle Schnittstelle ............................................................................................................... 2
1.2
USB ........................................................................................................................................ 2
1.3
Firewire ................................................................................................................................... 3
1.4
Parallele Schnittstelle ............................................................................................................. 3
1.5
PS/2-Schnittstelle ................................................................................................................... 3
1.6
Übungsaufgaben .................................................................................................................... 3
2
Die Software eines PCs ................................................................................................................ 4
2.1
BIOS ....................................................................................................................................... 4
2.2
Betriebssystem ....................................................................................................................... 4
2.3
Treiber .................................................................................................................................... 5
2.4
Anwendungssoftware ............................................................................................................. 6
2.5
Übungsaufgaben .................................................................................................................... 6
3
Speicherung und Verarbeitung von Daten ................................................................................. 6
3.1
Bits ......................................................................................................................................... 6
3.2
Bitfolgen ................................................................................................................................. 7
3.3
Speichergrößen ...................................................................................................................... 7
3.4
Kodierung von Text ................................................................................................................ 7
3.5
Kodierung von Zahlen ............................................................................................................ 9
3.6
Datentypen ........................................................................................................................... 10
3.7
Übungsaufgaben .................................................................................................................. 10
4
Grundprinzip der Rechnerarchitektur ....................................................................................... 11
4.1
Von-Neumann-Rechnerkonzept .......................................................................................... 11
4.2
Organisation des Arbeitsspeichers ...................................................................................... 12
4.3
Übungsaufgaben .................................................................................................................. 13
5
Programmierung ......................................................................................................................... 13
5.1
Programmiersprachen .......................................................................................................... 13
5.2
Erzeugung von Programmcode ........................................................................................... 15
5.3
Übersetzung von Java-Programmen ................................................................................... 15
5.4
Übungsaufgaben .................................................................................................................. 16
6
Quellen-Angaben ........................................................................................................................ 16
 1/16 
Grundwissen über den Computer
SZH, LK Inf 11/1 Lue
1 Anschlüsse für externe Geräte
Alle externen Geräte des Computers benötigen Anschlüsse an das Bus-System des Rechners, so
genannte Schnittstellen. [Ref2]
Definition
Als Schnittstelle (engl.: interface) bezeichnet man zunächst ganz allgemein die Verbindungsstelle
zwischen zwei miteinander in Beziehung stehenden informationsverarbeitenden Systemen oder
Systemkomponenten, über die der Austausch von Daten oder Steuerinformationen erfolgt.
Schnittstellen umfassen Vereinbarungen (Protokolle) über die Art und Weise, wie Informationen
ausgetauscht werden. Die Normierung von Schnittstellen ermöglicht es, unterschiedliche Systeme zu
koppeln und einzelne Systemkomponenten nach Belieben gegen andere mit gleicher Schnittstelle
auszutauschen.
Merke: Jede an einen Computer angeschlossene Komponente benötigt eine Schnittstelle!
Man unterscheidet zwischen folgenden Schnittstellenarten:
1. Softwareschnittstellen:
Diese dienen zum Datenaustausch zwischen Programmen oder Programmteilen.
2. Hardwareschnittstellen:
Das sind Adapter, Stecker und andere Bauelemente zum Datenaustausch zwischen
verschiedenen Hardwarekomponenten (z.B. zwischen zwei Computern oder zwischen
Zentraleinheit und Arbeitsspeicher oder zwischen Zentraleinheit und peripheren Geräten).
Merke: Hardware-Komponenten sind nur kompatibel, wenn sie über gleiche Schnittstellen verfügen!
Die meisten PCs besitzen folgende Hardware-Schnittstellen:
1.1 Serielle Schnittstelle
Durch eine serielle Schnittstelle wird jedes einzelne Byte nacheinander, bitweise (Bit für Bit) über eine
Leitung gesandt. Die serielle Schnittstelle ist die unkomplizierteste Art der Datenübertragung. Hier
werden vor allem Geräte angeschlossen, bei denen es nicht so sehr auf hohe
Übertragungsgeschwindigkeiten ankommt, z.B. die Maus.
Die serielle Schnittstelle ist international genormt und hat in Europa die Bezeichnung „V.24". Unter
DOS und Windows heißen die seriellen Schnittstellen allgemein "COM" (COM1, COM 2...). Für den
seriellen Anschluss gibt es 2 genormte Stecker, einen 9-poligen und einen 25-poligen:
1.2 USB
USB ist die Abkürzung für Universal Serial Bus. USB ist eine neuartige Schnittstelle, bei der die Daten
ebenfalls seriell, d.h. bitweise übertragen werden. Die USB -Schnittstelle ist für alle Peripheriegeräte
mit kleinem bis mittlerem Datenaufkommen geeignet (Tastatur, Maus, Joystick, Scanner, usw.). An
eine USB-Schnittstelle können bis zu 127 Geräte angehängt werden.
 2/16 
Grundwissen über den Computer
SZH, LK Inf 11/1 Lue
Die neue Technologie hat zwei wichtige Vorteile:
 Plug & Play: Neuere Windows-Betriebssysteme erkennen USB-Geräte sofort nach dem Einstecken,
installieren automatisch die passenden Gerätetreiber und machen die Hardware betriebsfertig.
 Hot-Plug-Fähigkeit: Wenn ein USB-Gerät an- oder abgestöpselt werden soll, muss der Rechner
vorher nicht mehr heruntergefahren werden.
1.3 Firewire
Firewire bezeichnet eine verhältnismäßig neue (von 1995) serielle Schnittstellentechnologie zur
Übertragung digitaler Daten mit hohen Geschwindigkeiten von bis zu 400 MBit / Sek. Die Schnittstelle
ist bisher noch nicht sehr weit verbreitet.
1.4 Parallele Schnittstelle
Durch eine parallele Schnittstelle (auch Parallelport genannt) werden die einzelnen Bits eines
Datenwortes (Byte) gleichzeitig (parallel), also byteweise, über 8 Leitungen übertragen, was die
schnelle Übertragung großer Datenmengen ermöglicht und vor allem für den Anschluss von Druckern
relevant ist (daher auch Druckerschnittstelle). Parallele Schnittstellen werden unter MS-DOS und MS
Windows mit "LPT" (LPT1, LPT2...) bezeichnet.
1.5 PS/2-Schnittstelle
Die PS/2 Schnittstelle ist speziell zum Anschluss einer Maus oder einer Tastatur an einen PC
entwickelt wurden. Die Schnittstelle unterstützt einen runden Mini-Stecker mit 6 Stiften.
1.6 Übungsaufgaben
1) Welche externen Geräte kennst du, die an den Rechner angeschlossen werden?
Welche Geräte werden typischerweise intern im Gehäuse des Computers untergebracht?
Sortiere die Geräte jeweils nach Ein- und Ausgabegeräten.
2) Über welche Schnittstelle(n) werden folgende Geräte typischerweise an den Rechner
angeschlossen?
a) Maus
b) Tastatur
c) Drucker
d) Scanner
e) Modem
3) Wieso ist die Daten-Übertragung über eine parallele Schnittstelle schneller als die Übertragung
über eine serielle Schnittstelle?
 3/16 
Grundwissen über den Computer
SZH, LK Inf 11/1 Lue
4) Wie werden interne Geräte an den Rechner angeschlossen?
5) Was muss man auf dem Rechner software-mäßig tun, damit die angeschlossenen Geräte
funktionieren?
6) Wie kann man auf dem Betriebssystem Windows kontrollieren, ob alle Geräte software-mäßig
richtig konfiguriert sind?
2 Die Software eines PCs
2.1 BIOS
Startet man den Rechner ("Hochfahren", booten), wird, bevor das Betriebssystem in Aktion tritt, das
sogenannte BIOS (Basic Input Output System) gestartet. Das BIOS ist ein Ein- und Ausgabesystem,
welches unabhängig vom nachfolgend installierten Betriebssystem vom Hersteller mitgeliefert wird.
Das BIOS steht schreibgeschützt in einem ROM-Baustein (engl. read only memory), testet bei jedem
Computerstart alle Hardwarekomponenten, startet den Rechner und sucht das Hauptbetriebssystem.
Während des laufenden Betriebs erledigt das BIOS elementare Aufgaben zur Ansteuerung von
Hardwarekomponenten wie Tastatur, Maus, Festplatte und Grafikcontroller und arbeitet damit dem
Betriebssystem zu. [Ref2]
2.2 Betriebssystem
Das Betriebssystem ist eine spezielle Software zur Steuerung der Grundfunktionen eines Computers
und zur Verwaltung der Hardware. Es besteht aus einer Reihe von Systemprogrammen
(Systemsoftware), die den Umgang mit CPU, Peripherie und Anwendungsprogrammen ermöglichen,
und ist damit die Schnittstelle zwischen Mensch und Computer sowie zwischen
Anwendungsprogrammen und Peripheriegeräten.
2.2.1 Aufgaben eines Betriebssystems
Das Betriebssystem steuert alle zum Betrieb des Rechners notwendigen Verwaltungsaufgaben. Ein
Betriebssystem gehört in der Regel zur Grundausstattung des Computers. Es ist jedoch prinzipiell
austauschbar. Die wichtigsten Aufgaben des Betriebssystems sind:
(1) Speicherverwaltung:
Verwaltung des Hauptspeichers
(2) Dateiverwaltung:
Organisation der Daten auf Festplatten und anderen Datenträgern. Dazu gehört die Vorbereitung
der Datenträger (Partitionieren von Festplatten, Formatieren und Benennen von Datenträgern),
die Erstellung von Verzeichnissen, das Kopieren, Löschen, Verschieben und Umbenennen von
Dateien usw.
(3) Prozessverwaltung:
Ausführung von Anwendungsprogrammen und Aufteilung der Rechenzeit der CPU zwischen allen
momentan laufenden Programmen.
(4) Geräteverwaltung:
Steuerung der Arbeit aller angeschlossenen internen und peripheren Geräte.
(5) Kommunikation mit anderen Computersystemen
2.2.2 Bestandteile eines Betriebssystems
Betriebssysteme vereinen sogenannte residente und transiente Bestandteile:
Residente Bestandteile werden nach dem Start sofort in den Arbeitsspeicher (RAM) geladen und
verbleiben dort während der gesamten Betriebszeit des Computers. Diese Bestandteile haben die
Aufgabe die Kommunikation zwischen Nutzer und Rechner einschließlich des Ladens und Startens
von Anwendungsprogrammen zu ermöglichen.
 4/16 
Grundwissen über den Computer
SZH, LK Inf 11/1 Lue
Transiente Bestandteile befinden sich in eigenständigen Dateien, die auf der Festplatte (oder Diskette)
in einem gesonderten Verzeichnis gespeichert sind und nur in den Arbeitsspeicher geladen werden,
wenn es notwendig ist. [Ref2]
2.2.3 Grafische Benutzeroberfläche
Die Benutzeroberfläche ist der Teil eines Programms, den der Benutzer auf dem Bildschirm sehen
kann. Sie bildet die Schnittstelle zwischen dem Programm und seinem Benutzer, welcher über die
Tastatur oder die Maus Dienste anfordern kann.
Die einfachste Version einer Benutzeroberfläche zeigt eine Kommandozeile. Der Benutzer hat die
Möglichkeit zeilenweise Text einzugeben und erhält als Antwort vom Programm wieder eine
Textausgabe. Moderne Programme und Betriebssysteme haben eine sogenannte grafische
Benutzeroberfläche, die dem Benutzer ein Fenstersystem mit vielen bunten Bildern präsentiert.
Die Benutzeroberfläche des Betriebssystems eines PCs ist der sogenannte Desktop (deutsche
Übersetzung: „Schreibtisch“).
2.3 Treiber
Treiber sind Programme zur Ansteuerung einer Software- oder Hardware-Komponente. Ein Treiber
ermöglicht einem Anwendungsprogramm die Benutzung einer Komponente, ohne deren detaillierten
Aufbau zu kennen.
Abbildung: Das Zusammenwirken von Betriebssystem, Treibern und BIOS
Zum Beispiel kann ein Textverarbeitungsprogramm nicht im Voraus alle verschiedenen Drucker
kennen, die es vielleicht einmal bedienen soll. Wenn der Benutzer aus dem Datei-Menü den Befehl
„Drucken“ auswählt, soll der Druck funktionieren, egal welcher Drucker angeschlossen ist. Dazu
bedient sich das Programm einer Software-Schnittstelle, die vom Betriebssystem definiert ist. Diese
Schnittstelle beinhaltet u.a. Befehle wie „Drucke ein kursives ’a’ “, „Neue Zeile anfangen“ und
„Seitenumbruch“. Die Umsetzung dieser Befehle in Signale für einen bestimmten Drucker leistet ein
Programm, das der Druckerhersteller beisteuert. Solche Programme nennt man Treiberprogramme,
kurz auch Treiber. Die Anforderungen eines Anwendungsprogramms an ein bestimmtes Gerät werden
vom Betriebssystem an den entsprechenden Treiber umgeleitet. Dieser wiederum sorgt für die
korrekte Ansteuerung des Druckers. [Ref1]
Treiber für gängige Geräte sind meist schon im Betriebssystem vorhanden. Wenn aber ein neues
Gerät, das dem Betriebssystem noch nicht bekannt ist, an einen Rechner angeschlossen wird, so
muss üblicherweise auch ein zugehöriger Treiber installiert werden.
 5/16 
Grundwissen über den Computer
SZH, LK Inf 11/1 Lue
2.4 Anwendungssoftware
Die Art der Aufgaben, die ein Computer erledigen kann, ist nicht von vorneherein festgelegt. Für den
Computer können beliebig viele Anwendungsprogramme generiert werden. Auf einem PC können
mehrere Anwendungsprogramme parallel laufen. Ein ausführbares Programm besteht aus einem für
den Rechner zugeschnittenen Maschinencode und kann daher immer nur auf einem bestimmten
Betriebssystem laufen. Unter Windows werden ausführbare Programme mit der Endung *.exe
gekennzeichnet. „Exe“ steht dabei für das englische Wort executable (auf deutsch: ausführbar).
Typische Aufgaben für Anwendungsprogramme sind:
Textverarbeitung, Tabellenkalkulation, Buchhaltung, Spiele, Adressverwaltung, usw.
2.5 Übungsaufgaben
1) Welcher Teil der Software liegt nicht auf der Festplatte, sondern befindet sich auf einem ROMBaustein (eng. read only memory, schreibgeschützter Speicher) auf der Hauptplatine
(Mainboard)?
2) Wie wird ein Betriebssystem hergestellt?
3) Nenne die Namen einiger dir bekannter Betriebssysteme.
4) Nenne die Namen einiger dir bekannter Anwendungsprogramme.
5) Welche Aufgaben hat ein Betriebssystem?
6) Ein Benutzer führt mit dem Textverarbeitungsprogramm Word die nachfolgenden Aktionen durch.
Gib an, bei welchen der Aktionen neben dem Textverarbeitungsprogramm auch das
Betriebssystem oder ein Gerätetreiber in Aktion treten muss.
a) Starten des Programms Word.
b) Öffnen der bereits vorhandenen Datei „MeinText.doc“.
c) Veränderung der Schriftart des Textes von „Arial“ nach „Times New Roman“.
d) Abspeichern des geänderten Textes.
e) Ausgabe des Textes auf den Drucker.
7) Begründe, wieso das Betriebssystem in residente und transiente Bestandteile unterteilt wird.
8) Wie kann man auf einem PC die Einstellungen des BIOS verändern?
3 Speicherung und Verarbeitung von Daten
3.1 Bits
Im Computer müssen alle Informationen technisch dargestellt werden. Die kleinste Speichereinheit
heißt ein Bit und ist in der Lage einen von zwei erlaubten Zuständen anzunehmen.
Ein Bit kann technisch z.B. folgendermaßen dargestellt werden:
 elektrische Ladung eines Kondensators:
ungeladen oder geladen
 elektrische Spannung an einem Widerstand:
0 Volt oder 5 Volt
 Magnetisierung auf einer Magnetscheibe:
unmagnetisiert oder magnetisiert
Wenn man das Ergebnis auf eine Frage kodieren möchte, können die Zustände des Bits z.B.
folgendermaßen interpretiert werden:
 nein oder ja
 6/16 
Grundwissen über den Computer





SZH, LK Inf 11/1 Lue
falsch oder wahr
schwarz oder weiß
dunkel oder hell
links oder rechts
...
Da das Bit genau zwei verschiedene Zeichen kodieren kann, spricht man von einem sogenannten
binären Code. Zur Darstellungen des Bit-Wertes benutzt man meistens die Zahlen:
 0 oder 1
Standardmäßig interpretiert man 0 als negative Antwort (falsch) und 1 als positive Antwort (wahr).
[Ref1]
3.2 Bitfolgen
Lässt eine Frage mehrere Antworten zu, so benötigt man mehr als 1 Bit zur Kodierung der
Informationen. Man muss sogenannte Bitfolgen bilden.
Wenn ein Rechner Daten liest oder schreibt, wenn er mit Daten operiert, gibt er sich nie mit einzelnen
Bits ab. Das wäre im Endeffekt viel zu langsam. Statt dessen arbeitet er immer nur mit Gruppen von
Bits, entweder mit 8 Bits, 16 Bits, 32 Bits oder 64 Bits. Man spricht dann von 8-Bit-Rechnern, 16-BitRechnern, 32-Bit-Rechnern oder 64-Bit-Rechnern.
Eine Gruppe von 8 Bits nennt man ein Byte.
Auf einem 16-Bit Rechner nennt man eine Gruppe von 2 Bytes (16 Bit) ein Wort.
Auf einem 32-Bit Rechner dagegen nennt man eine Gruppe von 4 Bytes (32 Bit) ein Wort. [Ref1]
3.3 Speichergrößen
Beim Umgang mit binären Größen ist es günstig, für die Maßeinheiten Zweierpotenzen zu wählen.
Deshalb steht die Bezeichnung „Kilo-Byte“ nicht für exakt 1000 Bytes sondern für die Zweierpotenz,
die der Zahl Tausend am nächsten kommt. Dasselbe gilt für andere gebräuchliche Größen, wie z.B.
Mega (Millionen).
Die folgende Tabelle bietet eine Übersicht über die Maßeinheiten.
Maßeinheit
Kilobyte
Megabyte
Gigabyte
Terabyte
Abkürzung
KByte, KB
MByte, MB
GByte, GB
TByte, TB
Größe in Byte
210 = 1024
220 = 1024 * 1024 = 1048576
230 = 1024 * 1024 * 1024 = 1073741824
240 = 1024 * 1024 * 1024 * 1024 = 1099511627776
Gerundet
 Tausend Byte
 1 Million Byte
 1 Milliarde Byte
 1 Billion Byte
3.4 Kodierung von Text
Um Texte in einem Rechner darzustellen, kodiert man Alphabet und Satzzeichen in Bitfolgen. Mit
einem Alphabet von 26 Kleinbuchstaben, ebenso vielen Großbuchstaben, einigen Satzzeichen wie
etwa Punkt, Komma und Semikolon und Spezialzeichen wie ’+’, ’&’, ’%’ hat eine normale
Schreibmaschinentastatur eine Auswahl von knapp hundert Zeichen.
Die Information, wo ein Zeilenumbruch stattfindet oder wo ein Text eingerückt werden soll, kodiert
man ebenfalls durch spezielle Zeichen. Solche Sonderzeichen wie z.B. das CR-Zeichen (engl.
carriage return = Wagenrücklauf) und das Tabulatorzeichen Tab, werden nie ausgedruckt. Sie haben
beim Ausdrucken lediglich die entsprechende Wirkung. Sie heißen deshalb Steuerzeichen oder nichtdruckbare Zeichen. [Ref1]
 7/16 
Grundwissen über den Computer
SZH, LK Inf 11/1 Lue
3.4.1 Ascii-Code
Mit einem Byte sind genau 256 Zeichen darstellbar. Zur Zuordnung der 256 Bitmuster eines Bytes zu
jeweils genau einem Zeichen nutzt man heute meist den sogenannten Ascii-Code. ASCII ist die
Abkürzung für American Standard Code for Information Interchange. Der ASCII-Zeichensatz wurde
vom American National Standards Institute (ANSI), dem nationalen Normenausschuss der USA –
vergleichbar mit dem Deutschen Institut für Normierung (DIN) – festgelegt.
Ursprünglich war der ASCII-Zeichensatz ein 7-Bit-Code, es konnten also nur 128 Zeichen dargestellt
werden, das achte Bit diente als Prüfbit. Die Zeichen im Bereich von 0 bis 127 bilden deshalb den
Standard Zeichensatz, der auf allen Rechnern gleich ist (siehe Abbildung).
Die ersten Zeichen (0 bis 32) werden als Steuerzeichen bzw. Formatierungszeichen für Ein- und
Ausgabegeräte verwendet. Die Bedeutung der Steuerzeichen kann der folgenden Tabelle entnommen
werden:
dez asc Bedeutung der
Abkürzung
Übersetzung, Bedeutung
0
1
2
3
4
5
6
7
8
9
10
11
12
leeres Zeichen, Nil, Null
Anfang des Kopfes
Anfang des Textes
Ende des Textes
Ende der Übertragung
Stationsaufforderung
positive Rückmeldung
Klingel
Rückwärtsschritt
Horizontal-Tabulator
Zeilenvorschub
Vertikal-Tabulator
Formularvorschub
nul
soh
stx
etx
eof
enq
ack
bel
bs
ht
lf
vt
ff
null character
start of heading
start of text
end of text
end of transmission
enquiry
acknowledgement
ring bell
backspace
horizontal tabulation
line feed
vertical tabulation
form feed
 8/16 
Grundwissen über den Computer
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
127
cr
so
si
dle
dc1
dc2
dc3
dc4
nak
syn
etb
can
em
sub
esc
fs
gs
rs
us
del
carriage return
shift-out
shift-in
data link escape
device control 1
device control 2
device control 3
device control 4
negative
acknowledgement
synchronous idle
end of transmission bloc
cancel
end of medium
substitute
escape
file separator
group separator
record separator
unit separator
delete
SZH, LK Inf 11/1 Lue
Wagenrücklauf
Dauerumschaltung
Rückschaltung
Datenübertragungsumschaltung
Gerätesteuerung 1
Gerätesteuerung 2
Gerätesteuerung 3
Gerätesteuerung 4
negative Rückmeldung
Synchronisierung
Ende Datenübertragungsblock
ungültig
Ende der Aufzeichnung
Substitution
Umschaltung
Hauptgruppen-Trennung
Gruppen-Trennung
Untergruppen-Trennung
Teilgruppen-Trennung
Löschen
Die Zeichen im Bereich von 128 bis 255 bilden den erweiterten Ascii-Code. Es gibt verschiedene
Code-Tabellen für den erweiterten Ascii-Code, zwischen denen man wählen kann. Die Code-Tabellen
enthalten länderspezifische Erweiterungen für Umlaute, Akzente, grafische Zeichen und weitere
spezielle Symbole. [Ref2]
3.4.2 Unicode
Da in einem Byte nur 256 verschiedene Zeichen kodiert werden können, hat der Ascii-Code den
Nachteil, dass die Zeichen des erweiterten Ascii-Codes je nach verwendeter Code-Tabelle auf
unterschiedlichen Rechnern verschieden interpretiert werden. Die Datenübertragung zwischen den
Rechnern ist dadurch problematisch.
Um dieser Problematik abzuhelfen wurde vor einigen Jahren der Unicode Zeichensatz entwickelt.
Dieser Zeichensatz benutzt zwei Bytes (16 Bit) zur Kodierung jedes Zeichens und kann dadurch
65536 verschiedene Zeichen darstellen. Sämtliche länderspezifischen Zeichen, die in Ascii in
verschiedenen Code-Tabellen untergebracht sind, haben im Unicode-Zeichensatz Platz.
Der Unicode-Zeichensatz wird z.B. in der Programmiersprache Java verwendet.
3.5 Kodierung von Zahlen
Eine Bitfolge kann als eine Zahl im Dualsystem interpretiert werden. Das Dualsystem
Zahlensystem zur Basis 2. Jede Stelle in einer Dualzahl steht also für eine Zweierpotenzen.
ist ein
Beispiel:
Die Dualzahl 1101 wird folgendermaßen in das dezimale Zahlensystem umgerechnet:
1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 = 8 + 4 + 0 + 1 = 13
Am leichtesten fällt die Umwandlung zwischen Dualzahl und Dezimalzahl mit einer Tabelle, in deren
Kopf man die Zweierpotenzen schreibt:
 9/16 
Grundwissen über den Computer
SZH, LK Inf 11/1 Lue
27
26
25
24
23
22
21
20
128
64
32
16
8
4
2
1
150
1
0
0
1
0
1
1
0
129
1
0
0
0
0
0
0
1
69
0
1
0
0
0
1
0
1
Dezimalzahl
3.6 Datentypen
Aus dem obigen Text haben wir gelernt, dass eine Bitfolge ganz unterschiedliche Informationen
speichern kann. Die Daten können z.B. byteweise als Buchstaben interpretiert werden, die
gemeinsam einen Text bilden. Es können aber z.B. auch Zahlenwerte oder Wahrheitswerte kodiert
werden. Bei der Programmierung ist es deshalb wichtig zu wissen, wie die Daten in einem bestimmten
Speicherbereich interpretiert werden sollen. In den meisten höheren Programmiersprachen wie z.B.
Java legt der Programmierer für die Speicherbereiche, in denen Programmdaten abgespeichert
werden, einen sogenannten Datentyp fest, der die Art der Information festlegt.
In der Sprache Java gibt es z.B. folgende Datentypen (Auswahl):
Datentyp
Ganze Zahl
(engl. integer)
Fließkommazahl
(engl. floating-point number)
Schriftzeichen
(engl. character)
Bezeichnung
int
Speichergröße
4 Byte
Wertebereich
-2.147.483.648 bis 2.147.483.647
float
4 Byte
char
2 Byte
+/- 3,40282347 * 1038
(7 Nachkommastellen)
65537 verschiedene Zeichen
(Unicode-Zeichensatz)
3.7 Übungsaufgaben
1) Was ist der Unterschied zwischen Daten und Informationen?
2) a ) Wieviele Bits braucht man, um die vier Himmelsrichtungen (Norden, Osten, Süden, Westen) zu
kodieren? Gib ein mögliches Kodierungsverfahren an.
b) Wieviele Bits braucht man, wenn man zusätzlich die Zwischenrichtungen Nordost, Südost,
Nordwest und Südwest kodieren möchte? Gib wieder ein geeignetes Kodierungsverfahren an.
3) Wieviele Bits verarbeiten gängige PCs auf einmal?
4) Wieviele verschiedene Werte können abgespeichert werden in ...
a) ... einem Bit?
b) ... einem Byte?
c) ... einem Wort?
5) a) Welche Aufgabe haben Steuerzeichen bei der Textkodierung? Gib einige Beispiele.
b) Wie kann man sich im Textverarbeitungsprogramm MS Word die Steuerzeichen anzeigen
lassen?
6) Wie wird der Texteditor WordPad, den folgenden Ascii-Zeichencode darstellen (jede Dezimalzahl
kodiert ein Byte)?
72 101 105 105 111 9 87 111 114 105 100 13 10 33 13 10
 10/16 
Grundwissen über den Computer
SZH, LK Inf 11/1 Lue
7) Rechne die folgenden Dualzahlen in Dezimalzahlen um:
a) 1010
b) 0111
c) 1000 1000
d) 0010 0101
8) Kannst du dir vorstellen, weshalb man bei der Programmierung häufig Zahlenangaben im
Hexadezimalsystem (Basis 16) vornimmt anstatt im Dezimalsystem (Basis 10)?
Tip: Überlege, wie viele Bits zur Darstellung einer Ziffer in den beiden Zahlensystemen benötigt
werden.
9) Wie könnte man in einer zwei Byte langen Bitfolge ganze Zahlen kodieren? Wieviele verschiedene
Zahlen können kodiert werden? Beachte, dass ganze Zahlen auch negativ werden können.
10) Welche Problematik tritt auf, wenn man Zahlen mit Nachkommastellen kodieren will? Beschreibe
ein mögliches Kodierungsverfahren für 4 Byte große Zahlen.
4 Grundprinzip der Rechnerarchitektur
4.1 Von-Neumann-Rechnerkonzept
Ein wichtiges Modell zur Beschreibung der Arbeitsweise eines Computers entwarf John von Neumann
1946. Trotzdem die Technik in der Zwischenzeit große Fortschritte gemacht hat, arbeiten die meisten
Computer heutzutage immer noch nach den damals festgelegten Grundprinzipien:
 Der Computer besteht aus den fünf Funktionseinheiten: Steuerwerk, Rechenwerk, Speicher,
Eingabegeräten und Ausgabegeräten. Das Steuerwerk und das Rechenwerk sind Bestandteil des
Prozessors (CPU).
 Alle Daten (Text, Programmkode, Zahlen, usw.) werden binär kodiert.
 Programme, Daten, Zwischen- und Endergebnisse werden im Hauptspeicher (RAM) abgelegt. Der
Hauptspeicher besteht aus fortlaufend durchnummerierten Speicherworten. Der Inhalt eines
Speicherworts kann nur über seine Nummer, die sogenannte Adresse, angesprochen werden.
 Der Prozessor speichert Daten (Programmbefehle, Zahlen, usw.) während der Bearbeitung in
Registern ab. Ein Register kann jeweils ein Speicherwort speichern.
 Aufeinanderfolgende Befehle eines Programms werden in aufeinanderfolgenden Speicherwörtern
abgespeichert. Das Steuerwerk arbeitet die Befehle der Reihe nach (sequentiell) ab. Die Adresse
des aktuellen Befehls wird in einem speziellen Register abgespeichert. Zum Bearbeiten des
nächsten Befehls erhöht das Steuerwerk die Adresse in diesem Register um Eins. Durch
Sprungbefehle kann von der Bearbeitung der Befehle in der gespeicherten Reihenfolge
abgewichen werden.
 Das Rechenwerk kennt arithmetische Befehle, wie Addition und Multiplikation, logische Befehle, wie
Vergleiche, Negation und Konjunktion und Schiebebefehle, mit denen die Bits in einem Datenwort
verschoben werden können.
 Das Steuerwerk kennt u.a. Transportbefehle, wie z.B. die Übertragung eines Speicherwortes vom
Arbeitsspeicher in ein Register.
Wir betrachten einen einfachen Verarbeitungsprozess in einem Von-Neumann-Rechner (siehe
Abbildung). Die zu verarbeitenden Daten werden in einem zusammenhängenden Bereich des
Hauptspeichers abgespeichert, die binär kodierten Programmbefehle werden fortlaufend in einem
anderen Hauptspeicherbereich des Rechners abgelegt. Ein Programmbefehl besteht im einfachsten
Fall aus einem binären Speicherwort. Die Speicheradresse des aktuellen Programmbefehls steht im
Befehlszähler. Zur Abarbeitung wird die im Befehlszähler stehende Adresse über das
Speicheradressregister SAR angewählt und der Befehl über das Speicherdatenregister SDR in das
Befehlsregister des Prozessors geladen.
 11/16 
Grundwissen über den Computer
SZH, LK Inf 11/1 Lue
Abbildung: Befehlsweg im Rechner. Der Befehlszähler adressiert den Hauptspeicher über das Speicheradressregister und lädt
den gespeicherten Befehl über das Speicherdatenregister in das Befehlsregister.
Im Steuerwerk wird gemäß dem Befehl im Befehlsregister eine Folge von Steueranweisungen für den
Prozessor erzeugt. Typische Steueranweisungsfolgen sind:
 Bereitstellen einer Hauptspeicheradresse im SAR.
 Übertragung eines adressierten Speicherwortes vom Hauptspeicher in ein Arbeitsregister.
 Bereitstellen von Operanden aus einem Arbeitsregister für das Rechenwerk, und das Speichern
des Rechenergebnisses in einem Arbeitsregister.
 Speichern eines Registerinhalts unter einer Speicheradresse im Hauptspeicher.
 Erhöhen des Befehlszählers um eine Adresse.
Im Regelfall werden die Programmbefehle fortlaufend verarbeitet, d.h. der Befehlszähler wird
automatisch mit jedem neuen Befehl um eins erhöht (inkrementiert). Es gibt besondere
Programmbefehle, die entweder grundsätzlich oder in Abhängigkeit von Rechenergebnissen eine
abweichende Befehlsverarbeitung erzwingen. Bei diesen Sprungbefehlen wird der Befehlszähler mit
einer neuen Adresse geladen. [Ref4]
4.2 Organisation des Arbeitsspeichers
Wird ein Programm aufgerufen, so wird – vereinfacht ausgedrückt – vom Betriebssystem ein
Speicherblock des Hauptspeichers freigegeben, in dem das Programm laufen kann. Dieser
Laufzeitspeicher besteht typischerweise aus vier Bereichen (siehe Abbildung). Im ersten Bereich wird
der Programmcode selbst abgelegt, der zweite Bereich enthält Programmdaten, die während des
ganzen Programmablaufs benötigt werden, z.B. globale Variablen. Die Größe dieser beiden Bereiche
lässt sich bereits zur Compilierzeit ermitteln. Der dritte und der vierte Bereich des Laufzeitspeichers
sind variable groß. Für beide zusammen ist jedoch in der Regel ein fester Bereich reserviert. Den
dritten Bereich nennt man Stack und den vierten Heap.
Abbildung: Laufzeitspeicher für ein Programm
Der Stack wird für die Verwaltung von Prozedur- und Funktionsaufrufen benutzt. Wird eine neue
Funktion aufgerufen, dann wird die Ausführung der gerade aktiven Funktion unterbrochen, und
Informationen zum Zustand der aktuellen Funktion, wie z.B. die aktuellen Registerwerte, werden auf
dem Stack gespeichert. Wenn die Kontrolle nach Beendigung der aufgerufenen Funktion zurückkehrt,
wird mit Hilfe der abgespeicherten Informationen der alte Zustand wiederhergestellt. Auch lokale
Variablen von Funktionen werden auf dem Stack gespeichert.
 12/16 
Grundwissen über den Computer
SZH, LK Inf 11/1 Lue
Viele Programmiersprachen erlauben die Zuweisung von Speicherplatz für Daten
Programmkontrolle; der Speicherplatz für diese Daten wird vom Heap genommen. [Ref3]
unter
4.3 Übungsaufgaben
1) Die folgende Tabelle beschreibt, wie man die Rechnung
z = (x – y) · (x + y)
in der maschinennahen Programmiersprache Assembler programmieren kann. Das linke
Assembler-Programm ist für eine Maschine geschrieben, in der nur ein Arbeitsregister für die
Berechnung zur Verfügung steht. Das rechte Assembler-Programm verwendet zwei Register (R1
und R2). Man kann erkennen, dass durch die Verwendung mehrerer Register weniger
Rechenschritte erforderlich sind und so die Rechenzeit verkürzt wird. [Ref2]
Einadressmaschine
Zweiadressmaschine
Schritte Befehle
Schritte Befehle
1
2
3
4
5
6
7
1
2
3
4
5
6
LOAD x
SUB y
STORE h
LOAD x
ADD y
MUL h
STORE z
LOAD R1, x
LOADR R2, R1
SUB R1, y
ADD R2, y
MULR R1, R2
STORE R1, z
Versuche die Bedeutung der Assembler-Befehle zu erraten. Gib an, welcher Wert am Ende jedes
Rechenschritts in den Registern steht, wenn x den Wert 4 und y den Wert 3 hat.
a) für die Einadressmaschine
b) für die Zweiadressmaschine
2) Überlege, auf welche Art und Weise die Rechengeschwindigkeit eines Computers erhöht werden
kann.
3) Ein Beispiel für eine Schiebeoperation im Rechenwerk ist ein sogenannter Links-Shift. Alle Bits
einer Bitfolge werden um eine Position nach links verschoben. Das vordere Bit wird entfernt und
dafür wird hinten ein Bit mit 0 aufgefüllt.
a) Wie verändert sich das Byte 1011 0111 nach einem Links-Shift?
b) Wie ändert sich das Byte 0000 0001 nach einem, zwei, drei und vier Links-Shifts? Welche
Dezimalzahl wird jeweils kodiert?
c) Da eine Shift-Operation im Rechenwerk wesentlich schneller ausgeführt werden kann als eine
arithmetische Operation wie Multiplikation oder Division, werden arithmetische Operationen
bei sehr zeitkritischen Programmen so weit es geht durch Shift-Operationen realisiert. Gib an,
welche arithmetische Operation durch einen Links-Shift ausgeführt wird.
d) Welche arithmetische Operation wird durch einen Rechts-Shift ausgeführt?
5 Programmierung
5.1 Programmiersprachen
Eine Programmiersprache ist eine Sprache zur Formulierung von Befehlssequenzen und
Datenstrukturen für die Abarbeitung auf einem Computer. Im Gegensatz zu natürlichen Sprachen, wo
ein Wort mehrere Bedeutungen besitzen kann, ist in einer Programmiersprache eindeutig festgelegt,
welche Zeichenfolgen als Programm zugelassen sind (Syntax) und was diese Zeichenfolgen bewirken
(Semantik). [Ref2]
 13/16 
Grundwissen über den Computer
SZH, LK Inf 11/1 Lue
5.1.1 Maschinensprache
Mit Maschinensprache bezeichnet man den Befehlssatz, den ein Rechner unmittelbar ausführen kann.
Das Alphabet der Maschinensprache besteht nur aus den zwei Zeichen 0 und 1. Die
Maschinensprache ist plattform-abhängig, d.h. sie gilt jeweils nur für eine bestimmte Kombination aus
Prozessor und Betriebssystem, eine sogenannte Rechnerplattform.
5.1.2 Assembler
Assembler ist eine maschinenorientierte Programmiersprache, in der für jede binäre Befehlssequenz
der Maschinensprache ein symbolischer Name benutzt wird. Es werden ebenso symbolische Namen
für Operanden einer Operation vergeben. Z.B. könnte die Maschinensprachen-Zeichenfolge
1011100000001001 in einer Assemblersprache add A,0 heißen und die Addition zweier ganzer
Zahlen bedeuten.
Mit Assembler kann der Programmierer die Abfolge der Maschinenbefehle exakt vorgeben. Jeder
Assemblerbefehl wird bei der Programmgenerierung in exakt einen Befehl des Maschinencodes
übersetzt. Da die Programmierung in Assembler sehr zeitaufwendig ist, werden nur Programme oder
Programmteile in Assembler geschrieben, die besonders schnell und effizient arbeiten müssen, z.B.
Teile von Gerätetreibern.
5.1.3 Höhere Programmiersprachen
Der Befehlssatz der höheren Programmiersprachen ist weitgehend von der Hardware unabhängig und
an die menschliche Sprache angelehnt. Ein Befehl einer höheren Programmiersprache wird in der
Regel in eine Folge von Maschinenbefehlen übersetzt.
Den höheren Programmiersprachen liegen bestimmte Konzepte zugrunde, mit denen die Lösung von
Problemen formuliert wird. Man spricht deshalb auch von problemorientierten Programmiersprachen.
Im wesentlichen lassen sich fünf verschiedene Kategorien unterscheiden:
 Imperative Programmiersprachen: Programme bestehen aus Folgen von Befehlen. (Bsp.: PASCAL,
C, MODULA-2)
 Funktionale Programmiersprachen: Programme werden als mathematische Funktionen betrachtet.
(Bsp.: LISP, MIRANDA)
 Prädikative Programmiersprachen: Programme bestehen aus Fakten (gültige Tatsachen) und
Regeln, die beschreiben, wie aus gegebenen Fakten neue Fakten hergeleitet werden können.
(Bsp.: PROLOG)
 Regelbasierte Programmiersprachen: Programme bestehen aus „wenn-dann-Regeln“. Wenn eine
angegebene Bedingung gültig ist, dann wird eine angegebene Aktion ausgeführt. (Bsp.: OPS5)
 Objektorientierte Programmiersprachen: Programme bestehen aus Objekten, die bestimmte (Teil-)
Probleme lösen und zum Lösen des Gesamtproblems mit anderen Objekten über Nachrichten
kommunizieren können. (Bsp.: SMALLTALK).
Nicht alle Programmiersprachen können eindeutig einer dieser Klassen zugeordnet werden. So ist
z.B. LOGO eine funktionale Programmiersprache, die aber auch imperative Sprachkonzepte besitzt.
Java und C++ können als imperative objektorientierte Programmiersprachen klassifiziert werden, denn
Java- und C++-Programme bestehen aus kommunizierenden Objekten, die intern mittels imperativer
Sprachkonzepte realisiert werden.
Programmiersprachen einer Kategorie unterscheiden sich häufig nur in syntaktischen Feinheiten. Die
grundlegenden Konzepte sind ähnlich. Von daher ist es im Allgemeinen nicht besonders schwierig,
eine weitere Programmiersprache zu erlernen, wenn man bereits eine Programmiersprache derselben
Kategorie beherrscht. Anders verhält es sich jedoch beim Erlernen von Programmiersprachen anderer
Kategorien, weil hier die zugrunde liegenden Konzepte stark voneinander abweichen. [Ref3]
5.1.4 Skriptsprachen
Skriptsprachen sehen den höheren Programmiersprachen sehr ähnlich, aber sie haben nur einen
begrenzten Befehlsumfang. Während man mit höheren Programmiersprachen eigenständige
 14/16 
Grundwissen über den Computer
SZH, LK Inf 11/1 Lue
Programme erzeugen kann, dienen Skriptsprachen der Anpassung bestehender Programme, wie z.B.
Microsoft Excel, an bestimmte Anwendungsbedürfnisse.
Beispiele für Skriptsprachen sind JavaScript und Visual Basic Script.
5.2 Erzeugung von Programmcode
Damit ein Programm ausgeführt werden kann, müssen die Befehle des Programms in
Maschinensprache übersetzt werden, da der Computer selbst nur binären Code ausführen kann. Die
Übersetzung des Programmcodes erfolgt entweder mit einem Compiler oder mit einem Interpreter.
5.2.1 Compiler
Compiler sind Dienstprogramme, die den Programmcode auf syntaktische Korrektheit überprüfen und
ihn anschließend in eine andere Codierung (meistens Maschinensprache) übersetzen. Der
Programmierer ruft den Compiler nach der Erzeugung seines Programms (des sogenannten
Quellcodes) auf. Das Ergebnis des Übersetzungsvorgangs durch den Compiler ist ein neuer
Programmcode (der sogenannte Zielcode). Bei der Übersetzung in die Maschinensprache erhält man
als Zielcode eine ausführbare Programmdatei, die an die späteren Benutzer weitergegeben wird.
5.2.2 Interpreter
Ein Interpreter führt ein in einer höheren Programmiersprache geschriebenes Programm direkt aus,
indem es der Reihe nach jeden Befehl in eine Folge von Maschinenbefehlen übersetzt. Um ein
Interpreter-Programm laufen zu lassen, benötigt der Benutzer den Quellcode (d.h. das OriginalProgramm) und den Interpreter. Zur Ausführung des Programms muss der Interpreter gestartet
werden, der dann den Quellcode Befehl für Befehl abarbeitet.
Der Einsatz eines Interpreters hat für den Programmierer den Vorteil, dass er noch während der
Ausführung Programmteile im Quellcode verändern kann. Der Nachteil ist jedoch, dass die
Programmausführung durch die Interpretation wesentlich langsamer ist.
5.3 Übersetzung von Java-Programmen
Bei Java-Programmen wird ein zweistufiges Übersetzungsverfahren verwendet, dass die Vorteile
eines Compiler mit den Vorteilen eines Interpreters verbindet. Java-Programme (Dateiendung *.java)
werden vom Programmierer mit einem Compiler übersetzt. Bei der Übersetzung wird jedoch kein
Maschinencode generiert, sondern ein plattform-unabhängiger Bytecode. Dieser Byte-Code wird in
eine Datei mit der Endung *.class geschrieben.
Der Benutzer benötigt zur Ausführung von Java-Programmen den Bytecode und einen Interpreter, der
den Bytecode in die Maschinensprache des jeweiligen Rechners übersetzt. Während der Bytecode
plattform-unabhängig ist, ist der Interpreter daher plattform-spezifisch.
.
Abbildung: Übersetzung eines Java-Programms
Abbildung: Übersetzung eines Java-Programms
 15/16 
Grundwissen über den Computer
SZH, LK Inf 11/1 Lue
5.4 Übungsaufgaben
1) Was sind die Vorteile einer höheren Programmiersprache gegenüber einer maschinennahen
Programmierung in Assembler? Was sind die Nachteile?
2) Was ist bei der Programmierung der sogenannte Quellcode?
3) Was ist der Unterschied zwischen einem Compiler und einem Interpreter? Diskutiere die Vor- und
Nachteile.
4) Wie funktioniert die Übersetzung von Java-Programmen? Was sind die Vor- und Nachteile
gegenüber der Verwendung eines einfachen Compilers?
6 Quellen-Angaben
[Ref1] H.-P. Gumm, M. Sommer: Einführung in die Informatik. Oldenbourg Verlag, 2002.
[Ref2] Duden: Angewandte Informatik. PAETEC Verlag, 2001.
[Ref3] Dietrich Boles: Programmieren spielend gelernt. B.G. Teubner Verlag, 1999.
[Ref4] Wolfgang Coy: Aufbau und Arbeitsweise von Rechenanlagen. Vieweg Verlag, 1988.
 16/16 
Herunterladen