Betriebssysteme

Kartei zur Vorlesung Bsys

Kartei zur Vorlesung Bsys


Arkadius P.
Diese Lernkarten decken fortgeschrittene Konzepte von Betriebssystemen auf Universitätsniveau ab. Sie behandeln zentrale Themen wie Prozesse, Programme, Speicherverwaltung und Scheduling, einschließlich spezifischer Algorithmen und Mechanismen wie Semaphoren, kritische Bereiche und Threads. Die Karteikarten beleuchten auch Unterschiede zwischen Windows und Unix/Linux sowie praktische Beispiele und Systemaufrufe. Ideal für Studierende und Fachleute, die ihr Verständnis von Betriebssystemen vertiefen möchten, bieten diese Karten eine strukturierte Übersicht über komplexe Systeme und deren Implementierung.
Flashcards
196
Students
9
Language
German
Category
Computer Science
Level
University
Created / Updated
28.07.2014 / 02.06.2025

Flashcards

Beschreiben sie das Verfahren copy on write

Die Kopie wird erst dann real angefertigt sobals sie verändert wird.

Was ist ein Zombie-Prozess??

Ein Zombie ist ein Kindprozess, der bereits beendet ist, aber dessem Rückgabewert vom Elternprozess nicht abgerufen wurde. Dies ist ein Programmierfehler!

Wie kann ein Zombie gelöscht werden?

Beenden des Elternprozesses

Was ist ein Dömon Prozess?

Ein Dämon ist ein Kintergrundprozess der keinen Elternprozess mehr hat weil dieser vorher beendet wurde.

Skizzieren sie einen kurzen c-Code zum Start eines Dämon-Prozesses

int pid;

pid = fork();

if(pid){

sleep(10);

}

else{

sleep(20);

}

return 0;

Wozu dienen Dämon Prozesse? Nennen sie einige Beispiele

Stellt Dienste zur Verfügung

Wie wird unter Windows (per win32-API) ein neuer Prozess gestartet?

Mit CreateProzess(..)

Nennen sie einige Parameter beim Start eines neuen Prozesses (Win32-API)

ApplicationName, CommandLne, CreationFlag...

Was ist ein Thread?

Ein Thread ist eine parallele Ausführungsspur innerhalb eines Prozesses

Aus welchen bestandteilen besteht ein Thread?

CPURegister, Stack-Bereich

WElche Threadarten sind ihnen bekannt?

  • User-Level-Thread
  • Kernel-Thread

Was sind die eigenschaften eines Userlevel-Threads?

4 Stück

  • Umschaltung erfolgt durch Bibliothek
  • Nachteil: Threads müssen "kooperativ" sein >relinquish
  • Blockierende Systemaufrufe blockieren alle Threads
  • Betriebssystem hat (braucht) keine Kentnis von Threads

Was sind die Merkmale von Kernel-Threads?

3 Stück

  • Umschaltung (Scheduling) erfolgt durch Betriebssystem
  • Betriebssystem kennt die Threads
  • Erweiterung des Betriebssystems notwendig

Warum ist ein Kontextswitch bei Thread billiger als bei Prozesses?

Thread teilen sich den gleichen Adressraum, somit ist ein wechsel des Adressraums überflüssig

Wie sind bei Linux Threads implementiert

Unter Linux wird die Posix-API verwendet, die Idee ist aber die gleiche wie bei Windows

Wie sind bei Linux Threads implementiert

Unter Linux wird die Posix-API verwendet, die Idee ist aber die gleiche wie bei Windows

Erläutern sie den systemaufruf clone() bei Linux

Eigentlich kennt Linux keine Threads, jedenfalls nicht so direkt wie bei anderen Systemen.

Stattdessen wird der Betriebssystemaufruf clone genutzt. Dabei kann angegeben werden, ob der Adressraum mitkopiert werden soll oder nicht. Mit einer Kopie ensteht ein neuer richtiger Prozess, ohne Kopie lediglich ein neuer Prozess im selben Adressraum, was einem Thread entspricht

In welchen Zuständen kann sich eine Task befinden?

  • running
  • blocking
  • ready

beschreiben sie die Zustandsübergänge bei Tasks

...

Welche Aufgaben haben der Scheduler und der Dispatcher?

