67 lines
3.3 KiB
Markdown
67 lines
3.3 KiB
Markdown
Ein Computer ist eine Rechenmaschine. Sie dient zur elektronischen Datenverarbeitung. Elektronische Datenverarbeitung ist die Verarbeitung von Daten durch Elektronik.
|
|
|
|
**Daten** sind Informationen jeglicher Art welche zum Zweck der Verarbeitung abgelegt werden. Zum Beispiel Informationen über eine Person, Gegebenheiten oder ähnliches. Traditionell hat man diese Informationen zu Papier gebracht. Dies hat jedoch einen gewaltigen Nachteil: Die Informationen können nur von einem Menschen unter großem zeitlichen Aufwand verarbeitet werden. Außerdem ist dies sehr fehleranfällig.
|
|
|
|
Die Datenverarbeitung hat im Laufe der Geschichte viele Neuerungen erfahren. Von der manuellen (=händischen) Verarbeitung von Informationen über die rein mechanische, elektrische und schlussendlich elektronische Verarbeitung von Informationen.
|
|
|
|
Elektronische Verarbeitung von Daten bedeutet Informationen mit Hilfe von Elektronik zu manipulieren. (also sortieren, verarbeiten, berechnen, etc.)
|
|
|
|
Heutige Computer haben die Aufgabe, für uns die Verarbeitung von Daten durchzuführen. Darin sind sie besonders schnell und zuverlässig.
|
|
|
|
Ein Computer führt Aufgaben als Algorithmen durch. Algorithmen beschreiben einen Vorgang (entweder mathematisch oder als Programm)
|
|
|
|
```python
|
|
def rechnung(x):
|
|
zahl=3*x+2
|
|
return zahl*2
|
|
```
|
|
|
|
Ein Computer führt einen Algorithmus in Form eines Programms schrittweise aus.
|
|
## Aufbau eines Computers
|
|
|
|
Computer (eigentlich heutzutage nur ein kleiner Teil der CPU, früher aber ganze Räume) halten sich grob an die Von-Neumann-Architektur.
|
|
![[Pasted image 20251020103354.png]]
|
|
Die Von-Neumann-Architektur besteht aus ....
|
|
Die Aufgaben der verschiedenen Einheiten sind:
|
|
- Ein- und Ausgabewerk:
|
|
- Rechenwerk:
|
|
- Steuerwerk:
|
|
- Speicherwerk:
|
|
|
|
Die ALU eines Computers ist die Arithmetisch Logische Einheit (Arithmetic Logical Unit). Sie führt Berechnungen und Logikoperationen aus.
|
|
|
|
Arithmetik bedeutet die Ausführung von Grundrechnungsarten wie Addition, Multiplikation, etc.
|
|
Logik bedeutet ...
|
|
|
|
Ergebnisse und Zahlen die für die Rechnung benötigt werden, werden in Speicherzellen die man Register nennt abgelegt. Diese enthalten genau 1 Wert. (Wertespeicher)
|
|
|
|
Bei 64 Bit CPUs kann der Computer 64 Bit in einen Register legen und verarbeiten.
|
|
|
|
Das Speicherwerk des Computers (innerhalb der CPU) ist der Cache. Cache ist ...
|
|
## Programme
|
|
|
|
Programme sind ...
|
|
|
|
Wenn wir programmieren, dann schreiben wir Quellcode, welcher vom Compiler (z.B. bei C) oder Interpreter (z.B. bei Python) zu für die CPU verarbeitbare Befehle umgewandelt wird.
|
|
|
|
Die CPU führt Programme von Oben nach Unten (Vom Anfang zum Ende) aus.
|
|
|
|
Befehle für die CPU sehen etwa so aus:
|
|
|
|
```
|
|
0000000000001139 <main>:
|
|
1139: 55 push %rbp
|
|
113a: 48 89 e5 mov %rsp,%rbp
|
|
113d: 48 8d 05 c0 0e 00 00 lea 0xec0(%rip),%rax
|
|
1144: 48 89 c7 mov %rax,%rdi
|
|
1147: e8 e4 fe ff ff call 1030 <puts@plt>
|
|
114c: b8 00 00 00 00 mov $0x0,%eax
|
|
1151: 5d pop %rbp
|
|
1152: c3 ret
|
|
```
|
|
Erste Spalte: Position im Programm, Zweite Spalte: Eigentlicher Bytecode, Dritte Spalte: Assemblerbefehle
|
|
|
|
Bytecode ist der von der CPU dekodierbare Befehl welcher vom Steuerwerk interpretiert und in Steuersignale umgesetzt wird.
|
|
|
|
Assembler ist eine für Menschen lesbare Repräsentation des Bytecodes.
|