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.
Karten
135
Lernende
11
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
28.01.2014 / 04.07.2022

Lernkarten

5 wichtige Funktionen des Kernels um die Nutzung "bequemer" zu machen?

  1. Programmausführung / Interprozesskommunikation: Organisieren von Programmen und deren Kommunikation untereinander. (Scheduling, Interrupts, etc)
  2. Speicherverwaltung: Organisieren von Speicher und auch schützen von Speicher.
  3. E/A - Zugriff: Verwalten von Ein-und Ausgabe Geräten. Die Anwendung greift nicht direkt auf Geräte zu, sondern lediglich auf eine vom Betriebssystem bereitgestellte logische Einheit.
  4. Dateisystem: Sorgt für eine "faire" nutzung des Dateisystems, da jedes Programm das Dateisystems des Kernels nutzt.
  5. FEHLERBEHANDLUNG: Der Kernel sollte von allen vorher genannten Punkten eine Fehlerbehandlung zur Verfügung stellen, da sonst jedes Programm diese Behandlung implementieren müsste. Außerdem weiß das Betriebssystem auch "besser Bescheid".

Welche 3 Grundfunktionen werden dem Programmierer für die Verwendung eines Semaphores zur Verfügung gestellt?

  • initialisierung
  • wait(): Dekrementieren der Semaphore (p-Operation)
  • signal(): Inkeremtieren der Semaphore (v-Operation)

Welche verschiedene Seitenabrufstrategien gibt es?

  • Demand Paging: Eine Seite nach der anderen wird geladen, sobald sie benötigt wird.
  • Prepaging: Neben der Seite die benötigt wird, werden noch weitere (folgende) auf Verdacht geladen. (siehe Lokalitätsprinzip)

Wozu dient die Prozesstabelle?

In der Tabelle wird der Zustand eines Prozesses gespeichert, der zurzeit nicht läuft. Entweder ist der Prozess blockiert, gestoppt oder (wieder) bereit.

Ziel von Batch Systemen (Stapelverarbeitungssystemen)

Maximierung des Durchsatzes und maximale Auslastung von CPU und E/A Geräten

Beschreibe 3 Methoden, wie Parameter an eine Systemfunktion übergeben werden können!

  1. Register
  2. Anfangsadresse eines (Parameter-)Blocks im Register gespeichert
  3. Parameter werden auf Stack gepushed

Welche Aktionen werden ausgeführt bei einem Kontextlevel mit User-Level-Threads?

Ähnlich wie bei Threads im Kernel: Es werden Stackregister gesichert und gewechselt, da ansonsten der gleiche Adressraum genutzt wird.

Was ist ein Mikrokernel?

Bezeichnet einen Betriebsystemkern-Design. Der Kernel verfügt nur über gewisse Grundfunktionen.  Alle anderen Funktionen (Services) werden im User-Mode implementiert. (Bibliotheksfunktionen)

Siehe auch: Monolithischer Kernel (Gegenteil)

In welcher Beziehung stehen Multitasking-Systeme und Multiprozessor-Systeme? Setzt das eine das andere voraus, oder folgt das eine aus dem anderen?

Multitasking auch auf Single Prozesser-System möglich. Multiprozessor-Systemen ohne Multitasking ist sinnlos.

Was ist der Unterschied zwischen externer und interner Fragmentierung? Bei Welchem Verfahren tritt was auf?

  • Interne Fragmentierung: Bei Paging-Verfahren können Blöcke zu klein für die Seite sein.
  • Externe Fragmentierung: Beim Segmentierungsverfahren kommt es zu einem Verschnitt/Verlust zwischen Segmenten

Nenne die Bediengungen für einen Deadlock.

  • mutual exclusion
  • hold and wait
  • no preemtion
  • circular wait

Was ist die Aufgabe des Kommandozeileninterpreters? Und was für welche gibt es überhaupt?

Shell, Bash, Korn, etc...

