Betriebssysteme

WS 13/14 HTWG

WS 13/14 HTWG


Julie Tharlop
Diese Lernkarten behandeln grundlegende und fortgeschrittene Konzepte von Betriebssystemen auf Universitätsniveau. Sie decken Themen wie Prozesse, Threads, Kernel, E/A-Management, Synchronisation und Speicherverwaltung ab. Besonders relevant sind Mechanismen wie Semaphore, Monitore, Pufferarten und Adressierung. Studierende der Informatik profitieren davon, um ein tiefes Verständnis der Funktionsweise und Implementierung von Betriebssystemen zu erlangen.
Cartes-fiches
135
Utilisateurs
11
Langue
Allemand
Catégorie
Informatique
Niveau
Université
Créé / Mis à jour
28.01.2014 / 04.07.2022

Cartes-fiches

Welche Synchronisierungsarten gibt es?

Signale / Pipe / Semaphore / Monitor / Botschaften

Was heißt DMA?

Direct Memory Access: Speicherzugriff direkt auf den Arbeitsspeicher, statt (wie früher) den Umweg über die CPU zu nehmen.

Was bedeutes es wenn ein Prozess verdrängt wird?

Der Scheduler bestimmt einen anderen Prozess der laufen darf. Der verdrängte Prozess bleibt rechenbereit.

Was ist der Zweck eines Systemaufrufs in einem Betriebssystems?

Ein Systemaufruf erlaubt dem Benutzer Betriebsystemfunktionen des Kerns aufzurufen und auszuführen.

Was ist der Unterschied zwischen konkurrierenden Prozessen und kooperrierenden?

  • Konkurrierende Prozesse wollen Zugriff auf die gleiche Ressource und sind sich ihrerer gegenseitigen Existens meißtens nicht bewusst
  • Kooperierende Prozesse, greifen auch auf die gleiche Ressource zu, da sie sich aber kennen, können sie den Zugriff synchronisieren

Unterschied Seite, Segment?

Programme werden in Segemente aufgeteilt -->Segmente können größer als Seiten sein. 

In welcher Beziehung stehen FIFO und Clock zu einander?

Clock ist wie FIFO, nur gibt es noch zusätzlich ein USE-Bit, dass einem Eintrag die Möglichkeit einer "2.Chance" einräumt.

Welche Schnittstellen werden für Dateien und E/A Geräte benutzt?

open, write, read, close

User-Level-Threads sind (in diesem Fall) mit einem Scheduling Verfahren realisiert, bei dem jede Sekunde der Thread gewechselt wird. Welche Probleme könnten auftreten und wie könnte man es lösen?

Das Zeitsignal könnte in einem kritischen Bereich auftreten (z.B. bei manipulierung der Thread-Queue) --> führt zu inkonstenten Daten

Lösung: Signal zwischenspeichern und nach umsortieren der Queues prüfen ob ein Signal aufgetreten ist.

Wie kann zyklisches Warten verhindert werden?

Festlegen einer linearen Reihenfolge.

Ziel von Realzeit (Echtzeit) Systemen?

Die Antwort/Reaktions-Zeit muss inerhalb eines definierten Intervalls geschehen! Beispiel: Airbag.

Erreicht eine Multithreadinganwendung mit User-Level-Threads auf einem Multiprozessor System eine höhere Performance als auf einem SMP

Nein, da der Kernel die Threads als einen einzigen Prozess auffasst und diesen nicht auf mehre Prozessoren aufteilen kann.

Was ist das Resultat von wait()?

-1 bei Fehler oder die PID des beendeten Kind Prozesses

Warum hat fork() keine Parameter?

??

Was ist die CLI?

Command Line Interface ( Konsole :)  )

Gibt es aus den folgenden Prozesszustandsübergängen noch weitere:

blocked -> ready

ready -> running

running->ready

running->blocked

blocked -> running: falls kein andere Prozess in der ready queue ist

ready -> blocked ist nicht möglich, da der Prozess wenigstens kurz laufen muss um zu blockieren.

Funktionieren Semaphore auch mit User-Level Threads?

nein, da dann der gesamte Prozess blockiert und nie wieder aufgeweckt wird.

Was ist das Lokallitätsprinzip?

Befehle und Daten eines Prozesses liegen "nah" beieinander im Adressraum.

Was ist der Unterschied zwischen blockierend und nicht blockierend im Zusammenhang mit Nachrichten?

Senden: 

  • Blockierend: Sender wartet, bis Nachricht empfangen wird
  • nicht Blockierend: Sender kann fortfahren in der Bearbeitung

Empfangen:

  • blockiert bis er eine Nachricht bekommt
  • fährt fort, gibt somit auf eine Nachricht zu empfangen

Was ist SLAB?

In UNIX Systemen sorgt der SLAB-Allocater für effizienten Umgang mit Kernel-internen Objekten. --> Objekte werden nicht gleich zerstört (Task-Structs, Filetables usw.) Sozusagen ein interner Cache.

Welche Elemente befinden sich üblicherweise in einem Seitentabelleneintrag? Beschreibe sie kurz!

  • Frame-Nummer: Die Numer, die angibt wo sich der Frame im HS befindet
  • Present Bit: Ist die Seite im Hauptspeicher?
  • Modify Bit: Wurde die Seite geändert

In diesem Fall existiert nur eine Queue pro Ereignis. Wie könnte man die Struktur ändern, damit ein Prozess auch auf 2 Ereignisse warten kann.

2 Möglichkeiten:

  1. Man führt eine Entweder/Oder Queue ein in die der Prozess eingereiht wird.
  2. Man reiht den Prozess in beide "Ereignis"-Queues ein.

