TGI (Fach) / Technische Grundlagen der Informatik (Lektion)
In dieser Lektion befinden sich 87 Karteikarten
TGI halt
Diese Lektion wurde von Gretheme erstellt.
- In welchem Zustand befindet sich ein Prozess, der auf eine Tastatureingabe wartet? In welchen Zustand geht er über, wenn das Ereignis eintritt? blocked -> ready-to-run
- Nenne einige Randbedingungen, auf die man beim Entwurf eines Schedulers achten sollte. Wie sollten rechenintensive bzw. Ein-/Ausgabe-intensive Prozesse dabei behandelt werden? Nenne einige Randbedingungen, auf die man beim Entwurf eines Schedulers achten sollte. • Fairness: Faire Rechenzeitvergabe für alle Prozesse • Prioritäten: Prozessen unterschiedliche Prioritäten zuzuweisen • Scheduling-Algorithmus: Anforderungen des Systems gerecht zu werden Wie sollten rechenintensive bzw. Ein-/Ausgabe-intensive Prozesse dabei behandelt werden? • sollten immer untereinander faire Zeiteinteilung bekommen • Ein-Ausgabe-intensive Prozesse so schnell wie möglich "zwischengeschoben"
- Was ist ein Interrupt? Wodurch wird er ausgelöst? • Erzwungener Wechsel in den Kernmodus des Betriebssystems • Quellen: Clock-interrupt, Input eines zeitkritischen Eingabegerätes (Tastatur etc.).
- Was ist ein Trap? Wodurch wird er behandelt? • Wird ausgelöst wenn innerhalb eines Prozesses eine illegale Operation gemacht werden soll • Behandlung abhängig welche Art von Trap ausgelöst wurde ∘ Interrupt-Handling-Routine ∘ Trap-Behandlung
- Was passiert mit dem Prozess, der gerade von der CPU verarbeitet wird, wenn eine Unterbrechung stattfindet? • Prozess merkt nichts von dem Interrupt • Kontext wird im Hauptspeicher gespeichert und kann später fortgesetzt werden
- Was ist Relocation? Welches Schwierigkeit bringt die Adressberechnung beim Programmstart mit sich? • Unbekannt wo programm im hauptspeicher ist • Muss mit offset berechnet werden
- Was versteht man unter Paging? (Motivation und charakteristische Merkmale.) • Motivation: Die Fragmentierung des Hauptspeichers bei verschiedenen Prozessen so gering wie möglich halten • Hauptspeicher wird größtenteils in Pageframes mit fester Größe unterteilt • Adressräume der Prozesse wird auf Pages derselben Größe abgebildet • Bei jedem Speicherzugriff wird die relevante Page aufgerufen • Es entsteht eine (akzeptable) Interne Fragmentierung.
- Aus welchen Teilen besteht eine virtuelle Adresse? Wie ermittelt sich daraus die entsprechende Hauptspeicheradresse, d. h. wie läuft die Adressumsetzung in etwa ab? Aus welchen Teilen besteht eine virtuelle Adresse? • Seitentabellen-Index (Page Table Index) • Seitenversatz (Offset) Wie ermittelt sich daraus die entsprechende Hauptspeicheradresse, d. h. wie läuft die Adressumsetzung in etwa ab? • Page-Größe / Virtuelle Adresse = Page-Nr. • Speicherstelle für Page-Nr. in Pagetabelle • Offset = Rest der Division; wird hinzuaddiert
- In welche drei Bereiche ist der virtuelle Adressraum eines Programms in Ausführung grundsätzlich unterteilt, und welche Eigenschaften kennzeichnen diese? • Segment .text: befindet sich das eigentliche Programm mit seinen Instruktionen • Segment .data: befinden sich die Daten mit denen gearbeitet werden soll. • Stack: befinden sich kurzfristig zwischengespeicherte Daten
- Nenne die Bestandteile eines Eintrags in der Pagetabelle (PTE). • Zuordnung der Pages zu Pageframes • Schutzbits (r,w,x) • Flags (present, referenced (recently used), modified)
- Wie arbeiten die Algorithmen FIFO, LFU, LRU, Aging und NRU bzw. dessen Umsetzung Clock-Hand zur Verdrängung von Pages aus dem Hauptspeicher in etwa? • FIFO: Verdrängung der zuerst geladenen Page. • LFU: Verdrängung der am seltensten benutzen Page. • LRU: Verdrängung der am längsten nicht mehr benutzen Page. • Aging: Abstraktion des LRU-Algorithmus von genauen Zeitstempeln zu weniger aufwändigen Zeitfenstern • NRU (not recently used): weitere Abstraktion auf ein R-Bit, das regelmäßig zurückgesetzt wird. • Clockhand: prüft zyklisch das R-Bit: wenn R = 1, setze R = 0. Wenn R = 0, gebe Pageframe frei.
- Was passiert, wenn die Umlaufzeit des Zeigers beim Clock-Hand zu groß bzw. klein gewählt wird? Wie kann ein zweiter Zeiger den Algorithmus verbessern? • Zu groß: Es dauert zu lange, dass Pageframes freigegeben werden, obwohl die Pages nicht mehr Teil des workingsets sind. • Zu klein: Es werden Pages verdrängt, die noch Teil eines workingsets sind. • Zweiter Zeiger: Erster Zeiger setzt nur das R-Bit zurück, der zweite verdrängt ggf.-> gut anpassbar durch Veränderung des Zeigerabstandes.
- Welche Vor- und Nachteile hat der First-Fit- bzw. der Best-Fit-Algorithmus zur Speicherverwaltung? First-Fit-Algorithmus: • Vorteile: ∘ Einfache Implementierung ∘ Schnelle Zuordnung ∘ Geringe Fragmentierung • Nachteile: ∘ Große Lücken ∘ Schlechtere Nutzung des Speichers Best-Fit-Algorithmus: • Vorteile: ∘ Bessere Speicherausnutzung ∘ Geringere Fragmentierung • Nachteile: ∘ Komplexere Implementierung ∘ Langsamere Zuordnung
- Wie arbeitet der Buddy-Algorithmus in etwa? 1. Eine Arena an Speichplatz festgelegt 2. Wird solange halbiert bis das zu speichernde Objekt dort hineinpasst, oder die minimale Blockgröße erreicht wurde 3. Werden diese informationen wieder gelöscht, kann der Block, mit dem er sich geteilt hat, also sein Buddy wieder mit ihm verschmelzen
- Wo tritt interne Fragmentierung, wo externe Fragmentierung auf? Was ist das? Interne Fragmentierung: • Wenn ein Speicherblock oder eine Speicherzelle teilweise mit Daten belegt ist, aber dennoch ungenutzter oder nicht verwendeter Speicherplatz in diesem Block vorhanden ist Externe Fragmentierung: • Wenn der verfügbare Speicherplatz in einem Computersystem in mehrere kleinere Blöcke unterteilt ist, die zwar zusammen ausreichend Speicherplatz für eine Anfrage bieten könnten, aber aufgrund ihrer räumlichen Verteilung nicht als zusammenhängender Block verwendet werden können
- Was passiert, wenn in der Programmiersprache C der Befehl malloc aufgerufen wird? • Memory Allocation (malloc) reserviert zur Laufzeit des Programms auf sichere Art Speicherplatz, z.B. für Felder
-
- Warum sind Festplatten blockorientiert? • Effiziente Methode, um Daten zu lesen, schreiben, verwalten • Effizienter Zugriff: Festplatten sind physisch so aufgebaut, dass der Zugriff auf Daten schneller ist, wenn sie in festen Blöcken gelesen oder geschrieben werden. • Verwaltung des Speicherplatzes: Die Blockgröße ermöglicht eine einfachere Verwaltung des Speicherplatzes auf der Festplatte. • Datensicherheit: Blockorientierung trägt zur Datensicherheit bei. • Caching: Blockorientierung ermöglicht auch eine effiziente Nutzung des Caches in Festplatten-Controllern und im Betriebssystem. • Interoperabilität: Die Verwendung von Blöcken als Standardzugriffseinheit erleichtert die Interoperabilität zwischen verschiedenen Systemen und Dateisystemen.
- Wie ist ein Unix-Dateisystem strukturiert? Wie können Dateien darin eindeutig aufgefunden werden? • Hierarchisch strukturiert und folgt einem Baumstruktur-Layout • Dateien und Verzeichnisse sind in einem einzigen Wurzelverzeichnis organisiert, von dem aus sie in einem Baum aus Unter-Verzeichnissen weiter verzweigen • Dateien können durch Absolute Pfade eindeutig aufgefunden werden • Absolute Pfade beginnen immer mit "/".
- Was ist eine Partition? Wozu wird sie typischerweise verwendet? • Logischer Abschnitt einer physischen Festplatte oder eines anderen Speichermediums • Wird als eigenständiges Laufwerk behandel Nutzungen für Partitionen: • Organisation und Strukturierung • Multiboot-Systeme • Datensicherheit • Datensicherung und Wiederherstellung • Leistungsverbesserung • Datentrennung für Datenschutz und Sicherheit
- Welche Angaben enthält ein Inode? Welche Arten von Verweisen enthält er? • Eine Datenstruktur in einem Unix-Dateisystem • Enthält wichtige Informationen über eine Datei oder ein Verzeichnis • Jede Datei oder jedes Verzeichnis im Unix-Dateisystem hat einen zugehörigen Inode, der als Identifikator und Metadatencontainer dient • Spielen eine entscheidende Rolle bei der Verwaltung von Dateien im Dateisystem. Allgemeine Informationen eines Inode: • Inode-Nummer • Dateityp • Dateiattribute • Dateigröße • Blockzeiger (Verweise)
- Welche Angaben enthält eine Verzeichnis-Datei? • Eine Tabelle mit Inode-Nummer und dem dazugehörigen Dateinamen (kann auch weiteres Verzeichnis sein.)
- Wie ist eine Festplatte physisch aufgebaut/unterteilt? Wie wirkt sich dies auf den Informationszugriff aus? Was ist ein Zylinder? Wie ist eine Festplatte physisch aufgebaut/unterteilt? • Scheiben (pro Scheibe ein Lese-/Schreibkopf) • Spuren auf jeder Scheibe • Sektoren auf jeder Spur • Bytes in jedem Sektor Wie wirkt sich dies auf den Informationszugriff aus? • Lesekopf muss auf richtige Spur • Scheibe muss zum richtigen Sektor • richtiger Lesekopf muss benutzt werden Was ist ein Zylinder? • Gleiche Spur auf verschiedenen Scheiben • brauch nur Lesekopf wechsel
- Was ist ein Geräte-Treiber, was ein Geräte-Controller? Welche Aufgaben haben sie? • Geräte-Treiber: Software, interagiert mit Gerätecontroller, interagiert mit Betriebssystem. • Geräte-Controller: Hardware, steuert das Gerät.
- Warum erfolgt der Zugriff auf Geräte häufig über Warteschlangen? Wozu besitzen diese in der Regel eine High Water Mark bzw. eine Low Water Mark? Warum erfolgt der Zugriff auf Geräte häufig über Warteschlangen? • Anweisungen können zwischengespeichert werden ∘ Gerät kann von der CPU enkoppelt werden • Gerät kann arbeiten, obwohl die CPU aktuell andere Prozesse bearbeitet • Vermeidet Interrupts Wozu besitzen diese in der Regel eine High Water Mark bzw. eine Low Water Mark? • HWM: Interrupt auslösen, wenn der Puffer droht überzulaufen • LWM: Interrupt auslösen, wenn der Puffer nahezu leer ist
- Wozu dienen Journaling-Dateisysteme? Welche beiden Varianten werden typischerweise unterschieden? • Anstehende Änderungen werden in einem Journal vermerkt • Im Falle eines Festplattenausfalls kann das Journal ausgewertet und nachvollzogen werden was geändert werden sollte und was schon verändert wurde • logisches Journal: Es wird nur gespeichert was verändert werden soll • physisches Journal: Es wird zusätzlich gekennzeichnet welche Änderungen bereits abgeschlossen wurden
- Was ist ein RAID (Redundant Array of Independent Disks)? Welche Eigenschaften zeichnen die unterschiedlichen RAID-Level jeweils aus? • Zusammenschluss aus mehreren Festplatten mit verschiedenen Aufgaben • RAID 0: Vervielfachung des verfügbaren Speichers ohne Sicherheiten • RAID 1: 1:1 Sicherheitskopie • RAID 5: Redundanz über Speichermedien verteilt, ein Speichermedium kann ohne Datenverlust ausfallen • RAID 6: wie Level 5, aber 2 Speichermedien können ausfallen, komplexere Berechnung der ausgefallenen Daten
- Wie unterscheiden sich Solid-State Drives (SSDs) von mechanischen Festplatten (HDDs)? • Besteht aus unbeweglichen Teilen, sind also robuster • Flash-Speicher, Speicher besteht aus Pages, auf Halbleitern gespeichert • Jede Speicheroperation setzt ein vorheriges Löschen voraus (deutlich langsamer als nur Lesen)
- Was ist Direct Memory Access (DMA)? • Wird benutzt um einen Festplattenzugriff ohne CPU-Beteiligung zu ermöglichen • DMA-Controller wird der Auftrag erteilt den Zugriff auf einen bestimmten Speicherbereich zu lesen und in den Hauptspeicher zu kopieren
- Grenze die Begriffe Nebenläufigkeit, Quasi-Parallelität und Parallelität voneinander ab. Was versteht man unter Nicht-Determinismus? • Nebenläufigkeit: Prozess B beginnt, wenn Prozess A noch nicht abgeschlossen ist • Parallelität: mehrere Prozesse echt gleichzeitig • Quasi-Parallelität: mehrere Prozesse zeitlich verschränkt • Nicht-Determinismus: wenn nicht klar ist, was genau als nächstes gemacht wird
- Was ist ein kritischer Abschnitt? Wie kann man hier den gegenseitigen Ausschluss gewährleisten (zum einen grundsätzlich, zum anderen durch verschiedene Mechanismen)? • Abschnitt in einem Programm bei dem zwei verschiedene Threads auf die selbe globale Variable zugreifen und sie verändern • Ausschluss kann gewährleistet werden, indem der erste Thread der einen kritischen Abschnitt betritt das alleinige Ausführungsrecht für die Dauer dieses kritischen Abschnitts bekommt • Wenn der kritische Abschnitt wieder verlassen wird, kann der nächste Thread einen kritischen Abschnitt betreten
- Warum ist in diesem Bereich eine Betrachtung auf der Grundlage von atomaren bzw. unteilbaren Operationen erforderlich, auch bei der Bewertung von Locking-Algorithmen? • Wenn Operationen nicht atomar, könnte durch Scheduling-Algorithmen die Ausführung während des Lock-Vorgangs einem anderen Prozess zugesprochen werden -> kritischer Abschnitt ist nicht geschützt.
- Wie funktioniert aktives Warten mit Hardware-Unterstützung in etwa? • Auf einen kritischen abschnitt wartende Thread prüft aktiv ob der kritische Abschnitt frei ist • Mithilfe Funktion xchg wird der Wert aus einem Register mit dem einer Speicherstelle !atomar! getauscht • Wenn Wert in der Speicherstelle vor dem Tausch 0 enthielt wird die Warteschleife verlassen
-
- Was ist blockierendes Warten? Welche Probleme könnte es beim Aufwecken von Threads geben? Was ist blockierendes Warten? • Wartender Thread in den Zustand Blocked versetzt • Wird durch Betriebssystem wieder aufgeweckt wenn kritischer Abschnitt frei Welche Probleme könnte es beim Aufwecken von Threads geben? • Wenn mehrere Threads selbes lock haben, werden sich gleichzeitig aufgeweckt • Wählt einen Thread aus und blockiert alle anderen • Kostet viel Zeit und Ressourcen
- Was ist ein Semaphor? Wie unterscheidet sich ein Semaphor von einem Mutex/Lock? Wie werden Semaphoren eingesetzt, um einen kritischen Abschnitt zu schützen? Für welche Anwendungszwecke eignen sich Semaphoren außerdem noch? • Weitere Möglichkeit kritische Abschnitte zu schützen • Erweitert das blockierende Warten um eine Warteschlange und einen Zähler
- Was ist eine Verklemmung (Deadlock)? Auf welche verschiedenen Arten kann man eine solche angehen? • Tritt auf, wenn eine zyklische Abhängigkeit von Ressourcen besteht Auf welche verschiedenen Arten kann man eine solche angehen? • Verklemmungserkennungsalgorithmus • Prävention • Zyklische Ressourcenzuordnungsvermeidung
- Beschreibe das Problem der speisenden Philosophen. Welche typische Betriebssystem Aufgabe wird damit verdeutlicht? • Runder Tisch mit einem Philosophen mit je einer Reisschale, einem Stäbchen. • Jeder Philosoph nimmt das rechte Stäbchen auf und wartet auf das linke. • Damit wird die Aufgabe des gegenseitigen Ausschlusses von Prozessen in kritischen Abschnitten verdeutlicht.
- Beschreibe das Erzeuger/Verbraucher-Problem. • Erzeuger: Produktionsinstanz erzeugt Produkte, die von der Verbraucherinstanz verbraucht werden können • Verbraucher: Es können nur Produkte verbraucht werden, die auch produziert wurden • Lösung: Beide Instanzen müssen so synchronisiert werden, dass nur verbraucht wird, wenn auch ein Produkt produziert wurde