Betriebssysteme
Kartei zur Vorlesung Bsys
Kartei zur Vorlesung Bsys
-
- 1 / 196
-
Cartes-fiches
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
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)