TGI 1

Technische Grundlagen der Informatik, Nordakademie - Elmshorn SM 1/1-51; JB 1/52-82; NR 1/83-92; BR 1/93-131; NR 2/1-27; JJ 2/28-63

Technische Grundlagen der Informatik, Nordakademie - Elmshorn SM 1/1-51; JB 1/52-82; NR 1/83-92; BR 1/93-131; NR 2/1-27; JJ 2/28-63


J. J.
Diese Lernkarten decken fortgeschrittene Themen der Informatik auf Universitätsniveau ab, mit Fokus auf Prozesse, Dateisysteme und Betriebssysteme. Sie behandeln Themen wie Scheduling-Strategien, Dateiverwaltung, Blockzugriff und Speicherorganisation, einschließlich der Nutzung von Journaling-Dateisystemen und I-Nodes. Die Karteikarten sind besonders nützlich für Studierende und Fachleute, die ihr Verständnis von Systemressourcen und Dateiverwaltung vertiefen möchten, um effizientere und zuverlässigere Systeme zu entwickeln.
Karten
199
Lernende
13
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
24.08.2015 / 14.05.2023

Lernkarten

WIe kann man typischerweise das Erzeuger-Verbraucher-Problem lösen?

Das Erzeuger-Verbraucher-Problem wird mit Mechanismen der Prozesssynchronisation gelöst. In den meisten Lösungsbeschreibungen werden Semaphore verwendet, da diese außer dem wechselseitigen Ausschluss bei der Ausführung kritischer Abschnitte auch die zuvor verlangte Kooperation zwischen Prozessen unterstützen.

Was ist ein Semaphor?

Ein Semaphor ist eine Datenstruktur, die aus einer Ganzzahl und zwei Nutzungsoperationen (Down und Up) besteht. Beide Operationen müssen unteilbare Anweisungen sein.

Semaphor eignen sich insbesondere zur Verwaltung...

...beschränkter (zählbarer) Ressourcen, auf die mehrere Prozesse oder Threads zugreifen sollen, wie etwa Erzeuger und Verbraucher.

Welche beiden Operationen sind für ein Semaphor definiert?

Semaphore-Zähler = maximale Zahl der Prozesse, die gleichzeitig die Ressource nutzen können

Down:

  • Prüfe, ob der Zähler größer als Null ist
  • Wenn ja: Erniedrige den Zähler um Eins und führe Prozess fort bzw. mache weiter
  • Wenn nein: Unterbreche sofort (SLEEP)

UP: 

  • Prüfe, ob es wartende Prozesse für die Semaphore gibt
  • Wenn ja: Wecke einen der Prozesse wieder auf (WAKEUP)
  • Wenn nein: Erhöhe den Wert der Semaphore um Eins

Beide Operationen müssen unteilbare Anweisungen sein

Wann befindet sich eine Menge von Prozessen in einem Deadlock?

Eine Menge von Prozessen befindet sich in einem Deadlock-Zustand, wenn jeder Prozess aus der Menge auf ein Ereignis wartet, das nur ein anderer Prozess aus der Menge auslösen kann.

Welche Voraussetzungen müssen für einen Deadlock bestehen?

  1. Wechselseitiger Auschluss (Ressource ist entweder verfügbar oder genau einem Prozess zugeordnet)
  2. Halt-und-Wart-Bedingung (Prozesse mit reservierten Ressourcen dürfen/müssen weitere Ressourcen anfordern)
  3. Ununterbrechbarkeit (Reservierte Ressourcen können nicht entzogen werden, sondern müssen freigegeben werden)
  4. Zyklische Wartebedingung (Jeder Prozess wartet auf eine Ressource, die dem nächsten Prozess in einer Kette gehört).

Welche Grundvoraussetzungen (vom System) müssen erfüllt sein, dass ein Deadlock eintreten kann?

Verklemmungen können bei Systemen eintreten, die fähig sind, mehrere Prozesse parallel ablaufen zu lassen (Multitasksysteme) und bei denen die Reihenfolge der Betriebsmittelvergabe nicht festgelegt ist.

Welchen einfachen Ansatz stellt der Vogel-Strauß-Algorithmus dar? 

Als Konsequenz daraus folgt, dass dieser Deadlock nie aufgelöst werden kann – die Threads warten bis in alle Unendlichkeit auf die Betriebsmittel oder werden „von außen“ aus dem Zustand befreit (im Regelfall, indem man sie abbricht).

