Operating Systems BFH
Fragen zu Operating Systems Modul der BFH
Fragen zu Operating Systems Modul der BFH
Kartei Details
Karten | 51 |
---|---|
Sprache | Deutsch |
Kategorie | Informatik |
Stufe | Universität |
Erstellt / Aktualisiert | 11.12.2023 / 24.01.2024 |
Weblink |
https://card2brain.ch/box/20231211_operating_systems_bfh
|
Einbinden |
<iframe src="https://card2brain.ch/box/20231211_operating_systems_bfh/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Lernkarteien erstellen oder kopieren
Mit einem Upgrade kannst du unlimitiert Lernkarteien erstellen oder kopieren und viele Zusatzfunktionen mehr nutzen.
Melde dich an, um alle Karten zu sehen.
Spin Locks lassen Threads in einer Schleife aktiv auf die Freigabe warten, was zu CPU-Zeitverschwendung führen kann. Ticket Locks ordnen wartenden Threads hingegen eine "Ticketnummer" zu, wodurch die Reihenfolge der Bedienung festgelegt und Fairness verbessert wird.
How can I/O devices be accessed and used by the OS?
For the communication with I/O devices the OS needs drivers installed that help with communications with the device
Ein Mutex (Mutual Exclusion) ist ein Synchronisationsmechanismus, der den Zugriff auf eine Ressource auf einen Thread zur Zeit beschränkt, um Konsistenz und Vermeidung von Race Conditions zu gewährleisten.
Ein Fairness-Problem bei Locks liegt vor, wenn einige Threads überproportional lange auf den Zugriff warten müssen, was zu Starvation führen kann.
Race Conditions können durch Synchronisationsmechanismen wie Mutexe, Semaphoren, Monitore und bedingte Variablen vermieden werden.
Eine zusätzliche Variable neben Bedingungsvariablen wird oft benötigt, um den Zustand zu speichern, der die Bedingung repräsentiert. Diese Variable wird von Threads geprüft, um zu entscheiden, ob sie weiterarbeiten können oder warten müssen.
Das Zwei-Phasen-Sperrprotokoll (Two-Phase-Locking) bezieht sich auf einen Prozess, bei dem alle Locks vor der Ausführung erworben (Locking-Phase) und erst nach der Ausführung freigegeben werden (Unlocking-Phase), was hilft, Deadlocks zu vermeiden.
Mit Semaphoren können verschiedene Sperroperationen implementiert werden, wie binäre Locks (Mutexe), Zählsemaphoren für eine begrenzte Anzahl von Zugriffen und Leser-Schreiber-Locks für Zugriffskontrolle in Leser-Schreiber-Szenarien.
Wie kann man die Chunk Size berechnen, welche bei grossen Dateien im FFS gebraucht wird, damit dieses File nicht den gesamten Datenblock von der Gruppe aufbraucht?
Threads werden hauptsächlich für parallele Ausführungen innerhalb eines Programms verwendet, um die Effizienz zu steigern, wie bei der parallelen Datenverarbeitung, gleichzeitigen Netzwerkanfragen und für Benutzeroberflächen, die während der Ausführung von Hintergrundprozessen reaktionsfähig bleiben.
Eine Semaphore kann in der Praxis Werte von 0 bis zu einem definierten Maximalwert annehmen, wobei der Maximalwert die Anzahl der Threads oder Prozesse angibt, die gleichzeitig auf eine Ressource zugreifen dürfen. Die meisten Anwendungen verwenden Semaphoren als Binärsemaphore (Mutex mit Werten 0 oder 1) oder als Zählsemaphore, bei denen der Wert größer als 1 ist und die Anzahl der gleichzeitigen Zugriffe auf eine Ressource angibt.
Critical Sections sind Teile eines Programmcodes, die auf gemeinsame Ressourcen zugreifen und daher synchronisiert werden müssen, um Race Conditions zu verhindern.
Locks sollten auf Deadlock-Freiheit, Effizienz (geringe Verzögerung und Overhead), Fairness (gleiche Chancen für alle Threads, den Lock zu erhalten) und Robustheit (Widerstandsfähigkeit gegen Fehler) getestet werden.
Das Hold-and-Wait Problem tritt auf, wenn Prozesse, die bereits Ressourcen halten, auf weitere Ressourcen warten. Dies kann Deadlocks verursachen. Eine Lösung ist die One-Shot-Allokation, bei der alle notwendigen Ressourcen gleichzeitig angefordert werden müssen.
Das "Dining Philosophers" Problem illustriert die Herausforderungen der Prozesssynchronisation und Deadlock-Vermeidung. Es ist ein wichtiges Lehrbeispiel für die Konzepte der Concurrency und Synchronisation in der Informatik.
Das Produzenten-Konsumenten-Problem beschreibt zwei Prozesse, wobei einer Daten produziert und der andere sie konsumiert. Die Synchronisation muss sicherstellen, dass der Konsument nicht auf leere Daten zugreift und der Produzent nicht in einen vollen Puffer schreibt. Lösungen umfassen Semaphore oder Bedingungsvariablen, um den Zugriff auf den Puffer zu synchronisieren.
Das Problem der Dining Philosophers ist ein klassisches Beispiel für Deadlocks und Ressourcenknappheit in einem System. Es tritt auf, wenn jeder Philosoph auf eine Gabel wartet, die vom Nachbarn gehalten wird, was zu einem Deadlock führen kann. Die Lösung kann in Strategien zur Vermeidung von Deadlocks liegen, wie der Anforderung aller benötigten Ressourcen gleichzeitig oder der Einführung einer asymmetrischen Zugriffsordnung für Ressourcen.
Bedingungsvariablen werden verwendet, um Threads zu blockieren, bis eine bestimmte Bedingung erfüllt ist. Sie ermöglichen es einem Thread, auf ein Ereignis oder einen Zustand zu warten, während gleichzeitig Ressourcen für andere Threads freigegeben werden.
Die vier notwendigen Bedingungen für Deadlocks sind: gegenseitiger Ausschluss, Halten und Warten, keine Ressourcenentziehung und zirkuläres Warten.
-
- 1 / 51
-