liest Kommandos vom Benutzer oder aus einer Datei (Shell-Script) ein.

Für welche Arten von Einheiten unterhält das Betriebssystem Informationstabellen zu Verwaltungszwecken?

  • Prozesse
  • Speicher
  • E/A
  • Dateien

Was ist ein Monitor?

Konstrukt in Programmiersprachen, welches abstrakte Datentypen und wechselseitigen Ausschluß für einen Satz von Prozeduren zur Verfügung stellt.

 

Welche Speicheranforderungen soll die Speicherverwaltung erfüllen? (4 Nennungen)

  • Relocation
  • Speicherschutz
  • Gemeinsame Speichernutzung
  • Logische und Physikalische Organisation

Berechne die Anfragen pro Sekunde die ein Server bearbeiten kann, wenn er Single/Multithreaded ist:

Anfragendauer im Cache: 15 ms (66%)
Anfragendauer auf Platte:  zusätzlich 75 ms (33%)

Singlethreaded: 
2/3 * 15ms + 1/3 *(15+75) ms = 40 ms --> 25 Anfragen pro Sekunde

Multithreaded:
jeder Request dauert 15 ms, da bei Cache-Miss mehrer Threads auf die E/A warten können --> 66*2/3 Anfragen pro Sekunde

Ziel von Interaktiven Systemen (z.B. Personal Computer)

Minimierung der Antwortzeit. (Gute Interaktion mit dem Benutzer). Typischerweise nur Jobs mit kurzen Ausführungszeiten deren Antwort möglichst kurz sein sollte (Sekunden!)

Kann Thread beim RR unterbrochen werden?

Falls Kernel-Level-Threads, dann ja. Ansonten nein.

Warum ist die Shell vom Kernel getrennt?

Die Kommandos rufen wiederum Systemaufrufe und somit Kerneldienste auf. Ist nicht Bestandteil, da sonst die Funktionen direkt mit dem Kernel 'verlinkt' wären.

Was sind 4 Merkmale eines suspendierten Prozesses?

  1. steht nicht zur sofortigen Ausführung bereit.
  2. wartet u.U. auf ein Signal (dann auch blockiert), aber das Ereignis, auf das der Prozess wartet wird unabhängig von seinem suspendierten Zustand behandelt.
  3. wird von OS oder einem anderen Prozess in den suspendierten Zustand versetzt
  4. analog wird es von dem OS und einem anderen Prozess da wieder herausgeholt.

Was ist eine Barrier?

Hilfreich um eine gewissen Anzahl zu einem Zeitpunkt zu synchronisieren. Alle Threads warten solange an der Barrier bis alle dort "eingetroffen" sind.

Katalog 2. Frage 10 und 11

TODO

Welche Verzögerungselemente spielen beim Lesen oder Beschreiben einer Platte eine Rolle?

  1. Suchzeit / Positionierungszeit / (Seek Time): benötigte Zeit um Arm zu bewegen (Mittelwert)
  2. Rotationsverzögerungszeit / Zykluszeit: Bis Anfang des gesuchten Sektors gefunden ist (Im Mittel halbe Umdrehung der Disk)
  3. Transfer Time: benötigte Zeit um Daten zu übertragen

1. und 2. ergeben die sogenannte Zugriffszeit

Was macht unlink()?

NAME

unlink - remove a directory entry

Ziel von Time-Sharing Systemen?

Mehrere Benutzer nutzen das gleiche System und es scheint als ob sie das System für sich alleine haben. Die Art der Programme ähnelt, den des Interaktiven Systems.

Was ist eine ISR und welche Schritte werden dabei ausgeführt?

Interrupt Service Routine:

  1. Interrupt sperren
  2. Sichern des Prozessorzustand
  3. Abarbeiten des Interrupts
  4. Wiederherstellen des Prozessorzustand
  5. Interrupts entsperren
  6. Rücksprung zum unterbrochenen Programm

Was ist die entscheidende Leistungsanforderung an einem interaktiven System?