Welche Möglichkeiten gibt es mit Deadlocks umzugehen?

  • Deadlocks erkennen und beseitigen
  • Deadlocks verhindern durch vorsichtiges Ressourcenmanagement
  • Deadlocks unmöglich machen durch Abschaffen mindestens einer Voraussetzung
  • Deadlocks ignorieren (Vogel-Strauß-Algorithmus)

Welche Möglichkeiten gibt es zur Erkennung von Deadlocks bei einer Ressource pro Ressourcentyp?

Nutzung eines gerichten Graphen

Prozesse, die eine Ressource bereits belegen, sind davon abhängig

Ressourcen, die von einem Prozess angefordert werden, sind davon abhängig

Treten Zyklen in diesem Graph auf, ist ein Deadlock entstanden und kann die beteiligten Prozesse und Ressourcen identifizieren

Welche Möglichkeiten gibt es zur Erkennung von Deadlocks bei mehreren Ressourcen pro Ressourcentyp?

Nutzung eines Verfahren mit einem Ressourcenvektor, einem Ressourcenrestvektor, einer Belegungsmatrix und einer Anforderungsmatrix

Was versteht man unter Random-Access-Dateien?

Ein Speicherzugriff ist wahlfrei, oder direkt, wenn auf jede Speicherzelle in beliebiger Reihenfolge zugegriffen werden kann. Dies erfolgt i.d.R. über den Schlüssel und nicht über die Positionsangaben.

Diese Zugriffsart ist essentiell für viele Anwendungen wie z.B. Datenbanksysteme.

Die Angabe des Schlüssels geschieht direkt bei der READ-Operation oder durch Nutzung der SEEK-Operation

Wie können Deadlocks beseitigt werden?

  • Durch Unterbrechung und temporäre Freigabe (bspw. durch Operator im Mainframe-Batch-Betrieb)
    • Prozess mit kritischer Ressource wird zeitweilig aufgehoben
    • Zweite Prozess kann die nun freie Ressource nutzen
    • Danach wird die Ressource wieder dem ersten Prozess zugeordnet und der Prozess kann weiterlaufen
  • Durch teilweise Wiederholen (Rollback)
    • In regelmäßigen Abständen werden Checkpoints geschrieben
    • Tritt ein Deadlock auf, wird auf einen Checkpoint zurückgesetzt, zu dem dieser Prozess die kritische Ressource noch nicht hatte
  • Durch Prozessabbruch
    • Schrittweier Abbruch verklemter Prozesse bis Deadlock beseitigt (Extremfall: alle werden abgebrochen)

Wie können Deadlock verhindert werden?

  • Betrachtung der Betriebsmittelanforderungen als gleichzeitig auftretende Maximalanforderung
  • Ressourcen nur zuteilen, wenn dies garantiert sicher ist
  • Bankier-Algorithmus

Bei welchen Systemen ist eine Einteilung des Dateizugriffs notwendig, um die verwendbaren Speichertechniken ermitteln zu können?

Dies ist hauptsächlich bei älteren (insb. Mainframe-) Systemen notwendig.

Nenne 6 übliche Dateiattribute!

  • Aktuelle Größe (ggf. auch maximale Größe)
  • Erstellungszeitpunkt
  • Letzte Änderung
  • Letzter Zugriff
  • Ersteller
  • Eigentümer
  • Flags
    • Read-only (nur lesend oder auch schreibenden Zugriff)
    • Hidden (ob Datei in Auflistungen auftauchen oder versteckt werden soll)
    • System (ob Dateien von "normalen" Benutzern gesehen und ggf. verändert werden kann)
    • Temporary (ob die Datei bei Prozessende zu löschen ist)

Nenne 6 übliche Dateioperationen und beschreiben deren Funktion!

  • CREATE (Erzeugen ohne Daten und Attribute setzen)
  • DELETE (Freigeben des verwendeten Speicherplatzes)
  • OPEN (Öffnen um Attribute auszuwerten; vor Nutzung)
  • READ (Lesen unter Angebe eines Puffers von aktueller oder angegebener Position)
  • WRITE (Überschreiben, wenn in der Datei positioniert; Anfügen, wenn Position am Ende der Datei)
  • APPEND (Anfügen als Spezialform der WRITE-Operation)
  • SEEK (Positioniert den Dateizeiger bei wahlfreiem Zugriff)
  • RENAME (Ändert den Dateinamen)
  • GET-/SET-ATTRIBUTE (Lesen/Ändern der Dateiattribute soweit erlaubt)

