Betriebssysteme2 Flashcards
Was ist ein Betriebssystem?
Ein Betriebssystem ist eine Software die:
Prozesse, Speicher, Dateien, Geräte und Benutzeroberflächen verwaltet
und steuert.
Wie wird auch Systemsoftware genannt?
Einheiten oder Bausteine
Wie sehen die Benutzungsrelationen von Benutzer und der Hardware aus?
Benutzer –> Benutzerprogramm –> Betriebssystem –> Maschinenhardware
Was ist langsamer: Speicherzugriffe oder Registerzugriffe?
Speicherzugriffe sind langsamer, da sie einen viel weiteren Weg einlegen müssen als Registerzugriffe.
Was ist ein Speicherzugriff?
Was ist ein Register?
Ein Register ist ein kleines, sehr schnelles Speicherelement im Prozessor eines Computers. Register dienen zur temporären Speicherung von Daten und Instruktionen, die für die laufenden Berechnungen und Operationen des Prozessors benötigt werden
Was sind die Funktionen von Registern?
Was ist ein Registerzugriff?
Was ist eine Instruktion?
Instruktionen sind Anweisungen für den Prozessor und werden nacheinander vom Rechenwerk ausgeführt
Was ist ein Rechenwerk?
Erkläre arithmetische und logische Operationen
arithmetisch: Addition, Subtraktion, Multiplikation, …
logisch: UND, ODER, …
Wo arbeitet primär das Rechenwerk?
Auf Registern
Nenne spezielle Register
Programmzähler: Speichert die Adresse der nächsten auszuführenden Instruktion
Prozessorstatuswort oder auch Statusregister: Beherbergt Verschiedene Markierungsbits (Flags)
Nenne die verschiedenen Bedingungsbits für bedingte Sprünge (Flags)
Zero flag
Sign flag
Carry flag
Overflow flag
Was macht Zero Flag?
Zero flag: Ergebnis der letzten arithmetischen oder logischen Operation war Null
Was macht Sign Flag?
Sign flag: Ergebnis der letzten arithmetischen oder logischen Operation war kleiner als Null
Was macht Carry Flag?
Carry flag: Bei der letzten arithmetischen Operation trat ein Übertrag auf
Was macht Overflow Flag?
Overflow flag: Bei der letzten arithmetischen Operation trat ein Überlauf auf
Was sind Argumente in Methoden?
Parameter void Funktion1(int a) {
Was ist ein Call Stack?
Ein Call Stack ist ein spezieller Speicherbereich, der von einem Programm zur Verwaltung der Funktionsaufrufe und deren Rückgabeadressen verwendet wird.
Wieso benötigt man einen Call Stack?
Der Call Stack ermöglicht es dem Programm, die Rückgabeadresse für jede Funktion zu speichern, sodass nach Abschluss einer Funktion die Ausführung an die richtige Stelle zurückkehrt.
Wie sieht ein Call Stack aus (Code)?
void functionA() {
functionB();
}
void functionB() {
// Some operations
}
int main() {
functionA();
return 0;
}
Was sind Globale Variablen und für was benötigt man diese?
Globale Variablen werden in separatem Datenbereich gespeichert um überall verwendet zu werden.
Was ist ein Heap
Der Heap ist ein Bereich des Speichers, der zur Laufzeit für dynamische Speicheranforderungen genutzt wird. Wenn die Anzahl und Größe der zur Laufzeit erzeugten Daten zur Kompilierzeit unbekannt sind, wird ein separater Speicherbereich namens Heap verwendet, um dynamisch Speicher allozieren und freigeben zu können.