CDS205-Computer-Science/formulas/Zusammenfassung.md
2025-04-17 13:17:56 +02:00

169 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 2 - Informationstechnik
#### Bits und Bytes
## 3 - Hardware
### CPU (Central Processing Unit)
## Hauptprozessor (CPU)
- **Definition**
- Zentralprozesseinheit eines Computers
- Erbringt Verarbeitungs- und Rechenleistung
- Verantwortlich für Informationsverarbeitung und Steuerung der Abläufe
- Herzstück elektronischer Geräte mit computerähnlichen Aufgaben
## Befehle und Vielseitigkeit
- **Eingabequellen**
- Benutzer (Input)
- Automatisierte Regelsets (Programme)
- **Vergleich**
- Multi-funktionales Werkzeug
- Wenig spezialisiert als Prozessor
- **Spezialisierte Prozessoren**
- Entlastung des Hauptprozessors
- Beispiel: Grafikprozessor (GPU) für grafische Berechnungen
## Aufbau der CPU
- **Elemente**
- Eingabewerk
- Interner Pufferspeicher (Cache)
- Rechenwerk
- Steuerwerk
- Ausgabewerk
- **Prozessorkern**
- Kombination aus Rechen- und Steuerwerk
- Moderne CPUs besitzen mehrere Kerne auf einem Chip
## Mehrkernprozessoren und Effizienz
- **Parallelverarbeitung**
- Mehrere Aufgaben gleichzeitig lösen
- **Effizienzsteigerung**
- Erhöhung der Taktfrequenz (Rechengeschwindigkeit)
- Verkleinerung der Leiterbahnen
- Verbesserte Energieeffizienz und reduzierte Hitzeentwicklung
- **Transistoren**
- Billionen Transistoren auf einem CPU-Chip
- Größe um ein n-faches kleiner als menschliches Haar
- Hohe Herstellungsherausforderungen
## Datenfluss und Speicherhierarchie
- **Speicherarten**
- Datenträger → Arbeitsspeicher → Eingabewerk → Cache
- **Speichercharakteristik**
- Nähe zur CPU: kleinerer Speicher, höherer Datendurchsatz
- **Cache-Levels**
- Mehrere Ebenen mit unterschiedlichen Kapazitäten und Geschwindigkeiten
- **Taktfrequenzen**
- Moderne CPUs im Gigahertz-Bereich (1 GHz = 1 Milliarde Zyklen/Sekunde)
Wichtig ist der Cache.
| **Spezifikation** | **L1 Cache** | **L2 Cache** | **L3 Cache** |
|--------------------|-----------------------------|----------------------------|-----------------------------|
| **Größe** | 16 KB 64 KB pro Kern | 256 KB 1 MB pro Kern | 2 MB 64 MB (gemeinsam) |
| **Typ** | Getrennt für Daten und Instruktionen (Data & Instruction) | Oft einheitlich (Unified) | Einheitlich (Unified) |
| **Assoziativität** | 4- bis 8-fach assoziativ | 8- bis 16-fach assoziativ | 12- bis 24-fach assoziativ |
| **Cache-Liniengröße** | 64 Bytes | 64 Bytes | 64 Bytes |
| **Zugriffszeit (Latency)** | 1-4 CPU-Zyklen | 10-20 CPU-Zyklen | 30-50 CPU-Zyklen |
| **Bandbreite** | Sehr hoch | Hoch | Mittel bis hoch |
| **Zweck** | **L1**: Schneller Zugriff auf häufig genutzte Daten und Instruktionen<br>**L2**: Zwischenpuffer für L1 und L3<br>**L3**: Gemeinsamer Cache für mehrere Kerne zur Reduzierung der Speicherzugriffe |
| **Teilung** | Getrennt für Daten und Instruktionen (in den meisten Architekturen) | Einheitlich oder getrennt | Einheitlich |
| **Skalierung** | Pro Kern | Pro Kern oder geteilt | Geteilt zwischen allen Kernen|
| **Beispiele moderner CPUs** | Intel Core i9-13900K: 64 KB L1 | Intel Core i9-13900K: 2 MB L2 | Intel Core i9-13900K: 36 MB L3 |
| **Energieverbrauch** | Sehr niedrig | Moderat | Höher im Vergleich zu L1 und L2 |
### GPU (Graphics Processing Unit)
- Spezialprozessor für parallele Berechnungen
Integrated GPU (iGPU)
- Uses RAM
Dedizierte Grafikkarte
- Uses VRAM
### Memory
RAM (Random Access Memory) ist das Hauptmemory eines Rechners.
Es gibt SRAM (Static Random Access Memory), der aber meist bei FPGA (Field Programmable Gate Array) eingesetzt wird, und DRAM (Dynamic Random Access Memory).
DRAM wird meist als SD-RAM (Synchronous Dynamic Random Access Memory) eingesetzt, wobei DDR-SD-RAM (Double Data Rate Synchronous Dynamic Random Access Memory) am gebräuchlichsten ist.
### Storage
| **Storage Type** | **Beschreibung**| **Vorteile**| **Nachteile**|
|------------------|-----------------|-------------|--------------|
|HDD|Hard Disk Drive|Persistenter Speicher|<ul><li>Erschütterungsempfinlich</li><li>Empfindlich gegen Magnetismus</li></ul>|
|SSD|Solid State Drive|<ul><li>Schneller Lesezugriff</li><li>iPersistenter Speicher</li></ul>|Hohe Abnutzung bei Schreibzyklen|
|NVMe|Nonvolatile Memory Express <br> SSD über PCI Express|physische Disaggregation = Pooling|<ul><li>Leicht höehre Latextnzeit</li><li>inhärente Komplexität</li></ul>|
|Tape-Library|Archiv- oder Backupspeicher|<ul><li>Grosse Kapazitäten</li><Stoss- und Vibrationsresistent><li>Langlebig</li></ul>|<ul><li>Verschleissgefahr</li><li>Langsame Zugriffszeiten</li><li>Sequenzieller Zugriff</li><li>Anfällig auf Staub, Hitze, Feuchtigkeit und Magnetismus</li></ul>|
|BD|Optische Abtastung via Laser|Langlebig beiguter Lagerung|Empfindlich ggü. Fremdeinwirkung (Feuchte, Hitze, UV-Licht, Lagerposition)|
## 4 - Betriebssysteme
#### Von-Neumann-Architektur
##### Komponenten eines Von-Neumann-Rechners
1. **Rechenwerk (ALU - Arithmetic Logic Unit)**
- Führt arithmetische (z. B. Addition, Subtraktion) und logische Operationen (z. B. Vergleiche) durch
- Arbeitet eng mit den Registern und dem Leitwerk zusammen
2. **Leitwerk (Control Unit)**
- Steuert den Ablauf der Befehlsverarbeitung
- Lädt Instruktionen aus dem Speicher, decodiert sie und gibt Steuersignale an das Rechenwerk sowie andere Komponenten
- Verändert bei Bedarf den Befehlszähler (Program Counter, PC)
3. **Speicher (Memory)**
- Enthält sowohl die ausführbaren Programme (Instruktionen) als auch die zu verarbeitenden Daten
- Ist in Adressen organisiert, jede Speicherzelle kann eindeutig angesprochen werden
4. **Eingabe- und Ausgabegeräte (I/O)**
- Sorgen für den Datenaustausch mit der Außenwelt (z. B. Tastatur, Maus, Bildschirm)
- Kommunizieren über Schnittstellen bzw. I/O-Controller mit dem Rest des Systems
5. **Systembus**
- Verbindet CPU, Speicher und I/O-Geräte
- Überträgt Daten, Adressen und Steuersignale (Datenbus, Adressbus, Steuerbus)
---
##### Beispielhafter Ablauf einer Instruktion
1. **Fetch (Instruktion holen)**
- Der Program Counter (PC) zeigt auf die nächste Instruktion im Speicher
- Das Leitwerk lädt die Instruktion über den Adressbus und erhält sie über den Datenbus
2. **Decode (Instruktion dekodieren)**
- Das Leitwerk interpretiert den Instruktionscode
- Identifiziert Operationstyp, beteiligte Register und Speicheradressen
3. **Fetch operands (Operanden holen)**
- Werden zusätzliche Daten benötigt, lädt das System sie über Adress- und Datenbus in die Register
4. **Execute (Ausführen)**
- Die ALU führt die gewünschte Operation (z. B. Addition) anhand der Registerwerte durch
5. **Write back (Ergebnis speichern)**
- Das Ergebnis wird in ein Register oder in den Hauptspeicher zurückgeschrieben
6. **Increment Program Counter**
- Der PC wird auf die nächste Instruktion gesetzt
- Der Zyklus beginnt erneut (Fetch-Decode-Execute)
#### Von-Neumann-Zyklus
#### Kernel
#### Memory Management
#### Systemcall-Interface
#### I/O-Subsystem
#### Prozessmanagement
### Interruptverarbeitung
### Prozesse und Threads
### Filesystem
ebssysteme
## 5 - Netzwerke
## 6 - Schadprogramme
## 7 - Harmlose (aber nervige) Software
## 8 - Angreifer
## 9 - Sicherheitsvorkehrungen
## 10 - Einführung in Cloud Computing