Modul 11

Beschreibung

Interrupts vs Signals, Scheduling, Producer consumer mechanism, Synchronisation
Gökhan Yesilyayla
Karteikarten von Gökhan Yesilyayla, aktualisiert more than 1 year ago
Gökhan Yesilyayla
Erstellt von Gökhan Yesilyayla vor etwa 9 Jahre
11
0

Zusammenfassung der Ressource

Frage Antworten
Was ist ein "Interrupt" ? In der Informatik versteht man unter einem Interrupt eine vorübergehende Unterbrechung des laufenden Programms, um einen anderen in der Regel zeitkritischen und meist kurzen Vorgang abzuarbeiten. Das auslösende Ereignis wird Interrupt Request (IRQ) genannt. Nach dieser Anforderung wird die Unterbrechungsroutine (Interrupt Service Routine, ISR) ausgeführt. Anschließend wird das unterbrochene Programm dort fortgeführt, wo es unterbrochen wurde.
Was ist ein "Signal" ? Bei Verwendung des Betriebssystems Unix ist ein Signal eine Systemnachricht an einen laufenden Prozess. Signale sind eine primitive Form der Interprozesskommunikation. Die meisten Signale bewirken auch eine Aktion UNIX Signale agieren zwischen Userspace und OS kernel. Gehen aber nicht in die Ebene der Hardwarespace.
Was ist die "ISR" und wie funktioniert sie ? ISR ist die "Interrupt Service Routine" und beschreibt wie ein Unterbrechungsvorgang abläuft. 1) Hardware- oder Software-Interrupt wird an den Prozessor geschickt. 2) Der Prozessor hält den laufenden Thread an. 3) Der Prozessor speichert den Thread-Status. 4) Der Prozessor führt den Interrupt-Handler aus. 5) Der Prozessor führt den vorher unterbrochenen Thread fort.
Wie unterscheiden sich "Hardware Interrupt" und "Software Interrupt" in der Ausführung ? HW: Hardware-Interrupt -> OS kernel -> ISR -> tasklet/DPC -> OS kernel -> signal to process -> signal handler SW: Software-Interrupt -> OS kernel -> ISR -> signal to process -> signal handler
Was ist ein "Scheduler" und wieso braucht man so etwas ? Ein Prozess-Scheduler (Scheduler = Steuerprogramm) ist eine Arbitrationslogik, die die zeitliche Ausführung mehrerer Prozesse in Betriebssystemen regelt. Es erlaubt die Ressourcen gemeinsam zu nutzen (Multitasking).
Was ist ein "Scheduling-Problem" ? Gegeben: Eine Ressource und viele Anfragen auf diese Ressource. Problem: In welcher Reihenfolge muss man die Ressource verteilen (zeitlich), so dass man maximale Effizienz erreichen kann?
Geben Sie ein Beispiel für das "Scheduling-Problem" Gegeben: Verkehrsampel (grünes Licht), viele Anfragen durch Verkehrsteilnehmer (Autos, Fussgänger usw.) Problem: In welcher Reihenfolge dürfen die Verkehrsteilnehmer passieren, so dass kein Stau entsteht.
Was ist ein "Context Switch" ? Kontextwechsel oder Taskswitching (englisch context switch) nennt man den Vorgang in einem Betriebssystem, bei dem die Bearbeitung des aktuellen Prozesses (oder auch Threads, Tasks oder Programms) unterbrochen wird (z. B. nach einer festgelegten Zeitspanne durch einen Timer-Interrupt oder bei Systemaufrufen) und zu einer anderen Routine gewechselt wird.
In welche Kategorien kann man Prozess-Scheduler aufteilen ? Prozess-Scheduler kann man grob in 1) unterbrechende (präemptiv) 2) nicht unterbrechende (non preemptive, auch kooperativ genannt) aufteilen.
Wie funktioniert "Preemptive Scheduling" ? Die CPU teilt jedem Prozess ein sog. Zeitquantum (typische Werte 10-100ms) zu Wenn ein Prozess die für sich reservierte Zeit aufgebraucht hat, wird er vom Betriebssystem durch ein Interrupt unterbrochen. Betriebssystem macht eine neue Zeitverteilung (Allocation) Es findet ein "context switch" also Prozess-Wechsel statt
Wie funktioniert "Round-Robin Scheduling" ? Die Prozesse werden in einer Warteschlange verwaltet. Der vorderste Prozess erhält einen Zeitschlitz lang Zugang zu den Ressourcen, dann reiht er sich am Ende der Warteschlange ein und alle Prozesse rücken eine Position vor. Der nächste Prozess wird nach dem FIFO-Prinzip ausgewählt. Der Prozess kann die Ressourcen auch freiwillig früher zurückgeben.
Was ist das Hauptmerkmal von "Real time scheduling" ? Absolute Prioritäten haben Vorrang gegenüber Fairness
Was ist das Hauptmerkmal von "Time sharing scheduling" ? Fairness ist wichtiger als Priorität. Die Zeit wird gleichermassen auf die Prozesse verteilt.
Was macht der "nice" Befehl in UNIX ? Mit dem "nice" Befehl kann man Prioritäten der Prozesse in UNIX festlegen. -20 = highest priority/lowest niceness 19 = lowest priority/highest niceness
Wie funktioniert "Scheduling via Lottery" ? Jeder Prozess hat eine Lotterienummer. Nach ablauf jedes Zeitquantums wird eine Lotterie veranstaltet. Der Prozess mit der Gewinnnummer ist an der Reihe.
Was bedeutet "Cooperative Processing" ? "Cooperative Processing" ist eine Methode welche, die Arbeit einer laufenden Applikation auf mehrere Computer verteilt, um somit die Bandweite und Performance zu steigern.
Was ist ein "Puffer" ? Puffer sind Speicher für die Zwischenlagerung von Daten.
Wie Funktioniert der "Producer- Consumer Mechanismus" ? Der Produzent und der Konsument sind zwei voneinander getrennte Prozesse, welche über einen gemeinsamen Pufferspeicher miteinander kommunizieren. Der Produzent erzeugt Werte und legt sie in der Puffer ab. Der Konsument nimmt sie aus der Puffer und gibt sie aus. Da beide Prozesse unterschiedlich schnell verlaufen, geht der Konsument "schlafen" wenn die Puffer leer ist. Umgekehrt geht der Produzent "schlafen" wenn die Puffer voll ist.
Was ist eine "atomare Operation" ? In der Informatik bezeichnet eine atomare Operation einen Verbund von Einzeloperationen, der als logische Einheit betrachtet werden kann und nur als Ganzes fehlschlägt oder erfolgreich abläuft.
Welches Problem kann beim "Producer Consumer Mechanismus" auftreten ? Wenn beide Prozesse (Producer, Consumer) gleichzeitig auf die Puffergrösse-Variable zugreifen, kann die Variable komische Werte annehmen.
Was ist "Race Condition" ? Race Condition ist in der Programmierung eine Konstellation, in der das Ergebnis einer Operation vom zeitlichen Verhalten bestimmter Einzeloperationen abhängt. Im Allgemeinen ist die Möglichkeit, dass eine Race Condition entsteht, zu vermeiden.
Was bedeutet "Synchronisation" ? Koordination von kooperativen Prozessen, welche einen gemeinsamen logischen Adressraum teilen, um Datenkonsistenz zu gewähren.
Was ist der "Critical Section (kritischer Abschnitt)" ? Critical Section ist ein Modell, um das Race Condition Problem zu beheben. Ein "kritischer Abschnitt" der garantiert, dass jeweils genau ein Prozess diesen Abschnitt gleichzeitig passieren kann.
Welche Eigenschaften hat der "Critical Section" ? 1) Mutual Exclusion: Es soll sichergestellt werden, dass genau ein Prozess den kritischen Abschnitt betritt. 2) Progress: Falls kein anderer Prozess den kritischen Abschnitt ausführt, so kann ein Prozess seinen kritischen Prozess definitiv ausführen 3) Limited "Rear Queuing": Wenn andere Kandidaten den kritischen Abschnitt auch ausführen wollen, so sollten sie nicht andauernd, willkürlich zurückgedrängt werden.
Was ist "Mutex (Mutual Exclusion)" ? Threads können sich mithilfe von Sperren, die man als Mutexe bezeichnet, synchronisieren. Ein Mutex wacht über eine Ressource, z.B. einen von zwei Threads gemeinsam genutzten Puffer. Um sicherzustellen, dass jeweils nur ein Thread auf die gemeinsame Ressource zugreift, wird von Threads erwartet, dass sie den Mutex sperren, bevor sie die Ressource beanspruchen, und ihn wieder entsperren, sobald sie fertig sind. Solange sich alle Threads an dieses Protokoll halten, lassen sich Race Conditions vermeiden. Mutexe sind wie binäre Semaphore, d.h., sie können nur die Werte 0 und 1 annehmen. Die Bezeichnung „Mutex“ ist eine Verschmelzung der Wörter „mutual exclusion“ (wechselseitiger Ausschluss), weil sie den gegenseitigen Ausschluss auf einer bestimmten Ressource sicherstellen.
Was ist der "Peterson Algorithmus" und wie funktioniert er ? Der Peterson Algorithmus ist ein Mutex-Verfahren. Bevor eine kritische Region betreten wird, ruft jeder Prozess enter_region(int process) mit seiner eigenen Prozessnummer, 0 oder 1, als Parameter auf. Der Eintritt in die kritische Region wird damit so lange verzögert, bis er sicher ist. Sobald ein Prozess die kritische Region wieder verlässt ruft er leave_region(int process) mit seiner eigenen Prozessnummer als Parameter auf. Jetzt kann ein anderer Prozess die kritische Region betreten, sofern er das möchte.
Erklären Sie, wie der "Peterson Algorithmus" die 3 Eigenschaften des "Critical Section" erfüllt. Mutual Exclusion: Nur eine der beiden Prozesse kann die while-Schleife beenden. Progress: Der Prozess P1 kann unendlich lange zurückgehalten werden, wenn seine while-Schleife nicht beendet wird. P2 ist entweder "innerhalb" oder "ausserhalb" des kritischen Abschnitts: In beiden Fällen ist eine der beiden while-Schleifen (von P1 und P2) nicht erfüllt. Limited "rear queuing": P1 verlässt den kritischen Abschnitt, P2 wartet eintreten zu dürfen. Wenn P2 nach dem Austritt erneut den kritischen Abschnitt betreten will, so ist zu erst P1 an der Reihe und P2 muss warten.
Was ist ein Semaphor ? Ein Semaphor ist eine Datenstruktur, die aus einer Ganzzahl und den Nutzungsoperationen „Reservieren“ und „Freigeben“ besteht.
Welche Möglichkeiten gibt es, um eine "Race Condition" zu lösen ? 1) Wecken-erwarten-Bit: Wenn ein laufender Prozess ein Wecken-erwarten-Bit bekommt, wird dieser aufgeweckt wenn er in den Schlafzustand geht. Funktioniert bei 2 Prozessen gut bei mehreren wird es problematisch. 2) Semaphore
Welche zwei Typen von Semaphoren gibt es ? 1) Counting Semaphore 2) Binary Semaphore
Wie funktioniert die Synchronisation mittels "binary Semaphore" ? Prozesse führen UP und DOWN operationen auf Semaphoren. Ein Semaphor kann grösser oder gleich 0 sein. Wird eine UP-Operation ausgeführt, so wird das Semaphor um 1 inkrementiert. Wird eine DOWN-Operation ausgeführt, so wird das Semaphor um 1 dekrementiert falls es > 0 ist. Falls es = 0 ist, geht der Prozess schlafen.
Was ist der Unterschied zwischen "Deadlock" und "Starvation" ? Deadlock: Zwei oder mehr Prozesse warten ewig auf die Freigabe der Resource, wobei die Prozesse sich gegenseitig blockieren. Starvation: Ein Prozess wird ständig zurückgewiesen. Hungert sozusagen aus.
Welche klassischen Synchronisationsprobleme kennen Sie ? 1) Bounded-Buffer Problem 2) Readers and Writers Problem 3) Dining-Philosophers Problem
Erklären Sie das "Bounded-Buffer" Problem. Es muss klar sein, ob der Puffer voll oder leer ist, bevor der Producer oder Comsumer darauf zugreifen. Je nach Situation muss der eine oder der andere geweckt werden bzw. Schlafen gelegt werden. Lösung mit Semaphoren down->sleep up->wakeup
Erklären Sie das "Readers and Writers" Problem. Der Zugriff auf eine Resource von einem Prozess1 soll verhindert werden, während ein Prozess2 gerade eine Schreiboperation durchführt.
Erklären Sie das "Dining Philosophers" Problem. Mehrere Prozesse warten gleichzeitig auf die Freigabe der Resource. Kein Prozess gibt nach und die Philosophen verhungern.
Was ist ein "Monitor" ? Ein Monitor ist ein Konzept zur Synchronisation von Zugriffen zeitlich verschränkt oder parallel laufender Prozesse auf gemeinsam genutzten Ressourcen. Inkonsistente Zustände der Datenstrukturen werden vermieden, ohne dass Programmierer Synchronisationsprimitive wie z. B. Semaphore explizit nutzen müssen.
Zusammenfassung anzeigen Zusammenfassung ausblenden

ähnlicher Inhalt

ein kleines Informatik Quiz
AntonS
Informatik
Tom Kühling
PHP Grundlagen
chrisi.0605
Wirtschaftsinformatik Teil 2
Sabrina Heckler
Informatik 1 - Einführung
Svenja
Codierung
Tom Kühling
Wirtschaftsinformatik Teil 1
Sabrina Heckler
Einführung in das Studium Informatik
Daniel Doe
Lernplan
Sandra K
Infromatik Basiswissen
Simon Hefti