Technische Grundlagen 1 - Q1
Wirtschaftsinformatik, Technische Grundlagen der Informatik 1, 1. Semester - Begriffsdefinition - Geschichte - Computerhardware (Informationsdarstellung, Rechnerorganisation) - Grundlagen von Betriebssystemen
Wirtschaftsinformatik, Technische Grundlagen der Informatik 1, 1. Semester - Begriffsdefinition - Geschichte - Computerhardware (Informationsdarstellung, Rechnerorganisation) - Grundlagen von Betriebssystemen
-
- 1 / 186
-
Flashcards
Was passiert bei der First-Come-First-Served-Strategie (FCFS)?
- Implementation analog zu Round Robin
- Unterschied: non-preemptive
- Vorteil: kein "Verhungern" von Prozessen
- Nachteil: kurze Prozesse müssen eventuell lange warten
Was passiert bei der Shortest Job First-Strategie (SJF)?
- analog zu Shortest Remaining Time First
- Unterschied: non-preemptive
Was passiert beim Priority Scheduling?
- Vergabe von Prioritäten bei der Erzeugung von Prozessen
- statische oder dynamische Prioritätenvergabe möglich
- statisch kann zum Verhungern von Prozessen führen
- hauptsächlich Berücksichtigung der Priorität bei Abarbeitung der Prozesse
Was erfordert eine Interprozesskommunikation?
Aufteilen von Programmen in verschiedene Prozesse/Threads führt i.d.R. zur Notwendigkeit, Informationen zwischen den Prozessen auszutauschen.
Wie wird Interprozesskommunikation technisch umgesetzt?
gemeinsam genutzter Speicher
- bei Threads des gleichen Prozesses einfach (gemeinsamer virtueller Adressraum, gemeinsame Dateien)
- bei Prozessen Nutzung gemeinsamen Hauptspeichers (Abbildung verschiedener virtueller Adressen auf dieselben physischen Adressen) oder gemeinsamer Dateien
- Verwaltung des mehrfachen Zugriffs durch Betriebssystem
Was beschreiben Race Conditions?
Situationen, in denen das Endergebnis von der Reihenfolge der Abarbeitung der Prozesse abhängt (äußerst unangenehm in der Fehleranalyse)
Nennen Sie ein Beispiel für eine Race Condition.
- 2 Prozesse haben je einen Druckauftrag
- Queue arbeitet mit Ringpuffer und 2 Zeigern
- A liest Zeiger x für nächsten freien Druckauftrag aus, anschließend Unterbrechung von A
- B liest ebenfalls Zeiger (immer noch x) aus und trägt dort Datei mit Druckauftrag ein
- Aktivierung von A, A fährt fort, indem er seinen Druckauftrag in Ringpuffer an Stelle x schreibt
--> Druckauftrag von B wurde überschrieben
Was versteht man unter kritischen Abschnitten/Regionen?
Abschnitte eines Programms, in denen gemeinsam genutzter Speicher verwendet wird --> es sollte verhindert werden, dass dies durch zwei oder mehr Prozesse quasi gleichzeitig geschieht
Welche Möglichkeiten gibt es, gleichzeitige Nutzung kritischer Abschnitte zu vermeiden?
TSL-Anweisung (test and set lock)
Sleep and Wakeup
Semaphoren (Dijkstra)
Was enthält die TSL-Anweisung?
- Einführung einer unteilbaren (!) Hardware-Anweisung, die eine Speicherstelle LOCK ausliest, dessen Inhalt in Register RX ablegt und in der Speicherstelle LOCK einen Wert ungleich 0 ablegt
- jeder weitere Prozess, der auf Speicherstelle zugreifen will, macht das ebenso und vergleicht, ob in RX eine 0 steht
- da das nicht der Fall ist, solange der erste Prozess nicht fertig ist und wieder eine 0 in LOCK abgelegt hat, kann er nicht mit dem Zugriff auf die Speicherstelle fortfahren, sondern wiederholt den Vergleich - bis der erste Prozess fertig ist
Was passiert beim Sleep and Wakeup?
- Nachteil der TSL-Anwendung: aktives Warten, Verschwendung von Rechenzeit
- Einführung zweier Systemaufrufe: Sleep (blockiert Prozess) und Wakeup (Aufheben der Blockade)
- Wakeup benennt den aufzuweckenden Prozess ODER Sleep und Wakeup nutzen gemeinsame Speicheradresse
Was sind die Semaphoren?
- Semaphore = spezielle Ganzzahl-Variable
- Definition von zwei unteilbaren Operationen Down und Up
- Down: Prüfe, ob Wert > 0. Ja: Erniedrigen des Wertes um 1 und fortfahren. Nein: Unterbrechen wie bei SLEEP
- Up: Prüfe, ob wartende Prozesse für Semaphore vorhanden. Ja: Aufwecken eines Prozesses (wie WAKEUP). Nein: Erhöhen der Semaphore um 1.
- Beim Aufruf der Funktion wird Wert der Variable überprüft. Bei 0 wird Prozess das Betreten des kritischen Abschnittes, bzw. die Belegung des Betriebsmittels verweigert.
Was sind Deadlocks?
"Menge von Prozessen befindet sich in einem Deadlock, wenn jeder Prozess aus der Menge auf ein Ereignis wartet, das nur ein anderer Prozess aus der Menge auslösen kann." (Tanenbaum)
Was sind Voraussetzungen für einen Deadlock?
- wechselseitiger Ausschluss (Rssource entweder verfügbar oder genau einem Prozess zugeordnet)
- Hold-and-Wait-Bedingung (Prozesse mit reservierten Ressourcen dürfen weitere anfordern)
- Ununterbrechbarkeit (reservierte Ressourcen können nicht entzogen werden)
- zyklische Wartebedingung (jeder Prozess wartet auf eine Ressource, die dem nächsten in einer Kette gehört)
Welche Möglichkeiten gibt es beim Umgang mit Deadlocks?
- Deadlocks erkennen und beseitigen
- Deadlocks verhindern durch vorsichtiges Ressourcenmanagement
- Deadlocks unmöglich machen durch Abschaffen min. einer Voraussetzung
- Deadlocks ignorieren (Vogel-Strauß-Algorithmus)
Wie kann man Deadlocks bei einer Ressource pro Ressourcentyp erkennen?
eine Ressource pro Ressourcentyp:
- Nutzung eines gerichteten Graphen, von dem Prozesse, die bereits eine Ressource belegen, und Prozesse, die Ressourcen anfordern, abhängig sind
- beim Auftreten von Zyklen in dem Graph --> Deadlock entstanden, beteiligte Prozesse und Ressourcen können identifiziert werden
Welche Möglichkeiten gibt es, Deadlocks zu beseitigen?
- Unterbrechung und temporäre Freigabe
- teilweises Wiederholen
- Prozessabbruch
Welche Aktionen werden durchgeführt, um einen Deadlock durch Unterbrechung und temporäre Freigabe zu beseitigen?
- Suspendieren des Prozesses mit der kritischen Ressource
- Nutzung der nun freien kritischen Ressource durch den zweiten Prozess
- anschließende Wiederzuordnung der Ressource zum ersten Prozess
Welche Aktionen werden durchgeführt, um einen Deadlock durch teilweises Wiederholen zu beseitigen?
- regelmäßiges Schreiben von Checkpoints
- bei Auftreten eines Deadlocks Zurücksetzen bis zu dem Checkpoint, zu dem der Prozess die kritische Ressource noch nicht hatte
Welche Aktionen werden durchgeführt, um einen Deadlock durch einen Prozessabbruch zu beseitigen?
Schrittweises Abbrechen verklemmter Prozesse bis zur Beseitigung des Deadlocks (Extremfall: Abbrechen aller Prozesse)
Mit welchem Algorithmus können Deadlocks verhindert werden und was beinhaltet er?
- maximales Ressourcenlimit
- Bedienung von Anfragen nach Ressourcen nur, wenn kein Deadlock vorliegt und es eine Reihenfolge gibt, die nicht zum Deadlock führt
- Beispiel:
Prozess A hat 3 und braucht 9 Ressourcen, B hat 2 und braucht 4, C hat 2 und braucht 7
3 Ressourcen sind noch frei
--> A und C können mit den 3 Ressourcen nicht zu Ende arbeiten, daher bekommt B sie
Welche Möglichkeiten gibt es, Deadlocks unmöglich zu machen?
- Verhindern von wechselseitigem Ausschluss (im Allgemeinen nicht möglich)
- Verbieten zusätzlicher Betriebsmittelanforderungen
- Wiederherstellung der Unterbrechbarkeit (z.B. durch Ressourcenentzug, nicht immer praktikabel)
- Verhindern vom zyklischen Warten (z.B. durch Festlegen einer linearen Ordnung aller Betriebsmittel, Finden vernünftiger Ordnung jedoch kaum möglich)
Wann ist das Ignorieren von Deadlocks möglich?
- nur seltenes Auftreten von Deadlocks
- sehr hohe Kosten für Verhinderung, Erkennung und/oder Beseitigung von Deadlocks
- Abwägung zwischen Korrektheit und Bequemlichkeit
Was ist die CISC-Architektur?
Complex Instruction Set Computer
- viele, mittels Mikroprogramm und Interpreter realisierte Instruktionen
- großer Befehlsumfang und komplexe Adressierungsmöglichkeiten
Was ist eines RISC-Architektur?
Reduced Instruction Set Computer
- wenige, dafür vollständig in Hardware implementierte Instruktionen
- Beschränkung auf wirklich notwendige Befehle
Was ist DMA (Direct Memory Access)?
- Schaltungs- und Steuermaßnahme, die über spezielle Datenleitungen auf dem Motherboard eine Verbindung zwischen Erweiterungen/Peripherie und dem Arbeitsspeicher herstellt --> Schreiben der Daten direkt in den Speicher, ohne Umweg über den Prozessor
- Nutzung bei Ein-/Ausgabegeräten, die Daten mit hoher Geschwindigkeit übertragen können
- Problem: DMA-Controller konkurrieren mit dem Prozessor um Bus- und Speicherzugriff