Wie arbeitet der Bankier-Algorithmius? Und welche Ressourcen werden benötigt?

  • Die Ressourcen
    • gesamte Ressourcen
    • verfügbare Ressourcen
  • Prozesse
    • eingesetzten Ressourcen
    • benötigten Ressourcen.

Alle Prozesse - sofern die Ausführung möglich ist - werden nacheinander abgearbeitet und die belegten den verfügbaren Ressourcen zugeführt.

Nach Ausführung des Algorithmus steht fest, ob eine Verklemmung vermeidbar ist oder nicht.

Kann es zu einer Verklemmung kommen, obwohl der Bankieralgorithmus zu einem erfolgreichen Ende kam?

Kommt der Bankieralgorithmus zu einem erfolgreichen Ende, kann unter Umständen durch unbedachte Ausführungsreihenfolge der Prozesse trotzdem ein Deadlock entstehen

Wie können Deadlocks theoretisch unmöglich gemacht werden? 

  • Wechselseitigen Ausschluss verhindern
    • i.A. nicht möglich
      • da wechselseitiger Ausschuss Race Conditions verhindert 
        • und damit kein Prozess in einen kritischen Abschnitt läuft
  • Zusätzliche Bertiebsmittelanforderugen verbieten
    • z.B. Anforderung aller benötigten Bertiebsmittel zu Prozessbeginn
      • alle Ressourcen müssten beim Start eines Programms eingebunden werden - Praxis untauglich
  • Wiederherstellung der Unterbrechbarkeit
    • könnte durch Ressourcenentzug realisiert werden - nicht immer praktikabel
  • Zyklisches Warten verhindern
    • z.B. durch Festlegen einer linearen Ordnung aller Betriebsmittel
      • Nachteil: Vernünftige Ordnung kann kaum gefunden werden

Wann können Deadlocks ignoriert werden?

  • Möglich wenn...
    • Deadlocks nur selten auftreten
    • Kosten für die Verhinderung, Erkennung und/oder Beseitigung sehr hoch sind
  • Abwägung zwischen Korrektheit und Bequemlichkeit

Welche dieser Eigenschaften über Computert sind war?

Welche Eigenschaften stimmen bei Rechnern?

Welche dieser Aussagen stimmen über die Mehrschichtigkeit eines Rechners.

Was ist ein Interpreter?

Ein Interpreter ist ein Programm, dass Instruktionen einer Sprache nacheinander als enstsprechende Instruktionsfolgen der Maschinensprache ausführt.

Was ist ein Compiler?

Ein Compiler ist ein Programm, welches Instruktionen einer neuen Sprache durch Instruktionsfolgen der Maschinensprache ersetzt, sodass das neu enstandene Programm von der Maschine ausgeführt werden kann.

Was stimmt über die Mehrschichtigkeit eines Rechners?

Was ist der Taktgeber und warum wird er eingestetzt?

Ein Taktgeber ist eine Einheit, welche zykliche Takte ausgibt. Ein Takt ist dabei das Zeitintervall zwischen enstprechenden Kanten zweier aufeinanderfolgender Impulse. Der Takt wird dabei bennötigt, da digitale Schaltungen eine gewisse Zeit brauchen, bis sie einen stabilen Zustand erreicht haben. Außerdem ist es in vielen Schaltungen nochtwendig, dass eine gewissen Reihenfolge eingehalten wird, dieses ist mithilfe des Taktgebers möglich.

Was bedeutet Kompaktifizierung und wie geht man dabei vor?

Keine Lücke ist groß genug, die Summe mehrerer Lücken würde aber ausreichen.

Vorgehen: Platz schaffen durch Verschieben der Segmente.

Ordne folgende Begriffe zum Thema Adressen bei Segmentierung richtig zu: logische Adresse, phyisische Adresse, Segmentnummer, Segment-Basisadresse, Wort-Adresse (Offset)

Lösung:

1. Wir unterteilen den logischen Hauptspeicher in Einheiten einer bestimmten Größe. Wie werden diese genannt?

2. Wie wird die logische Adresse in eine Seitennummer und einen Offset geteilt (mit p Speicherzellen einer Seite, logischer Adresse v, Seite s und Offset d)?

 

1. Seiten (page)