Das Betriebssystem muss in beiden Fällen sich um die Benachrichtung kümmern, wenn eins der beiden oder beide Ereignisse eintreten.

Was ist der Unterschied zwischen Durchlaufzeit und Antwortzeit?

Je nachdem welches System betrachtet wird spricht man eher von der Durchlaufzeit (Batch-System) oder von der Antwortzeit (Interaktive Systeme). Im Prinzip wird aber das gleiche beschrieben.

Was heißt POSIX und was ist es?

Portable Operating System Interface: Ein Standart für die Schnittstelle zwischen Anwendungsprogrammen und dem Betriebssystem.

Was ist der entscheidende Nachteil des Microkernels?

Performance. Für jede Interaktion, der Services untereinander, muss über den Kernel kommuniziert werden.

Warum ist die Implementierung des Betriebssystems einfacher, wenn Prozesse die im Kernel-Mode laufen nicht verdrängt werden?

Diese Prozesse müssen nicht reenetrant sein (Wiederaufnahmefähig). Das bedeuted, dass nicht implementiert werden muss wie Prozesse nach einer Unterbrechung wieder aufgerufen werden.

Was sind die Vor-/Nachteile wenn das gleiche Interface für Dateien und E/A Geräte genutzt werden?

Vorteile:

  • Treiber müssen nur diese 4 Schnittstellen implementieren
  • Auf Benutzerseite gibt es für alle die gleichen Funktionen

Nachteile:

  • Bei komplexeren Geräten reichen evtl. diese 4 Funktionen nicht aus.

Was ist ein Spinlock?

Mechanismus zur Synchronisation von Prozessen. Es ist eine Sperre auf eine gemeinsam genutzte Ressource bei der aktives Warten genutzt wird.

Was ist ein TLB?

Transition Lookaside Buffer: Enthält die Seitentabelleneinträge (physikalische Adresse der Frames), die zuletzt von dem Prozess benutzt wurden.

Wie werden Systemaufrufe gestartet?

Bibliotheksfunktionen rufen die Systemaufrufe auf. Diese werden über eine Index - Nummer in einer Tabelle referenziert.
Der Aufruf geschieht in dem die Bibliotheksfunktion einen TRAP produziert und die Nummer der Systemfunktion dem Kernel übergibt. (Stack oder Register)

Was sind die Nachteile von reenetranten Prozessen im Kernel-Mode?

Bei einem Prozess der lange dauert, kann es zu zu langen Reaktionszeiten kommen. Synchrones Abwickeln von Prozessen ist nicht möglich.

Nenne Beispiele für wiederverwendbare und verbrauchte Ressourcen?

  • E/A - kanäle, Hauptspeicher, Datenbanken, Semaphore, Dateien...
  • Interrupts, Signale, Nachrichten und Informationen in E/A - Puffern

Warum wird die ISR in modernen Systemen in Assembler geschrieben?

Ja, warum?

Welche Schritte führt ein OS zur Prozesserzeugung aus?

  1. ID zuweisen (eindeutig!)
  2. Adressraum bereitstellen
  3. Prozesskontrollblock (Prozesstabelle) initialisieren
  4. Prozess einreihen (z.B. Ready Queue)

Wenn ein Programm in eine Datei/Puffer/Stream etc schreiben will, werden die geforderten Daten per Systemaufruf an den Kernel übergeben. Könnte das Programm danach sofort weiter arbeiten oder muss es auf darauf warten bis die Daten tatsächlich in die Datei/Puffer/Stream geschrieben worden sind?

Falls dass Programm sofort wieder dran wäre und sofort wieder in die Datei schreiben will, kann es passieren, dass die alten Daten noch nicht übernommen worden sind. --> Lösung: der Treiber/Kernel verwaltet die Daten in einem internen Puffer und kontrolliert die Reihenfolge in der geschrieben wird.

Eine 10MB große Datei ist auf derselben Spur (Spurnummer 50) in aufeinanderfolgenden Sektoren gespeichert. Der Plattenarm befindet sich an Spurnummer 100. Wie lange dauert es die Datei abzurufen?

Lesen: 100MB/s
Platzieren an den Anfang des Sektors: 5ms
Bewegung des Arms von einem Zylinder zum nächtsten: 1ms

1 * 50 ms (Zeit um den Arm zur Spurnummer 50 zu bewegen) +

5 ms (Zeit, um zum Anfang des Sektors zu kommen) +

10 / 100 * 1000 ms(lesen von 10 MByte) = 155 ms

Wie können Daten zwischen Prozessen ausgetauscht werden?

Shared Memory und?

Vorteile/Nachteile von User-Level Threads?

Vorteile:

  • auf jedem OS 
  • eigenes Scheduling implentierbar
  • Thread-Wechsel geht viel schneller, da kein Moduswechsel nötig ist

Nachteile:

  • OS kann die Threads nicht auf auf mehrere Prozessoren in einem SMP verteilen
  • Wenn ein Thread blockiert, blockiert der gesamte Prozess

Nenne einige Funktionen die nur im Kernelmodus erlaubt sein sollten!

  • Sperren von Interrupts
  • Zeit setzen
  • Änderung der Speicherzuordnungstabelle
  • ... oder Prozesstabelle
  • TODO

Was ist ein RW-Lock und was sind die Vor und Nachteile?

Read/Write-Lock: ermöglicht paralles Lesen von einer Ressource während der Schreibzugriff den Zugriff auf die Ressource blockiert. Nicht ganz so performant wie normale Mutexe.

Étudier