TGI (Fach) / Technische Grundlagen der Informatik (Lektion)
In dieser Lektion befinden sich 87 Karteikarten
TGI halt
Diese Lektion wurde von Gretheme erstellt.
- Warum werden Informationen für die Verarbeitung im Computer gern als Dualzahlen („binär“) dargestellt? • Physisch einfach und eindeutig umsetzbar (Strom fließt, Strom fließt nicht).
- Was ist das Sedezimal- bzw. Hexadezimalsystem? • Zahlen (in einem Stellenwertsystem) zur Basis 16 dargestellt • Komfortablere Verwaltung des Binärsystems • Vorteil: Man kann 4 Bits als eine Hexadezimalziffer darstellen • kompakt und praktisch.
- Wie geht man vor, um aus dem Dezimalsystem in das Binärsystem umzurechnen und umgekehrt? Von Dezimal zu Binär: 1. Beginne mit der gegebenen Dezimalzahl. 2. Teile die Dezimalzahl durch 2 (die Basis des Binärsystems). 3. Merke dir den Rest der Division (0 oder 1), der die kleinste Stelle der Binärzahl darstellt. 4. Teile das Ergebnis der vorherigen Division erneut durch 2 und notiere den Rest. 5. Fahre mit dieser Schritt-für-Schritt-Division fort, bis das Ergebnis der Division 0 ist. 6. Lese die Reste von unten nach oben, um die entsprechende Binärzahl zu erhalten. Von Binär zu Dezimal: 1. Beginne mit der gegebenen Binärzahl. 2. Schreibe die Binärzahl von rechts nach links auf, wobei die rechteste Stelle den Wert 2^0 hat, die nächste Stelle den Wert 2^1, dann 2^2 und so weiter. 3. Multipliziere jeden Binärwert mit dem entsprechenden Potenzwert von 2. 4. Addiere alle Multiplikationsergebnisse, um die Dezimalzahl zu erhalten.
- Wozu dienen Zeichentabellen wie z. B. die ASCII-Tabelle? • Computer arbeiten mit Zahlen • Zeichen und Befehle (z.B. SHIFT oder DELETE) müssen also standardisiert in Zahlencodes übersetzt werden • ASCII-Tabelle bietet mit ihren 128 Zeichen einen „Grundbaustock“ der Einheitlichkeit bei der Zeichenrepräsentation garantiert • Inkompatible Kodierungen werden so vermieden
- Was ist das Zweierkomplement zur Darstellung negativer Zahlen? Grenze diese Darstellung zum Einerkomplement und der Darstellung mit Vorzeichen ab. Warum ist das Zweierkomplement heute die übliche Darstellung für ganze Zahlen? Was ist das Zweierkomplement zur Darstellung negativer Zahlen? • Methode zur Darstellung negativer Zahlen in der Binärnotation • Basiert auf der Komplementbildung und Addition von 1 Grenze diese Darstellung zum Einerkomplement und der Darstellung mit Vorzeichen ab • Einerkomplement: Alle Bits einer positiven Zahl invertiert, um die entsprechende negative Zahl zu erhalten • Vorzeichen: Separates Vorzeichenbit wird verwendet, um das Vorzeichen (positiv oder negativ) einer Zahl anzugeben Warum ist das Zweierkomplement heute die übliche Darstellung für ganze Zahlen? • Einzigartige Darstellung der Null • Einfache Addition und Subtraktion • Effiziente Hardware-Implementierung • Bequeme Darstellung von negativen Werten
- Was ist eine Festkommazahl? • Eine Zahl, die aus einer festen Anzahl von Ziffern besteht ( = feste Wortbreite). • Position des Kommas ist dabei fest vorgegeben
- Was ist eine Gleitkommazahl? Was ist in IEEE 754 festgelegt? • Eine Zahl mit einem skalierbaren Zahlenbereich • Bessere Genauigkeit • Besteht aus einem Vorzeichen, einer Mantisse und einer Basis mit entsprechendem Exponenten • Zahl wird normalisiert und in Mantisse und Exponent aufgeteilt wird • Beide Werte werden dann in Form von Dualzahlen gespeichert IEEE 754: • Zwei Formate für Gleitkommazahlen ∘ Single-Precision-Format ∘ Double-Precision-Format
- Welche beiden Hauptaufgaben hat ein Betriebssystem? • Von Hardware abstrahieren: ∘ Betriebssystem erzeugt abstrakte Objekte, um die Komplexität beherrschbar zu machen • Ressourcen verwalten: ∘ Rechenzeit & Hauptspeicher wird jedem Anwendungsprozess möglichst fair zugeteilt ∘ Betriebssystem ordnet und kontrolliert die Allokation der Prozessoren, Speicher und Ein-/Ausgabegeräte und überwacht, welches Programm gerade welches Betriebsmittel nutzt
- Aus welchen logischen Bestandteilen besteht ein Hauptprozessor eines Computers (Central Processing Unit, CPU) typischerweise? • Mehrere Kerne • Jeder Kern hat: ∘ eigene Steuereinheit ∘ ALU ∘ mehrere Register ∘ Caches
- Warum werden logische Schaltungen zumeist aus Inverter, NOR- und NAND-Gattern aufgebaut (und nicht aus den „positiven“ OR- und AND-Gattern)? • Herstellung in großen Mengen ist billiger und einfacher, weil weniger Transistoren • Übrige boolschen Funktionen können aus ihnen kombiniert werden
- Wie lassen sich OR-, AND- und XOR-Gatter aus anderen kombinieren? 1. OR-Gatter aus NAND-Gattern: Das OR-Gatter kann aus zwei NAND-Gattern hergestellt werden, indem das Ausgangssignal beider NAND-Gatter invertiert wird. 2. AND-Gatter aus NAND-Gattern: Das AND-Gatter kann aus zwei NAND-Gattern hergestellt werden, indem beide Eingänge mit einem NAND-Gatter verbunden werden und dann das Ausgangssignal invertiert wird. 3. XOR-Gatter aus NAND-Gattern: Das XOR-Gatter kann aus vier NAND-Gattern hergestellt werden, indem die Eingänge A und B mit zwei NAND-Gattern verbunden werden und zusätzlich die negierten Eingänge A und B mit zwei weiteren NAND-Gattern verbunden werden. Schließlich wird das Ausgangssignal der beiden NAND-Gatter invertiert und mit einem weiteren NAND-Gatter kombiniert.
- Wie ist ein Halbaddierer aufgebaut? Warum können nicht einfach mehrere Halbaddierer zusammengeschaltet werden, um mehrstellige binäre Zahlen zu addieren? • Schaltnetz, das üblicherweise als digitale Schaltung realisiert wird • Besteht aus zwei Eingängen und zwei Ausgängen • Zwei einstellige Binärzahlen addieren • Ausgang s liefert die rechte und der Ausgang c die linke Stelle des Ergebnisses • Besteht aus einem AND und einem XOR Gatter • Problem: Überträge werden nicht weitergegeben, weil der Halbaddierer nur zwei Eingänge hat, daher können mehrstellige binäre Zahlen nicht addiert werden
- Welche Schaltung löst das vorgenannte Additions-Problem? Wie ist sie aufgebaut? • Um das Additions-Problem zu lösen, wird eine Schaltung namens "Carry-Lookahead Adder" (CLA) verwendet • Berechnung der Carry-Generate (G) und Carry-Propagate (P) Signale • Berechnung des Carry-In (Cin) Signals • Berechnung des Summenbits (S) und Carry-Out (Cout) Signals
- Wie kann man mittels logischer Schaltungen ein Bit „speichern“? Wie heißt das zusammengestellte „Bauelement“? (Es gibt zwei Typen.) • Flip-Flop ∘ Bistabile Schaltung, die den Zustand eines Bits speichern kann und diesen Zustand beibehält, bis er geändert wird • SRAM (Static Random Access Memory) • DRAM (Dynamic Random Access Memory)
- Was ist ein Decoder? Wie lassen sich damit grundsätzlich Speicherbausteine bauen und adressieren? Welche Bauelemente sind dazu außerdem nötig? Was ist ein Decoder? • logische Schaltung oder eine Kombination von Schaltkreisen • wird verwendet, um einen bestimmten Eingangscode in eine eindeutige Ausgangsaktivierung umzuwandeln Wie lassen sich damit grundsätzlich Speicherbausteine bauen und adressieren? • Speicherbaustein hat Anzahl an Speicherzellen • Dekoder Ausgänge sind mit Speicherzellen verbunden Welche Bauelemente sind dazu außerdem nötig? • Speicherzellen • Decodierer • Multiplexer • ...
- Warum gibt es zwischen der CPU und dem Hauptspeicher einen (ggf. mehrstufigen) Cache? • Schneller Zugriff: Cache ist schneller als der Hauptspeicher • Reduzierung des Speicherzugriffs: Indem häufig benötigte Daten und Anweisungen im Cache gehalten werden, kann die CPU schneller darauf zugreifen • Cache-Hierarchie: Ermöglicht einen graduellen Anstieg der Cache-Größe, während gleichzeitig der Zugriff in den kleineren und schnelleren Caches beschleunigt wird • Ausschöpfung der Bandbreite des Hauptspeichers: CPU kann die verfügbare Bandbreite des Hauptspeichers besser nutzen • Effiziente Nutzung der Prozessorzeit: Wenn CPU Cache verwendet, ohne auf den Hauptspeicher warten zu müssen, kann sie mehr Arbeit in kürzerer Zeit erledigen
-
- Grenze die Begriffe statisches RAM (SRAM) und dynamisches RAM (DRAM) gegeneinander ab. Welche Vorteile bzw. Nachteile haben sie jeweils? • SRAM: Array aus Flipflops, wir behalten den alten Wert bis Strom fließt. ∘ Vorteil: schnelle Zugriffszeit (lesen/schreiben) ∘ Nachteil: viel Fläche => größere Chips, also SRAM, sind teurer als DRAM + schnell - sperrig - teuer • DRAM: Speicherzelle aus Transistor und Kondensator Werte verschwinden über die Zeit, wenn wir sie nicht auffrischen. ∘ Vorteile: DRAM hat weniger Fläche (ist also kleiner), weil nur Transistor und kleiner Kondensator statt Flipflop Array. ∘ Sehr viele auf wenig Raum zu geringen Kosten -> Hauptspeicher wird aus DRAM gebaut. ∘ Nachteil: höhere Zugriffszeit -> langsam Kann man allerdings ausgleichen, indem man mehrere Bits parallel ausliest/beschreibt (Double Data Rate) + kostengünstig + platzsparend
- Warum verfügt die CPU eines Rechners über eigene Speicherbausteine (Register)? Welche Eigenschaft zeichnet diese aus? • Register in Prozessoren sind Speicherbereiche für Daten, auf die Prozessoren besonders schnell zugreifen können • Befinden sich direkt in der Nähe der Rechenwerke • In einem Prozessorkern stehen Register an der Spitze der Speicherhierarchie (schnell)
- Welches grundsätzliche Problem moderner Computer wird als Von-Neumann-Flaschenhals bezeichnet? • Problem besteht darin, dass der Prozessor und der Speicher in modernen Computern nicht mit der gleichen Geschwindigkeit arbeiten • Prozessor ist in der Regel sehr schnell und kann Anweisungen in kurzer Zeit ausführen • Speicher hingegen ist langsamer und benötigt mehr Zeit, um Daten zu lesen oder zu schreiben
- Wie funktioniert ein Array aus Speicherzellen grundsätzlich? • Eine Reihe von Variablen gleichen Typs, die im Speicher direkt hintereinander liegen • Auf die Elemente eines Arrays kann einzeln zugegriffen werden • Array wird mit der Anfangsadresse des ersten Elements im Array identifiziert
- Welche Eigenschaften hat ein Multiplexer? • Hat mehrere Eingänge • Einen Schalter mit dem man entscheiden kann, welcher der Eingänge ausgegeben wird
- Was ist eine ALU? • Recheneinheit des Computers • „Blackbox“ • kann addieren, subtrahieren, multiplizieren, Ganzzahldivision und vergleichen usw • oft keine Gleitkommazahl Berechnung weil sehr aufwendig -> FPU stattdessen
- Welche Ein- und Ausgänge hat eine ALU? Wozu dienen sie? • Ausgang: berechnet R (Result) aus den Operanden A und ggf. B • Ausgang: D -> Carry-Out • Einfang F bestimmt die Funktion ∘ arithmetisch: ADD, SUB, MUL, ggf. DIV, CMP ∘ logisch: NOT, AND, OR, XOR usw. ∘ Shift: SLL, SRL ∘ einzelne Bits setzen oder löschen
- Was sind Register? • Spezielle Datenspeicher in einem Prozessor (CPU) • Sehr schnell und ermöglichen einen schnellen Zugriff auf Daten • Werden häufig für die Ausführung von Befehlen und die Verwaltung von Daten in Prozessen verwendet • Essentiell für die Ausführung von Befehlen und die Verarbeitung von Daten in einem Computerprozessor
- Welche Arten von Befehlen werden in einer ALU meist bereitgestellt? • ADD • NOT • AND
- Was ist eine FPU? • Rechnen mit Gleitkommazahlen ist aufwendig ∘ Normalisieren- Runde- Vorzeichenregeln- Sonderbehandlung von 0, NaN, Inf • früher immer in Software realisiert • heute oft in Hardware als seperater Prozessor ∘ Gleitkommaeinheit (Floating Point Unit, FPU)
- Wozu dient der Program-Counter (PC) in einer CPU? • Sagt, welcher Befehl als nächstes aus dem Speicher geladen werden soll • Ist mit der Adresse der nächsten auszuführenden Instruktion belegt
- Wofür wird das Register IF verwendet? Wofür steht die Abkürzung? • Enthält das zu verarbeitende Befehlswort • IF steht für Befehlsregister (Instruction Fetch)
- Wie geht eine CPU bei der schrittweisen Abarbeitung eines Programms in etwa vor? 1. Fetch: Die CPU holt sich das Befehlswort, das sich an der im Program Counter angegebenen Speicherstelle befindet und lädt es in das Befehlsregister IF ein. 2. Dekode: Das Befehlswort wird ausgewertet 3. ggf. Operanden bereitstellen (Laden aus Register) 4. Ausführung der Operation 5. ggf. Speichern eines Ergebnisses F.D.O.A.S.
- Wie werden „Verzweigungen“ realisiert, welches spezielle Register enthält Informationen für die Entscheidung? • Nach Auswertung der Bedingung (bei bedingten sprüngen) wird der Program Counter so verändert, dass er auf die Sprungmarke zeigt • Bei Sprüngen mit Rücksprungabsicht wird die Rücksprungadresse in einem Register oder auf dem Stack gesichert
- Was ist Maschinensprache? • Sprachelemente für Instruktionen für die Maschine • Entsteht durch Assembler/Compiler
- Was ist ein Befehlssatz? • Menge der Maschinenbefehle, die ein bestimmter Prozessor ausführen kann
-
- Welche Klassen von Befehlen gibt es mindestens in einem Befehlssatz? • Transferbefehle • Datenmanipulation • Arithmetische und logische Befehle • Ein-/Ausgabebefehle • Sprungbefehle • Stack-Befehle • Kombinierte Befehle
- Wie ist eine Maschineninstruktion grundsätzlich aufgebaut? • OPCODE • Zielregister • Benutze Funktion • Quellregister • Alles andere, was von der Funktion verlangt wird
- Was steht in einem nicht initialisierten Register? • Nimmt den Standardwert des Datentyps • Zum Beispiel null, 0 oder leer
- Wozu dient das Befehlsregister (IF) in einer CPU? • Das Befehlsregister IF speichert das aktuell ausgeführte Befehlswort
- Wozu dient die indirekte Adressierung beim Zugriff auf eine Speicherstelle? • Bewirkt, dass nicht der Inhalt des angegebenen Registers gelesen wird, sondern die Speicherstelle an der Adresse, die im angegebenen Register gespeichert ist
- Was ist ein Compiler? • Transformiert Texte einer "höheren" formalen Sprache auf eine "niedrigere" formale Sprache • Der Quellcode ist üblicherweise lesbar für Menschen; der Zielcode für Maschinen • Ausführbarer Zielcode
- Was ist eine Assemblersprache? Was ist der Unterschied zu einer Hochsprache, z. B. C++? • Menschenlesbare Notation der Maschinensprache Unterschiede: • Keine festgelegten Datentypen • Assemblerprogramme können nur auf einer Prozessorfamilie ausgeführt werden
- Was ist der Unterschied zwischen einem Compiler und einem Interpreter? • Compiler kompiliert (übersetzt) das Programm einmal vor der Laufzeit in Maschinensprache und läuft dann bis zu Ende • Interpreter interpretiert das Programm während der Laufzeit, jede Programmanweisung wird vom Interpreter als Eingabe gelesen
- Was ist ein Pointer? Wie kann ein Assemblerprogramm mit Hilfe von Pointern über eine null-terminierte Zeichenkette iterieren? • Zeigt immer auf ein Datenobjekt im Speicher • Wenn das Zeichen eine null ist ist der String am Ende angelangt
- Welche Bedeutung hat die Byte-Order einer Prozessorarchitektur? In welchen Anwendungsfällen spielt sie eine Rolle? • Gibt an welches Byte zuerst gelesen bzw. geschrieben wird • Entweder das höchstwertige Byte (MSB) oder das niedrigwertigste Byte (LSB) • Bei der Typumwandlung in C spielt das eine besondere Rolle
- Was ist ein Stackpointer? Worauf zeigt er typischerweise? • Zeigt auf die Anfangsadresse des zuletzt belegten Elements, • Was ganz unten am stack klebt
- Wozu dient ein Stack-Frame? • Dient dazu, Informationen über den aktuellen Aufruf eines Unterprogramms (Funktion oder Prozedur) auf einem Programmstack zu speichern • Wichtiger Teil der Laufzeitumgebung eines Programms und ermöglicht die effiziente Verwaltung von Unterprogrammaufrufen und lokalen Variablen
- Wieviel Platz muss im Hauptspeicher für ein Integer-Array mit 6 Elementen reserviert werden? • Hängt von Größe der Interger-Arrays ab, normalerweise entweder 8 oder 4 Bytes • Ein Integer-Array mit 6 Elementen würde dann 6 * 4 Bytes benötigen, da jedes Element 4 Bytes belegt • Rechnung: 6 Elemente * 4 Bytes pro Element = 24 Bytes • Also müssen 24 Bytes im Hauptspeicher für dieses Integer-Array reserviert werden
- Wie würde man auf das Element des Integer-Arrays zugreifen, das den Index 3 hat? • Ergibt sich aus der Summe der Speicherplatzanforderungen seiner einzelnen Bestandteile
- Was ist ein Prozess? • Ein Programm in Ausführung • Hat eigene Ressourcen, Berechtigungen und einen Verarbeitungszustand
- Worin unterscheidet sich der Kernmodus vom Benutzermodus? Warum wird diese Unterscheidung getroffen? • Kernmodus: Alle Prozessorbefehle dürfen aufgerufen werden und auf alle Geräte zugegriffen werden • Benutzermodus: ist ein eingeschränkter Modus in dem ein Prozess unter anderem nicht in den Kontext anderer Prozesse eingreifen darf
- Worin besteht der Unterschied zwischen Batch- und Timesharing-Scheduling? • Batch-Scheduling für nicht interaktive Aufgaben mit wenig oder keiner Benutzerinteraktion verwendet wird • Timesharing-Scheduling für interaktive Benutzerprozesse optimiert ist, um die CPU-Zeit effizient zwischen mehreren Benutzern zu teilen und schnelle Antwortzeiten zu gewährleisten
- Beschreibe kurz einige Zustände, in denen sich ein Prozess befinden kann. • running: Prozess läuft • blocked: Prozess ist blockiert und wartet auf Ereignis • ready-to-run: Prozess wird in Run-Queue eingefügt
-