2. Eine Seite habe p Speicherzellen, die logische (virtuelle) Adresse v liegt dann in Seite s und Offset d wobei s = v div p und d = v mod p

Beim Paging ist auch der physische Speicher unterteilt. Wie nennt man die einzelnen Stücke und was ist die typische Größe für die einzelnen Stücke?

Die einzelnen Stücke werden Seitenrahmen (page frame) genannt und haben eine typische Größe von 512 Byte - 8 KB.

Thema Seitentabelle:

Welche Informationen zu allen Seiten eines Prozesses beinhaltet eine Tabelle?

- Seitennummer

- zugehörige Rahmennummer

- Zugriffsattribute (protection-bit)

- wurde verändert (dirty-bit)

Was ist der Nachteil an der Idee, die Seitentabelle in einem reservierten Teil des Hauptspeichers abzulegen und wie sollte man die Seitentabelle besser stattdessen unterbringen?

Nachteil an dieser Idee ist, dass jeder Zugriff zu einer virtuellen Adresse zwei physische Speicherzugriffe bräuchte.

Die Seitentabelle muss in viel schnelleren (und teureren) Speichern untergebracht werden.

Lösungsansatz:

- nur die aktuell benutzten Einträge der Seitentabelle werden in schnellen Speichern gehalten, die komplette Seitentabelle im Hauptspeicher.

- Assoziativspeicher (TLB, Translation Lookaside Buffer)

1. Wofür steht TLB und was wird im TLB abgelegt?

2. Wie viele Einträge enthält ein TLB?

3. Was ist TLB hit und TLB miss?

1. TLB: Translation Look aside Buffer; ein Teil der Seitentabelle, genau gesagt die aktuell benutzten Einträge, werden in einem schnellen Assoziativspeicher (TLB) abgelegt.

2. 8-16 Einträge

3. TLB hit: wenn im TLB eine gesuchte Seitennummer vorhanden ist, wird die zugehörige Seitenrahmennmmer ausgegeben.

TLB miss: wenn die gesuchte Seitennummer nicht vorhanden ist, wird die zugehörige Seitenrahmennummer aus der Seitentabelle geholt und in die TLB eingetragen.

Thema Seitenein- und -auslagerung:

1. Welche 2 Fälle können beim Zugriff auf eine Seite auftreten?

2. Was ist, wenn schon alle Seitenrahmen belegt sind?

3. Was bedeutet Demand Paging?

1.  - Seite befinde sich im Hauptspeicher

- Seite befindet sich nich im Hauptspeicher (Seitenfehler) --> Seite einlagern

2. "Opfer" aussuchen und Seite auslagern

3. Seiten werden immer erst bei Bedarf eingelagert.

Wenn alle Rahmen im Hauptspeicher belegt sind und eine neue Seite eingelagert werden muss, ist Auslagerung notwendig. Was ist das Ziel der Seitenauslagerung?

Das Ziel der Seitenauslagerung ist die Auswahl der auszulagernden Seiten, so dass (langfristig gesehen) möglichst wenig Auslagerungen notwendig werden.

(Seitenfehler kosten Zeit!)

 

Nenne die 5 häufig verwendeten Strategien zur Seitenauslagerung!

- Least-Recently-Used-Strategie (LRU)

- Not-Recently-Used-Strategie (NRU)

- First-In-First-Out-Strategie (FIFO)

- Second Chance

- Clock-Algorithmus

Seitenauslagerungsstrategien - die optimale Strategie

Gegeben ist ein System mit 3 Seitenrahmen Platz im Hauptspeicher und einem ausreichend großem Platz im Hintergrundspeicher.

Die Referenzreihenfolge für den Seitenzugriff ist wie folgt:

0, 1, 2, 3, 1, 4, 5, 0, 2, 6, 4, 5, 6, 3, 5, ...

 

Zeichne eine Darstellung für die optimale Strategie.

 

Lösung:

Seitenauslagerungsstrategien - LRU Strategie

Gegeben ist ein System mit 3 Seitenrahmen Platz im Hauptspeicher und einem ausreichend großem Platz im Hintergrundspeicher.

Die Referenzreihenfolge für den Seitenzugriff ist wie folgt:

0, 1, 2, 3, 1, 4, 5, 0, 2, 2, 5, 4, 6, ...

 

Zeichne eine Darstellung für die LRU-Strategie.

Lösung:

Lernen