Der Dispatcher ist für das Umschalten von einer rechnenden zu einer rechenbereiten Task zuständig.

Der Scheduler ist für die Auswahl und Einplanung der Tasks zuständig. Er legt fest, wann welche Task ausgeführt werden kann

Wozu dient der Task-Control-Block

Für jede Task wird im Betriebssystem ein Task-Control-Blok angelegt. Diese Datenstruktur beschreibt die Task

Was st die Ready-Queue

Die RQ enthält eine Liste aller rechenbereiten Tasks

Nach welchen kriterien wird eine Task eingeplant? 5 tück

  • Fairness: jeder Prozess erhäglt einen gerechten Anteil an der Prozessorzeit
  • Effizienz: Der Prozessor ist immer möglichst vollständig ausgelastet
  • Antwortzeit: Die Antwortzeit eines interagierenden Benutzers wird minimiert
  • Verweilzeit: Die Wartezeit auf Beendigung eines Auftrages wird minimiert
  • Durchsatz: Die Anzahl der Aufträge in einem Intervall wird maximiert

Was bedeutet Preemption

CPU kann einer Task jederzeit entzogen werden

Nennen Sie einen anderen Namen für Non-Preemtive-Scheduling?

FCFS (First Come First Serve)

Welche Schedulingalgorithmen sind ihnen bekannt? 4 Stück

  • FCFS (First come first Serve)
  • SJG (shortest job first)
  • Zeitscheibenverfahren (round-robin)
  • Prioritätsbasiertes Scheduling

Beschreiben sie das Zeitscheibenverfahren

Alle Task bekommen der Reihe nach eine gewisse Rechenzeit zugewiesen bevor gewechselt wird,

Beschreiben Sie das Prioritätsverfahren (Scheduling)

Jede Das bekommt eine feste Priorität. Tasks höhere Priorität in der Queue werden zuerst ausgeführt, kommt eine Task mit höherer Priorität als die gerade ausgeführte in die Queue, wird gewechselt

Was sind dynamische Prioritäten?

Betriebssystem kann die Prioritäten in Grenzen ändern

Was ist der unterschied zwischen normalen und Echtzeitscheduling?

Echtzeitsysteme müssen im Gegensatz zu normalen Systemen bestimmte Zeitvorgaben beachten.

Daraus ergeben Sich weitere Schedulingstrategien z.B:

  • Offline-Scheduling: Berechnung der Taskeinplanung im vorraus
  • erliest Deadline First: Die Task die zuerst fertig sein muss
  • Rate Monotonic Scheduling: Task muss zu immer bestimmten Zeiten eingplant werden > Varianz der Intervalldifferenzen reduzieren

Was ist eine Race.Condition? Skizzieren sie ein Beispiel

Als Race-Condition bezeichnet man Situationen bei denen die Verzahnund der Ausführungen con mehreren Tasks unter verschiedenen zeitlichen Bedingungen zu unerwarteten/falschen Ergebnissen führen kann.

X=x+1 2 mal parallel ausgeführt kann zum ergebnis 1 oder 2 führen

Was ist ein Kritischer Bereich?

Teil eines Programms auf den mehrere Threads zugreifen können, bei dem aber bei gleichzeitigem zugriff inkonsistenz entstehen kann

Nennen Sie die Forderungen an einen kritischen Bereich. 4 Stück

  • Nur ein Prozess darf sich zu jedem Zeitpunkt in einem bestimmten kritischen Bereich bedinden
  • Es dürfen keine Annahmen über die Ausführungsgeschwindigkeiten oder die Anzahl der beteiligten Prozessoren gemacht werden
  • Kein Prozess, der sich nicht in seinem kritischen Bereich befindet, darf andere Prozesse blockierenKein Prozess soll unendlich lange warten müssen, bis er in einen kritischen Bereich eintreten kann

Welche Möglichkeiten biete die Hardware bei der Implementierung eines kritischen Bereichs?

  • Interruptsperre
  • Test-and-Set

Was ist eine Semaphore?

Eine Semaphore ist eine abstrakte Datenstruktur mit folgenden Operationen:

  • P(s) - pausieren
  • V(s) - Fortsetzen

Nennen Sie die Semaphorbedingung

#P(s) <= #V(s)

Study