Minimierung der Response Time. (Antwortzeit)

Warum ist das Lokalitätsprinzip für den Einsatz eines virtuellen Speicher wichtig?

Damit die Auslagerungsaktivität verringert wird. (Trashing!). Nur aufgrund des Lokalitätsprinzip sind die Seitenersetzungsstrategien erfolgreich: (LRU, FIFO, etc)

Wie erzeugt man ein named Pipe?

mkfifo

Die 5 Hauptaktivitäten des OS zur Prozessverwaltung und warum diese Schritte notwendig sind?

  • Erzeugen und Zerstören von Prozessen: Bei Bedarf erzeugen um z.B. Nebenläufigkeit zu unterstützen. Ressourcen müssen bereitgestellt und wieder entzogen werden.
  • Unterbrechen und Fortführen von Prozessen:
  • Mechanismen zur Synchrosiation:
  • Mechanismen zur Prozesskommunikation:
  • Mechanismen zur Behandlung und Vermeidung von Deadlocks:

Was ist Multiprogramming?

Mehrere Programme sind gleichzeitig im Speicher geladen zwischen denen der Scheduler auswählen kann

Beschreib mal schnell die 7 RAID-Level !

musste können :)

Was sind die beiden Hauptaufgaben eines Betriebssystems?

  • Verwaltung der Hardware-Recourcen (E/A Geräte etc)
  • Bietet Schnittstelle für Benutzer

Welche (häufig) auftretenden Ereignisse führen zur Erzeugung eines Prozesses?

neue Batch Job, Interaktives Login (PC), laufender Prozess erzeugt einen neuen mit fork(), exec()....

Ist der Registersatz eher Thread zugehörig oder Prozess zugehörig? Warum?

Falls das OS die Threads als solche kennt (Kernel-Level-Threads) so sind die Register sehr wohl Thread zugehörig und müssen im Falle eines Kontextwechsels gesichert werden.

Was ist SMP?

Symmetrisches Multiprozessor System: Mehrer Prozessoren teilen sich einen gemeinsamen Adressraum.

Warum wird bei einer Unterbrechung ein seperater Kernel Stack benutzt und nicht der User Stack des unterbrochenen Prozesses?

  • der User Stack könnte nicht groß genug sein, weil das Programm "schlecht" geschrieben ist und nicht genug Platz anbietet.
  • Sicherheitsaspekt: Der Kernel könnte Daten auf dem User Stack hinterlassen, die Informationen über andere Prozesse oder den Kernel preisgeben.

(optional)

Wieviele Befehle kann ein Rechner in 1 Sekunde abarbeiten bei einer 4-stufigen Pipeline? Wobei jede Stufe dieser Pipeline 1 nano Sekunde dauert.

1 Milliarde pro Sekunde. Dabei ist egal wieviele Stufen die Pipeline besitzt, da nach jeder nano Sekunde ein Befehl fertig ist.

Nenne drei Funktionen für die Ausführung der E/A und beschreibe sie.

  1. Programmierte E/A: Der Prozessor führt das E/A-Kommando (im Auftrag eines Prozesses) aus und wartet dann aktiv auf das Ende der E/A.
  2. Interruptgestuerte E/A: Der Prozessor führt das E/A-Kommando aus, wartet aber nicht aktiv auf das Ende. --> synchrones abarbeiten von Prozessen möglich
  3. DMA: Der DMA Controller kümmert sich um Datenaustausch zwischen Hauptspeicher und E/A-Gerät. Prozesser sendet Request an DMA Controller. Dieser "meldet" sich wieder beim Prozessor wenn er abgeschlossen hat

Ziel von Verteilten Systemen?

Zusammenschluss von unabhängigen Computer, welches sich für den Benutzer wie ein einzelnes System darstellt. Diese Computer kommunizieren über einen (High-Speed) Bus und teilen sich NICHT den physikalischen Speicher.

Lernen