Was muss in einem System gegeben sein, damit Deadlocks auftreten können?
Damit in einem System Deadlocks auftreten können, müssen folgende vier Bedingungen gleichzeitig erfüllt sein:
Wann sollten Spinlocks einem Mutex oder einer Semaphore vorgezogen werden?
Spinlocks werden einem Mutex oder Semaphor dann vorgezogen, wenn die Bearbeitungszeit des kritischen Abschnitts deutlich kürzer ist als die Zeit, die für einen Kontextwechsel benötigt wird.
Was ist relatives Schlafen?
Beim realtiven Schlafen wird mitgeiteilt wie lange die Zeitspanne des Schlafens sein soll (z.B. 100ms).
Was ist absolutes Schalfen?
Beim absoluten Schlafen wird mitgeiteilt bis wann geschlafen werden soll (z.B. bis 5:12 Uhr).
Welche Vorteile hat das absolute Schlafen gegenüber dem relativen Schlafen?
Was ist der Unterschied zwischen Direct-IO und Buffered-IO? Welche der beiden Varianten eignet sich für Realzeitsysteme?
Was ist eine Condition-Variable?
Eine Condition-Variable ist ein Synchronisationselement, welches Rechenprozessen erlaubt, so lange den Prozessor freizugeben, bis eine bestimmte Bedingung erfüllt ist. Die Signalisierung kommt synchron zum Programmablauf und wird synchron verarbeitet.
Wofür werden Signale verwendet?
Ein Signal führt zu einer Unterbrechung des Programmablaufs innerhalb der Applikation. Das Programm wird dann entweder abgebrochen oder reagiert mit einem vom Programm zur Verfügung gestellten Signal-Handler. Die Signalisierung kommt asynchron zum Programmablauf und wird asynchron verarbeitet.
Wie funktioniert die klassische Ein- bzw. Ausgabe?
Welches Problem besteht hierbei?
Wie können Daten effizenter als mit der klassischen Ein- bzw. Ausgabe von A nach B kopiert werden?
Um Daten effizient von A nach B zu transferieren, gibt es den sognenannten splice()-Systemcall. Mit diesem werde Daten ohne Umweg über das Userland direkt von der Eingabequelle an die Ausgabequelle kopiert.
Wie kann das Auslagern von Speicherseiten (Swapping) einer Anwendung verhindert werden?
Das Auslagern von Speicherseiten lässt sich mittels mlock() bzw. mlockall() verhindern. Dabei werden die Speicherseiten, die zum übergebenen Adressbereich gehören markiert, sodass sie von der Speicherverwaltung des Kernels nicht mehr ausgelagert werden.
Welche Aspekte sollte eine Realzeitapplikation bezüglich des Memory Managements beachten?
Eine Realzeitapplikation sollte bezüglich Memory Management die folgenden drei Aspekte beachten:
Was versteht man unter Prefault?