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