Nenne 5 Betriebssystemkategorien!
- Mainframes (IMB OS/390, heute IBM System z)
-Serverbetriebssysteme (Unix, Windows NT/2000/2003/XP)
-Echtzeitbetriebssysteme (VxWorks, QNX)
-PC-Betriebssysteme (Windows-Derivate,Linux)
-Embedden Systems (Steuerungssyteme)
-Handheld-Computer (Palm OS, Windows CE)
-Smartcart-Betriebssysteme
-Serverbetriebssysteme (Unix, Windows NT/2000/2003/XP)
-Echtzeitbetriebssysteme (VxWorks, QNX)
-PC-Betriebssysteme (Windows-Derivate,Linux)
-Embedden Systems (Steuerungssyteme)
-Handheld-Computer (Palm OS, Windows CE)
-Smartcart-Betriebssysteme
Was ist ein Vom-Neumann-Rechner?
Wie unterscheidet er sich von einem Harvard-Rechener?
Wie unterscheidet er sich von einem Harvard-Rechener?
Von-Neumann-Rechner:
4 Funktionseinheiten:
-Leitwerk (Control Unit)
-Rechenwerk (Processing Unit)
-Speicher (Memory)
-Ein-/Ausgabe (Input/Output)
Das Leitwerk("Befehlsprozessor") holt die Maschinenbefehle nacheinander in den Speicher un führt sie aus.
Das Rechenwerk ("Datenprozessor"/ ALU) führt logische und arithmetische Operationen durch.
Maschinenbefehle und die zu verarbeitenden Daten liegen in einem gemeinsamen Speicher.
Heute: Zusammenfassung des Leit- und Rechenwerks zur CPU
Harvard-Rechner:
-2 getrennte Speicher, für Daten und Maschinenbefehle
-beide Speicher werden über einen getrennten Bus mit der CPU verbunden
4 Funktionseinheiten:
-Leitwerk (Control Unit)
-Rechenwerk (Processing Unit)
-Speicher (Memory)
-Ein-/Ausgabe (Input/Output)
Das Leitwerk("Befehlsprozessor") holt die Maschinenbefehle nacheinander in den Speicher un führt sie aus.
Das Rechenwerk ("Datenprozessor"/ ALU) führt logische und arithmetische Operationen durch.
Maschinenbefehle und die zu verarbeitenden Daten liegen in einem gemeinsamen Speicher.
Heute: Zusammenfassung des Leit- und Rechenwerks zur CPU
Harvard-Rechner:
-2 getrennte Speicher, für Daten und Maschinenbefehle
-beide Speicher werden über einen getrennten Bus mit der CPU verbunden
Wozu braucht man in Computern CPU-Register?
schnelle Speicher, benötigt um Maschinenbefehle auszuführen
Maschinenbefehle schreiben ihre Operanden in Register oder lesen Operanden aus Registern.
Typen von Registern:
Integerregister, Universalregister, Gleitkommaregister, Datenregister, Segmentregister
spezielles Register:
Programm Counter: enthält Hauptspeicheradresse des nächsten auszuführenden Befehls
Maschinenbefehle schreiben ihre Operanden in Register oder lesen Operanden aus Registern.
Typen von Registern:
Integerregister, Universalregister, Gleitkommaregister, Datenregister, Segmentregister
spezielles Register:
Programm Counter: enthält Hauptspeicheradresse des nächsten auszuführenden Befehls
Was ist ein Program Status Word (PSW) und woru wird es verwendet?
ein Statusregister, das für Vergleichsoperationen benutzt wird
enthält Kontrollbits
enthält Kontrollbits
Was ist ein Mehrzweck- oder Universalbetriebssystem?
Betriebssystem, das für verschiedenste Anwendungen eingesetzt werden kann
Meist keine Realtime-Eigenschaften
Einsatzbereich: betriebliche und verwaltungstechnische Aufgabenstellungen
Meist keine Realtime-Eigenschaften
Einsatzbereich: betriebliche und verwaltungstechnische Aufgabenstellungen
Was ist ein Mehrkernprozessor?
verfügen über mehrere vollständige CPUs
Ressourcen sind repliziert (kein Bus, nicht alle Caches)
Ressourcen sind repliziert (kein Bus, nicht alle Caches)
Welche Unix-Standards kennen Sie und was standardisieren diese?
Wichtigste Unix-Standards:
-XPG SVID
-POSIX
-SUS
Sie standardisieren Schnittstellen (Kommando- und Programmierschnittstellen)
-XPG SVID
-POSIX
-SUS
Sie standardisieren Schnittstellen (Kommando- und Programmierschnittstellen)
Was versteht man unter einem Mikrokern?
leichtgewichtiger Kernel:
-Funktionalität wird in Anwendungsprozesse ausgelagert
-übernimmt Kommunikation zw. Client- und Serverprozessen
Clientprozesse greifen auf den Mikrokern über Service-Request-Schnittstelle zu. Der Mikrokern leitet Requests an Serverprozesse weiter und stellt Clientprozessen die Ergebnisse zu
-Funktionalität wird in Anwendungsprozesse ausgelagert
-übernimmt Kommunikation zw. Client- und Serverprozessen
Clientprozesse greifen auf den Mikrokern über Service-Request-Schnittstelle zu. Der Mikrokern leitet Requests an Serverprozesse weiter und stellt Clientprozessen die Ergebnisse zu
Was versteht man unter einem „echt“ verteilten Betriebssystem im Gegensatz zu den heutigen Client-/Server-Systemen?
In einem echt verteilten Betriebssystem ist der Kernel transparent auf mehrere Rechner im Netzwerk verteilt.
Was versteht man unter Kommunikations-Middleware?
-wird eingesetzt um verteilte Anwendungssysteme zu realisieren
-wird im Benutzermodus betrieben
-stellt dem Anwendungsprogramm Dienste zur Kommunikation bereit
-wird im Benutzermodus betrieben
-stellt dem Anwendungsprogramm Dienste zur Kommunikation bereit
Nennen Sie vier Betriebsmittel, welche das Betriebssystem verwaltet! Welche davon sind hardware- und welche softwaretechnische Betriebsmittel?
Betriebsmittel sind u. a.:
– Speicher (Hardware)
– Prozessor (Hardware)
– Gerät (Hardware)
– Datei (Software)
– Nachricht (Software)
– Prozess (Software)
– Speicher (Hardware)
– Prozessor (Hardware)
– Gerät (Hardware)
– Datei (Software)
– Nachricht (Software)
– Prozess (Software)
Erläutern Sie den Unterschied zwischen Teilnehmer- und Teilhaberbetrieb! In welcher Betriebsart wird üblicherweise ein Transaktionsmonitor eingesetzt?
Teilnehmerbetrieb:
-jeder Anwender erhält seinen eigenen Benutzerprozess sowie weitere Betriebsmittel vom Betriebssystem zugeteilt
-Anmeldung des Benutzers über Login-Dialog beim System
Teilhaberbetrieb:
-Prozesse und Betriebsmittel werden über einen Transaktionsmonitor zugeteilt
-Im Gegensatz zum Teilnehmerbetrieb kommt der Teilhaberbetrieb mit wenigen Prozessen aus, um viele Dialoganwender zu unterstützen
-Prozesse werdem vom Transaktionsmonitor verwaltet und an Benutzer verteilt -> so als hätte jeder Benutzer seinen eigenen
-ideal für dialogorientierte Programme mit vielen parallel arbeitenden Anwendern mit kurzen schnellen Transaktionen
-jeder Anwender erhält seinen eigenen Benutzerprozess sowie weitere Betriebsmittel vom Betriebssystem zugeteilt
-Anmeldung des Benutzers über Login-Dialog beim System
Teilhaberbetrieb:
-Prozesse und Betriebsmittel werden über einen Transaktionsmonitor zugeteilt
-Im Gegensatz zum Teilnehmerbetrieb kommt der Teilhaberbetrieb mit wenigen Prozessen aus, um viele Dialoganwender zu unterstützen
-Prozesse werdem vom Transaktionsmonitor verwaltet und an Benutzer verteilt -> so als hätte jeder Benutzer seinen eigenen
-ideal für dialogorientierte Programme mit vielen parallel arbeitenden Anwendern mit kurzen schnellen Transaktionen
Welche Aufgaben erfüllt ein Transaktionsmonitor, welche ein Application-Server?
Transaktionsmonitor:
-Dienstprogramm, oberhalb des Kernels angesiedelt
-Aufgaben: Zugangskontrolle, Verteilung von Anfragen, Optimierung der Zugriffe, Verwaltung der Ressourcen, Zuordnung von Datenbankverbindungen
-Einsatz im Teilhaberbetrieb
Application-Server:
-ähnliche Aufgaben wie ein Transaktionsmonitor
-Anstelle von Transaktionsprogrammen laufen im Application-Server Komponenten verteilter Anwendungen ab
-Dienstprogramm, oberhalb des Kernels angesiedelt
-Aufgaben: Zugangskontrolle, Verteilung von Anfragen, Optimierung der Zugriffe, Verwaltung der Ressourcen, Zuordnung von Datenbankverbindungen
-Einsatz im Teilhaberbetrieb
Application-Server:
-ähnliche Aufgaben wie ein Transaktionsmonitor
-Anstelle von Transaktionsprogrammen laufen im Application-Server Komponenten verteilter Anwendungen ab
Nennen Sie einen Vorteil der Schichtenarchitektur bei Betriebssystemen!
Die Abhängigkeiten von der Hardware sind in einer Schicht gekapselt, was eine Portierung auf eine andere Hardwareplattform erleichtert.
Was versteht man unter Multiprogramming?
Möglichkeit der „gleichzeitigen“ oder aber auch „quasi-gleichzeitigen“ Ausführung von Programmen in einem Betriebssystem.
Benötigt man für Multiprogramming mehrere CPUs?
Nein, nicht unbedingt.
Multiprogramming kann auch über eine CPU realisiert werden, die nach einer vorgegebenen Strategie des Betriebssystems (Scheduling und Dispatching) auf die nebenläufigen Programme (Prozesse) aufgeteilt wird.
Multiprogramming kann auch über eine CPU realisiert werden, die nach einer vorgegebenen Strategie des Betriebssystems (Scheduling und Dispatching) auf die nebenläufigen Programme (Prozesse) aufgeteilt wird.
Was bezeichnet man als Timesharing?
Die Zuordnung des Prozessors nach Zeitintervallen an die nebenläufigen Programme.
Wozu verwendet man Embedded Systems? Nennen Sie ein Beispiel!
Als Embedded System bezeichnet man ein Rechner- bzw. Steuerungssystem, das in Geräten, Robotern oder Fahrzeugen eingebaut ist und dort seine Aufgaben meist unsichtbar verrichtet.
-geschlossene Systeme ->übernehmen dezidierte Aufgabe
-kleines oder kein Betriebssysten, da geringe Ressourcen
-oft Echtzeitsysteme
-geschlossene Systeme ->übernehmen dezidierte Aufgabe
-kleines oder kein Betriebssysten, da geringe Ressourcen
-oft Echtzeitsysteme
Wozu dient ein Terminalserver?
-bedienen „dumme“ Clientrechner (sog. Thin Clients)
-Anwendungsprogramme laufen vollständig in den Servern ab
-Clientrechner werden nur noch für die Präsentation eingesetzt
Idee hinter Terminaldiensten:
-Zentralisierung von Betriebsmitteln
-Anwender arbeitet mit gewohnter Benutzeroberfläche, Anwendungen laufen aber komplett im Server ab
-nur Bildschirmänderungen werden im Client dargestellt
-Anwendungsprogramme laufen vollständig in den Servern ab
-Clientrechner werden nur noch für die Präsentation eingesetzt
Idee hinter Terminaldiensten:
-Zentralisierung von Betriebsmitteln
-Anwender arbeitet mit gewohnter Benutzeroberfläche, Anwendungen laufen aber komplett im Server ab
-nur Bildschirmänderungen werden im Client dargestellt
Welche Dienstmodelle im Cloud Computing kennen Sie?
-Infrastructure as a Service (IaaS) für die Bereitstellung ganzer Rechnersysteme
-Platform as a Service (PaaS) für die Bereitstellung von Entwicklungsumgebungen
-Software as a Service (SaaS) für die Bereitstellung von Anwendungssystemen
-Platform as a Service (PaaS) für die Bereitstellung von Entwicklungsumgebungen
-Software as a Service (SaaS) für die Bereitstellung von Anwendungssystemen
Was ist der Unterschied zwischen Polling und interruptgesteuerter Verarbeitung?
Polling:
-zyklisches Abfragen von einer/ mehrerer Ereignisquelle(n), um deren Kommunikationsbereitschaft festzustellen oder um anliegende Ereignisse oder Kommunikationswünsche abzufragen
-Nachteil: CPU muss ständig arbeiten-> beeinträchtigt Effizienz des Systems
-Vorteil: leicht zu implementieren
Interrupts:
-Betriebssystembedingungen oder asynchrone Ereignisse
-> veranlassen Prozessor einen vordefinierten Code auszuführen, der außerhalb des normalen Programmflusses liegt
-keine ständige Abfrage, Ereignisquellen melden sich beim Auftreten eines Ereignissen
-zyklisches Abfragen von einer/ mehrerer Ereignisquelle(n), um deren Kommunikationsbereitschaft festzustellen oder um anliegende Ereignisse oder Kommunikationswünsche abzufragen
-Nachteil: CPU muss ständig arbeiten-> beeinträchtigt Effizienz des Systems
-Vorteil: leicht zu implementieren
Interrupts:
-Betriebssystembedingungen oder asynchrone Ereignisse
-> veranlassen Prozessor einen vordefinierten Code auszuführen, der außerhalb des normalen Programmflusses liegt
-keine ständige Abfrage, Ereignisquellen melden sich beim Auftreten eines Ereignissen
Was ist der Unterschied zwischen den Exception-Typen Fault und Trap? Nennen Sie jeweils ein Beispiel!
Faults sind Unterbrechungen vor der Befehsausführung wie z. B. Seitenfehler.
Traps sind Unterbrechungen nach der Befehlsausführung, die z. B. bei einer Division durch 0 auftreten.
Traps sind Unterbrechungen nach der Befehlsausführung, die z. B. bei einer Division durch 0 auftreten.
Wozu dient ein Systemcall und wie wird er üblicherweise von einem Betriebssystem wie Windows oder Unix ausgeführt?
-synchroner, also ein vorhersehbarer und reproduzierbarer Interrupt
-Dienstaufruf an das Betriebssystem, bei dessen Ausführung in den Kernelmodus gewechselt wird
-Der Kontrollfluss wird dabei meist von einem Anwendungsprogramm an den Kernel übergeben.
-Dienstaufruf an das Betriebssystem, bei dessen Ausführung in den Kernelmodus gewechselt wird
-Der Kontrollfluss wird dabei meist von einem Anwendungsprogramm an den Kernel übergeben.
Was bedeutet „Maskierung“ von Unterbrechungsanforderungen?
-explizite Ausschalten eines Interrupts für ein bestimmtes Gerät
-erfolgt über ein Maskenregister (Interrupt Mask Register)
Für jede Interrupt-Quelle wird in dem Register ein Maskierungsbit verwaltet. Wird das Bit auf 1 gesetzt, ist der Interrupt ausgeschaltet.
-erfolgt über ein Maskenregister (Interrupt Mask Register)
Für jede Interrupt-Quelle wird in dem Register ein Maskierungsbit verwaltet. Wird das Bit auf 1 gesetzt, ist der Interrupt ausgeschaltet.
Wie erkennt die CPU, dass eine Unterbrechungsanforderung ansteht?
-Die Prüfung, ob eine Unterbrechung ansteht, ist Teil des Befehlszyklus
-Nach Ausführung eines Maschinenbefehls wird überprüft, ob ein Interrupt-Request anliegt
-Nach Ausführung eines Maschinenbefehls wird überprüft, ob ein Interrupt-Request anliegt
Was versteht man unter einer Interrupt-Vektor-Tabelle?
-Tabelle, welche Interrupt-Vektoren enthält und an einer vordefinierten Stelle im Kernelspeicher liegt
-Der Index zur Adressierung innerhalb der Tabelle wird der CPU durch den Interrupt-Controller anhand der belegten Adressleitungen übermittelt
-Jeder Interrupt-Quelle wird ein fester Index auf diese Tabelle zugeordnet.
-Der Index zur Adressierung innerhalb der Tabelle wird der CPU durch den Interrupt-Controller anhand der belegten Adressleitungen übermittelt
-Jeder Interrupt-Quelle wird ein fester Index auf diese Tabelle zugeordnet.
Was bedeutet Interrupt-Sharing?
-Beim Interrupt-Sharing teilen sich mehrere Geräte eine Interrupt-Nummer.
-Bei Auftreten eines Interrupts muss dann ermittelt werden, welches Gerät den Interrupt tatsächlich ausgelöst hat.
-Diese Aufgabe erledigt meist das Betriebssystem.
-Bei Auftreten eines Interrupts muss dann ermittelt werden, welches Gerät den Interrupt tatsächlich ausgelöst hat.
-Diese Aufgabe erledigt meist das Betriebssystem.
Was versteckt der Trap-Mechanismus zum Aufruf eines Systemdienstes vor dem Anwendungsprogramm?
-versteckt die Adresse der Systemroutine vor dem Anwendungsprogramm
Der Trap-Mechanismus dient dazu, dass der Aufruf eines Systemcalls von einem Anwendungsprogramm aus ermöglicht wird, ohne dass die tatsächliche Adresse der Systemroutine bekannt sein muss.
Der Trap-Mechanismus dient dazu, dass der Aufruf eines Systemcalls von einem Anwendungsprogramm aus ermöglicht wird, ohne dass die tatsächliche Adresse der Systemroutine bekannt sein muss.
Erläutern Sie die Abwicklung eines Traps (Systemcalls)!
– Der aktuelle Kontext des laufenden Programms, also die Information, welche den aktuellen Status eines Prozesses beschreibt, wird gesichert.
– Der Program Counter wird mit der Adresse der passenden Systemroutine belegt.
– Vom Benutzermodus wird in den Kernelmodus geschaltet. – Die adressierte Systemroutine wird durchlaufen.
– Anschließend wird wieder der alte Kontext des Prozesses hergestellt und der Program Counter mit der Adresse des Befehls nach dem Systemcall belegt.
– Der Program Counter wird mit der Adresse der passenden Systemroutine belegt.
– Vom Benutzermodus wird in den Kernelmodus geschaltet. – Die adressierte Systemroutine wird durchlaufen.
– Anschließend wird wieder der alte Kontext des Prozesses hergestellt und der Program Counter mit der Adresse des Befehls nach dem Systemcall belegt.
Nennen Sie den Unterschied zwischen einem synchronen und asynchronen Interrupt!
synchroner Interrupt:
-tritt bei synchronem Ereignis (Ereignisse, die mit identischen Randbedingungen immer an der selben Stelle vorkommen) auf
-auch als Exception bezeichnet
-Ausnahmen werden von der CPU selbst ausgelöst und sind für das laufende Programm bestimmt
asynchroner Interrupt:
-nicht an laufendes Programm gebunden
-treten unabhängig vom System auf
-unterbrechen für kurze Zeit den Ablauf des laufenden Programms
- nicht vorhersehbar und können nicht ohne weiteres produziert werden
-zB: Ankunft einer Nachricht an einem Netzwerkadapter oder die Zustellung eines Plattenspeicherblocks an die CPU
-tritt bei synchronem Ereignis (Ereignisse, die mit identischen Randbedingungen immer an der selben Stelle vorkommen) auf
-auch als Exception bezeichnet
-Ausnahmen werden von der CPU selbst ausgelöst und sind für das laufende Programm bestimmt
asynchroner Interrupt:
-nicht an laufendes Programm gebunden
-treten unabhängig vom System auf
-unterbrechen für kurze Zeit den Ablauf des laufenden Programms
- nicht vorhersehbar und können nicht ohne weiteres produziert werden
-zB: Ankunft einer Nachricht an einem Netzwerkadapter oder die Zustellung eines Plattenspeicherblocks an die CPU
Welche Aufgabe hat ein Interrupt-Controller?
-erzeugt aus einem IRQ (Interruptanforderung) eine Unterbrechung der CPU, die mit Hilfe eines passenden Programmstücks (ISR) bearbeitet werden muss
In welchem Interrupt-Request-Level wird die normale Programmausführung unter Windows durchgeführt und wie unterbrechbar ist dieser?
Die normale Programmausführung wird im niedrigsten Interrupt-Level, dem sog. Passive-Level, ausgeführt und ist damit durch alle anderen Interrupts unterbrechbar.
Was ist in der Prozessverwaltung ein PCB, wozu dient er und welche Inhalte hat er? Nennen Sie dabei drei wichtige Informationen, die im PCB verwaltet werden!
PCB = Process Control Block
->ein Eintrag in der Prozesstabelle
Informationen:
-zur Identifikation des Prozesses,
-die Information zum aktuellen Prozesszustand
-Informationen zu sonstigen Ressourcen, die dem Prozess zugeordnet sind (Dateien, offene Netzwerkverbindungen)
->ein Eintrag in der Prozesstabelle
Informationen:
-zur Identifikation des Prozesses,
-die Information zum aktuellen Prozesszustand
-Informationen zu sonstigen Ressourcen, die dem Prozess zugeordnet sind (Dateien, offene Netzwerkverbindungen)
Threads werden heute von den meisten Betriebssystemen unterstützt. Was versteht man unter einem Thread?
-nebenläufige Ausführungseinheit innerhalb eines Prozesses
-light-weight Prozesse (LWP)
-light-weight Prozesse (LWP)
Wie verhalten sich Threads zu Prozessen im Hinblick auf die Nutzung des Prozessadressraums?
Threads erhalten den vollen Zugriff auf den zugehörigen Prozessadressraum.
Beschreiben Sie den groben Ablauf eines Prozess-Kontextwechsels und erläutern Sie, warum ein Thread-Kontextwechsel schneller sein kann, als ein Prozess-Kontextwechsel!
Prozess-Kontextwechsel:
-Unterbrechung eines aktiven Prozesses
-der Prozesskontext des unterbrochenen Prozesse wird gesichert und der Prozesskontext des neu aktivierten Prozesses in die Ablaufumgebung geladen.
Thread-Kontextwechsel( innerhalb eines laufenden P's):
-kann schneller sein als ein Prozess-Kontextwechsel, da meist die gleichen Speicherbereiche verwendet werden
-kein Austausch von Speicherbereichen notwendig, was Betriebsystem-Overhead reduziert
-Unterbrechung eines aktiven Prozesses
-der Prozesskontext des unterbrochenen Prozesse wird gesichert und der Prozesskontext des neu aktivierten Prozesses in die Ablaufumgebung geladen.
Thread-Kontextwechsel( innerhalb eines laufenden P's):
-kann schneller sein als ein Prozess-Kontextwechsel, da meist die gleichen Speicherbereiche verwendet werden
-kein Austausch von Speicherbereichen notwendig, was Betriebsystem-Overhead reduziert
Was versteht man unter User-Level-Threads im Vergleich zu Kernel-Level-Threads und welche Beziehungen zwischen beiden sind möglich?
User-Level-Threads laufen auf der Benutzerebene (Benutzermodus),
Kernel-LevelThreads auf der Kernelebene (Kernelmodus, Systemmodus) ab.
Kernel-LevelThreads auf der Kernelebene (Kernelmodus, Systemmodus) ab.
Was bedeutet eine 1:n-Beziehung zwischen den Betriebsmitteln Prozess und Thread?
Ein Prozess kann mehrere Threads beherbergen. 1:n-Beziehungen, bei denen ein Prozess nahezu beliebig viele Threads enthalten kann, sind heute in Betriebssystemen üblich.
Welche Aufgabe hat ein Thread unter Windows?
Threads stellen die eigentliche Scheduling-Einheit des Windows-Betriebssystems dar.
Kann es unter Windows sein, dass ein Thread mehreren Prozessen zugeordnet ist? Begründen Sie Ihre Entscheidung!
Nein, ein Thread wird innerhalb eines Prozesses erzeugt und ist diesem bis zur Terminierung zugeordnet.
Warum ist der Einsatz von Threads sinnvoll?
-Threads sind leichtgewichtiger als Prozesse
-ein Thread-Kontextwechsel ist schneller als ein Prozess-KW
-ein Thread-Kontextwechsel ist schneller als ein Prozess-KW
Welche zwei grundsätzlichen Implementierungsmöglichkeiten für Threads gibt es und welche Vor- bzw. Nachteile haben diese jeweils?
Implementierung auf Benutzerebene:
Vorteil: -hohe Effizienz
Nachteil: -Alle Threads eines Prozesses blockieren, wenn ein einzelner Thread blockiert
Implementierung auf der Kernelebene:
- Threads werden im Kernelmodus verwaltet
Vorteile: -Betriebssystem kann die Zuteilung der Rechenzeit über Threads gestalten und so einen Prozess nicht unnötig blockieren
- Multiprozessorsysteme werden besser unterstützt
- Prozess ist nicht blockiert wenn ein einzelner Thread
blockiert ist
Nachteile: -nicht so effizient
- größere Systemabhängigkeit
Vorteil: -hohe Effizienz
Nachteil: -Alle Threads eines Prozesses blockieren, wenn ein einzelner Thread blockiert
Implementierung auf der Kernelebene:
- Threads werden im Kernelmodus verwaltet
Vorteile: -Betriebssystem kann die Zuteilung der Rechenzeit über Threads gestalten und so einen Prozess nicht unnötig blockieren
- Multiprozessorsysteme werden besser unterstützt
- Prozess ist nicht blockiert wenn ein einzelner Thread
blockiert ist
Nachteile: -nicht so effizient
- größere Systemabhängigkeit
Beschreiben Sie einen einfachen Zustandsautomaten eines Prozesses
4 Zustände:
1. bereit: der Prozessist zur Bearbeitung vorbereitet
2. aktiv: hat CPU
3. blockiert: wartet auf Ressourcen zum weitermachen
4. beendet: schon nicht mehr im System vorhanden
Zustandsübergänge:
– bereit → aktiv: Das Betriebssystem wählt den Prozess aus (Aktivieren)
– aktiv→ bereit: Das Betriebssystem wählt einen anderen Prozess aus (Deaktivieren, Preemption, Vorrangunterbrechung)
– aktiv → blockiert: Der Prozess wird blockiert (z. B. wegen Warten auf Input, Betriebsmittel wird angefordert)
– blockiert → bereit: Der Blockierungsgrund wird aufgehoben (Betriebsmittel verfügbar)
– aktiv beendet: Prozessbeendigung oder schwerwiegender Fehler (Terminieren des Prozesses)
1. bereit: der Prozessist zur Bearbeitung vorbereitet
2. aktiv: hat CPU
3. blockiert: wartet auf Ressourcen zum weitermachen
4. beendet: schon nicht mehr im System vorhanden
Zustandsübergänge:
– bereit → aktiv: Das Betriebssystem wählt den Prozess aus (Aktivieren)
– aktiv→ bereit: Das Betriebssystem wählt einen anderen Prozess aus (Deaktivieren, Preemption, Vorrangunterbrechung)
– aktiv → blockiert: Der Prozess wird blockiert (z. B. wegen Warten auf Input, Betriebsmittel wird angefordert)
– blockiert → bereit: Der Blockierungsgrund wird aufgehoben (Betriebsmittel verfügbar)
– aktiv beendet: Prozessbeendigung oder schwerwiegender Fehler (Terminieren des Prozesses)
Welche Scheduling-Algorithmen sind für Echtzeitbetriebssysteme (Realtime-System) sinnvoll und warum?
Minimal Deadline First:
- Prozess mit der nächsten Zeitschranke(deadline) wird ausgewählt
Polled Loop:
- alle Geräte werden zyklisch abgefragt,dieses wird dann bearbeitet
Interrupt-gesteuert:
-warten auf Interrupts von Eregnisquellen und führen dann die geeignete Interrupt-Service-Routine aus
Echtzeitsysteme erfordern eine schnelle und berechenbare Reaktion auf anstehende Ereignisse
- Prozess mit der nächsten Zeitschranke(deadline) wird ausgewählt
Polled Loop:
- alle Geräte werden zyklisch abgefragt,dieses wird dann bearbeitet
Interrupt-gesteuert:
-warten auf Interrupts von Eregnisquellen und führen dann die geeignete Interrupt-Service-Routine aus
Echtzeitsysteme erfordern eine schnelle und berechenbare Reaktion auf anstehende Ereignisse
Welche Aufgaben haben im Prozess-Management der Dispatcher und der Scheduler?
Scheduler:
Komponente im Prozessmanager, die für die Planung der Betriebsmittelzuteilung zuständig ist
Dispatcher:
Komponente, die einen tatsächlichen Prozesswechsel ausführt
Komponente im Prozessmanager, die für die Planung der Betriebsmittelzuteilung zuständig ist
Dispatcher:
Komponente, die einen tatsächlichen Prozesswechsel ausführt
Nennen Sie jeweils zwei geeignete Scheduling-Verfahren für Batch- und DialogSysteme und erläutern Sie diese kurz!
Batchsysteme:
– First Come First Served (FCFS): FCFS bearbeitet die im System ankommenden Aufträge in der Reihenfolge ihres Eintreffens.
– Shortest Job First (SJF): SJF sucht sich dagegen immer den Job bzw. Prozess aus, von dem es die kürzeste Bedienzeit erwartet.
Dialogsysteme:
-Round Robin(RR):
-FCFS in Verbindung mit einer Zeitscheibe (Quantum)
- alle Prozesse gleich wichtig
- Prozess erhält Quantum, wenn abgelaufen, wird er unterbrochen; kommt in Warteschleife; ein anderer Prozess erhält die CPU
-unterbrochener Prozess kommt wieder drann, wenn die anderen Prozesse ihr Quantum verbraucht haben
-Leistung des Systems hängt von dauer des Quantums ab
-Priotity Scheduling(PS):
-wählt Prozess mit höchster Priorität aus
- setzt Verwaltung von Prioritäten voraus
– First Come First Served (FCFS): FCFS bearbeitet die im System ankommenden Aufträge in der Reihenfolge ihres Eintreffens.
– Shortest Job First (SJF): SJF sucht sich dagegen immer den Job bzw. Prozess aus, von dem es die kürzeste Bedienzeit erwartet.
Dialogsysteme:
-Round Robin(RR):
-FCFS in Verbindung mit einer Zeitscheibe (Quantum)
- alle Prozesse gleich wichtig
- Prozess erhält Quantum, wenn abgelaufen, wird er unterbrochen; kommt in Warteschleife; ein anderer Prozess erhält die CPU
-unterbrochener Prozess kommt wieder drann, wenn die anderen Prozesse ihr Quantum verbraucht haben
-Leistung des Systems hängt von dauer des Quantums ab
-Priotity Scheduling(PS):
-wählt Prozess mit höchster Priorität aus
- setzt Verwaltung von Prioritäten voraus
Erläutern Sie den Unterschied zwischen preemptive und non-preemptive Scheduling und nennen Sie jeweils zwei Scheduling-Strategien, die in diese Kategorien passen.
non-preemptive, auch „run-to-completion“-Verfahren:
- Prozess darf nicht unterbrochen werden, bis er seine Aufgaben vollständig erledigt hat.
ZB: FCFS, Shortest Job First (Batchsysteme)
preemptive Scheduling:
-Prozess darf unterbrochen werden ->rechenbreite Prozesse können suspendiert werden
- setzt Strategie zur Vergabe der CPU voraus, die vom Betriebsssystem unterstützt werden muss (basiert idR auf Zeitscheibentechnik)
-geeignet für Unterstützung konkurrierender Benutzer
ZB: Roun Robin (RR), Priority Scheduling (PS)(Dialogsysteme)
- Prozess darf nicht unterbrochen werden, bis er seine Aufgaben vollständig erledigt hat.
ZB: FCFS, Shortest Job First (Batchsysteme)
preemptive Scheduling:
-Prozess darf unterbrochen werden ->rechenbreite Prozesse können suspendiert werden
- setzt Strategie zur Vergabe der CPU voraus, die vom Betriebsssystem unterstützt werden muss (basiert idR auf Zeitscheibentechnik)
-geeignet für Unterstützung konkurrierender Benutzer
ZB: Roun Robin (RR), Priority Scheduling (PS)(Dialogsysteme)
Nennen Sie Vergleichskriterien, nach denen Scheduling-Algorithmen verglichen werden
können und erläutern Sie diese!
können und erläutern Sie diese!
– Wartezeit: Zeit, die ein Prozess auf die Ausführung warten muss, also die Summe aller Zeiträume, in denen ein Prozess warten muss.
– Bedienzeit (Servicezeit): Zeit, in der ein Prozess die CPU hält und arbeitenkann.
– Antwortzeit: Zeit, in der ein Anwender auf die Bearbeitung seines Auftragswarten muss.
– Durchsatz: Anzahl an Prozessen, die ein System in einer bestimmten Zeit bearbeiten kann.
– CPU-Auslastung: Auslastung der CPU während der Berbeitung von Prozessen in % der Gesamtkapazität.
– Durchlaufzeit = Verweilzeit: Gesamte Zeit, in der sich ein Prozess im System befindet (Servicezeiten + Wartezeiten).
– Bedienzeit (Servicezeit): Zeit, in der ein Prozess die CPU hält und arbeitenkann.
– Antwortzeit: Zeit, in der ein Anwender auf die Bearbeitung seines Auftragswarten muss.
– Durchsatz: Anzahl an Prozessen, die ein System in einer bestimmten Zeit bearbeiten kann.
– CPU-Auslastung: Auslastung der CPU während der Berbeitung von Prozessen in % der Gesamtkapazität.
– Durchlaufzeit = Verweilzeit: Gesamte Zeit, in der sich ein Prozess im System befindet (Servicezeiten + Wartezeiten).
Warum ist der Scheduling-Algorithmus Shortest Remaining Time First (SRTF) kaum zu realisieren?
-SRTF wählt den Prozess mit der kürzesten noch verbleibenden Zeit als nächstes aus -> für Dialogprozesse optimal
-Er ist kaum zu realisieren,da in Betriebssystemen keine Informationen über die verbleibende Prozesszeit
vorliegen.
-Er ist kaum zu realisieren,da in Betriebssystemen keine Informationen über die verbleibende Prozesszeit
vorliegen.
Was bezeichnet man in der Prozessverwaltung als Blockieren, Verklemmen und Verhungern?
Blockieren: Ein Prozess P1 belegt ein Betriebsmittel, ein zweiter Prozess P2 benötigt dasselbe Betriebsmittel ebenfalls und wird daher blockiert, bis P1 sein belegtes
Betriebsmittel freigegeben hat.
Verhungern (Starvation): Ein Prozess erhält trotz Rechenbereitschaft keine CPUZeit zugeteilt, z. B. weil ihm immer wieder Prozesse mit höherer Priorität vorgezogen
werden.
Verklemmung: Zwei oder mehrere Prozesse halten jeder für sich ein oder mehrere Betriebsmittel belegt und versuchen ein weiteres zu belegen, das aber von einem anderen Prozess belegt ist. Es liegt ein Zyklus von Abhängigkeiten vor. Kein Prozess gibt seine Betriebsmittel frei und alle Prozesse warten daher ewig. Dieser Zustand wird auch als Deadlock bezeichnet
Betriebsmittel freigegeben hat.
Verhungern (Starvation): Ein Prozess erhält trotz Rechenbereitschaft keine CPUZeit zugeteilt, z. B. weil ihm immer wieder Prozesse mit höherer Priorität vorgezogen
werden.
Verklemmung: Zwei oder mehrere Prozesse halten jeder für sich ein oder mehrere Betriebsmittel belegt und versuchen ein weiteres zu belegen, das aber von einem anderen Prozess belegt ist. Es liegt ein Zyklus von Abhängigkeiten vor. Kein Prozess gibt seine Betriebsmittel frei und alle Prozesse warten daher ewig. Dieser Zustand wird auch als Deadlock bezeichnet
Was versteht man unter einem kritischen Abschnitt?
-Codeabschnitt, der zu einer Zeit nur durch einen
Prozess bzw. Thread durchlaufen und in dieser Zeit nicht durch andere nebenläufige Prozesse bzw. Threads betreten werden darf
-darf nicht unterbrochen werden
Prozess bzw. Thread durchlaufen und in dieser Zeit nicht durch andere nebenläufige Prozesse bzw. Threads betreten werden darf
-darf nicht unterbrochen werden
Welche Maßnahmen sind zu treffen, damit es beim Durchlaufen eines kritischen Abschnitts
nicht zu Inkonsistenzen kommt? Gehen Sie dabei auf den Begriff des gegenseitigen
Ausschlusses (mutual exclusion) ein!
nicht zu Inkonsistenzen kommt? Gehen Sie dabei auf den Begriff des gegenseitigen
Ausschlusses (mutual exclusion) ein!
Um Inkonsistenzen zu vermeiden, muss ein kritischer Abschnitt geschützt werden.
- durch gegenseitugen Ausschluss ->mutual exclusion
-> Prozesse die einen kritischen Abschnitt ausführen wollen, müssen warten bis dieser frei ist. ->Illusion einer Anweisungsfolge
- durch gegenseitugen Ausschluss ->mutual exclusion
-> Prozesse die einen kritischen Abschnitt ausführen wollen, müssen warten bis dieser frei ist. ->Illusion einer Anweisungsfolge
Welche vier Kriterien sind nach Dijkstra für die Behandlung kritischer Abschnitte zu
beachten?
beachten?
– Mutual exclusion: Zwei oder mehr Prozesse dürfen sich nicht gleichzeitig im
gleichen kritischen Abschnitt befinden.
– Es dürfen keine Annahmen über die Abarbeitungsgeschwindigkeit und die
Anzahl der Prozesse bzw. Prozessoren gemacht werden. Der kritische Abschnitt muss unabhängig davon geschützt werden.
– Kein Prozess außerhalb eines kritischen Abschnitts darf einen anderen nebenläufigen Prozess blockieren.
– Fairness Condition: Jeder Prozess, der am Eingang eines kritischen Abschnitts wartet, muss ihn irgendwann betreten dürfen (kein ewiges Warten).
gleichen kritischen Abschnitt befinden.
– Es dürfen keine Annahmen über die Abarbeitungsgeschwindigkeit und die
Anzahl der Prozesse bzw. Prozessoren gemacht werden. Der kritische Abschnitt muss unabhängig davon geschützt werden.
– Kein Prozess außerhalb eines kritischen Abschnitts darf einen anderen nebenläufigen Prozess blockieren.
– Fairness Condition: Jeder Prozess, der am Eingang eines kritischen Abschnitts wartet, muss ihn irgendwann betreten dürfen (kein ewiges Warten).
Was sind Semaphore? Gehen Sie dabei kurz auf die Semaphoroperationen P() und V()
ein!
ein!
-Konzept zur Lösung des Mutual-Exclusion-Problems
auf Basis von Sperren
-Ein Semaphor verwaltet
- Warteschlangefür die Prozesse bzw. Threads, die gerade am Eingang eines kritischen Abschnitts warten
-Semaphorzähler
- wie viele Prozesse in den kritischen Abschnitt dürfen hängt von hängt von Initianlisierung des Semaphorzählers ab
2 Operationen:
-P() : beim Eintritt in einen kritischen Abschnitt
-> Semaphorzähler wird um 1 reduziert (bei >0)
bei SZ=0 -> kein Eintritt
-V() beim Verlassen des kA
SZ wir um 1 erhöht -> weiterer Prozess kann in den kA
auf Basis von Sperren
-Ein Semaphor verwaltet
- Warteschlangefür die Prozesse bzw. Threads, die gerade am Eingang eines kritischen Abschnitts warten
-Semaphorzähler
- wie viele Prozesse in den kritischen Abschnitt dürfen hängt von hängt von Initianlisierung des Semaphorzählers ab
2 Operationen:
-P() : beim Eintritt in einen kritischen Abschnitt
-> Semaphorzähler wird um 1 reduziert (bei >0)
bei SZ=0 -> kein Eintritt
-V() beim Verlassen des kA
SZ wir um 1 erhöht -> weiterer Prozess kann in den kA
Warum müssen die Semaphor-Operationen P() und V() selbst wieder ununterbrechbar
sein?
sein?
Unterbrechungen können zu Inkonsistenzen in der Warteschlangenbearbeitung oder im Semaphorzähler führen
Semaphore zur Kontrolle des Eintritts in einen kritischen Abschnitt müssen effizient
implementiert werden. Nehmen Sie zu dieser Aussage Stellung und betrachten Sie dabei
die Implementierungsvariante mit Polling (Busy Waiting).
implementiert werden. Nehmen Sie zu dieser Aussage Stellung und betrachten Sie dabei
die Implementierungsvariante mit Polling (Busy Waiting).
Semaphor-Operationen können bei ineffizienter Implementierung Auswirkungen auf die Leistung haben
Würde die P()-Operation mit Polling realisiert, so würde ein Prozess,
der gerade am Eingang des kritischen Abschnitts wartet, den Rechnerkern
nicht freigeben, bis sein Quantum abgelaufen ist. Daher ist Polling eine schlechte
Implementierungsvariante.
Würde die P()-Operation mit Polling realisiert, so würde ein Prozess,
der gerade am Eingang des kritischen Abschnitts wartet, den Rechnerkern
nicht freigeben, bis sein Quantum abgelaufen ist. Daher ist Polling eine schlechte
Implementierungsvariante.
Nennen Sie die vier notwendigen und hinreichenden Bedingungen, die zu einem Deadlock
führen!
führen!
Ein Deadlock kann nur eintreten, wenn folgende vier Bedingungen eintreffen:
– Mutual Exclusion für die benötigten Betriebsmittel.
– Prozesse belegen Betriebsmittel und fordern weitere an.
– Kein Entzug eines Betriebsmittels ist möglich.
– Zwei oder mehrere Prozesse warten in einer Warteschleife (circular waiting)
auf weitere Betriebsmittel.
– Mutual Exclusion für die benötigten Betriebsmittel.
– Prozesse belegen Betriebsmittel und fordern weitere an.
– Kein Entzug eines Betriebsmittels ist möglich.
– Zwei oder mehrere Prozesse warten in einer Warteschleife (circular waiting)
auf weitere Betriebsmittel.
Warum lassen sich Deadlocks bei nebenläufigen Prozessen schwer ganz vermeiden?
Deadlock-Vermeidung wird durch die Aufweichung mindestens eines der Kriterien erreicht. Deadlocks lassen sich a priori aber nur schwer vermeiden, weil sonst nur jeder Prozess ohne Gefahr eines Deadlocks zum Ablauf kommen dürfte. Alle Betriebsmittel müssten im Vorfeld reserviert werden.
Welche Alternative zur Behandlung von Deadlocks kennen Sie?
-Betriebsmittelbelegungsgraphen zur Erkennung und Beseitigung von Deadlocks zur Laufzeit
-Abbrechen eines Prozesses
-Entziehen des Betriebsmittels
-Abbrechen eines Prozesses
-Entziehen des Betriebsmittels
Was sind Race Conditions?
Situationen:
- zwei oder mehr Prozesse nutzen gemeinsame Betriebsmittel
- Endergebnisse der Nutzung hängen von der zeitlichen Reihenfolge der Operationen ab
- zwei oder mehr Prozesse nutzen gemeinsame Betriebsmittel
- Endergebnisse der Nutzung hängen von der zeitlichen Reihenfolge der Operationen ab
Was ist der Unterschied zwischen synchroner und asynchroner Kommunikation?
synchron:
-Sender und/oder Empfänger blockieren, um sich abzustimmen
zB Ein Sender sendet z. B. eine Nachricht über den
Aufruf eines Dienstes (send) ab und wartet so lange, bis der Empfänger die Nachricht
über einen weiteren Dienst (receive) gelesen hat
asynchron:
-Puffer im Kommunikationssystem
-Sender kann dort Nachricht ablegen und mit Aufgaben weiter machen ohne zu blockieren
-Sender und/oder Empfänger blockieren, um sich abzustimmen
zB Ein Sender sendet z. B. eine Nachricht über den
Aufruf eines Dienstes (send) ab und wartet so lange, bis der Empfänger die Nachricht
über einen weiteren Dienst (receive) gelesen hat
asynchron:
-Puffer im Kommunikationssystem
-Sender kann dort Nachricht ablegen und mit Aufgaben weiter machen ohne zu blockieren
Was ist Multicast-Kommunikation im Unterschied zu Broadcast und Anycast?
– Multicast: Hier adressiert der Sender eine definierte Gruppe von Empfängern. Eine Nachricht wird also an die gesamte Gruppe gesendet (Beziehung1:n, wobei n die Anzahl der Gruppenmitglieder ist).
– Broadcast: Bei dieser Adressierungsart sendet Nachrichten an alle möglichen Empfänger, z. B. alle Partner in einem Netzwerk (remote) oder auf einen bestimmten Rechner (lokal), (Beziehung 1:m, wobei m die Anzahl aller möglichen Partner ist).
– Anycast: Diese Art der Empfängeradressierung wendet sich auch an eine Gruppe, allerdings nimmt hier mindestens ein Empfänger, aber nicht zwangsweise alle Empfänger die Nachrichten entgegen (Beziehung 1:1...n).
– Broadcast: Bei dieser Adressierungsart sendet Nachrichten an alle möglichen Empfänger, z. B. alle Partner in einem Netzwerk (remote) oder auf einen bestimmten Rechner (lokal), (Beziehung 1:m, wobei m die Anzahl aller möglichen Partner ist).
– Anycast: Diese Art der Empfängeradressierung wendet sich auch an eine Gruppe, allerdings nimmt hier mindestens ein Empfänger, aber nicht zwangsweise alle Empfänger die Nachrichten entgegen (Beziehung 1:1...n).
Was versteht man unter einem Halbduplex- im Gegensatz zu einem Vollduplex-
Betrieb?
Betrieb?
nachrichtenbasierten Kommunikation
Vollduklexbetrieb: -beide Partner können gleichzeitig Nachrichten senden bidirektional
Halbduplexbetrieb: -nur einer nach dem anderen indirektional
Vollduklexbetrieb: -beide Partner können gleichzeitig Nachrichten senden bidirektional
Halbduplexbetrieb: -nur einer nach dem anderen indirektional
Erläutern Sie kurz die Funktionsweise von Pipes!
-Datenstrom von einem Prozess zum anderen
-können gelesen werden
unindirektionaler Datenstrom
-Auslesen mit FIFO Prinzip
-können gelesen werden
unindirektionaler Datenstrom
-Auslesen mit FIFO Prinzip
Welche grundlegenden Gedanken stecken hinter dem Konzept des virtuellen Speichers?
– Ein Prozess sollte auch dann ablaufen können, wenn er nur teilweise im Hauptspeicher ist. Wichtig ist hierbei, dass die Teile des Prozesses (Daten und Code) im physikalischen Speicher sind, die gerade benötigt werden.
– Der Speicherbedarf eines Programms sollte größer als der physikalisch vorhandene Hauptspeicher sein können.
– Ein Programmierer sollte am besten nur einen kontinuierlichen (linearen) Speicherbereich beginnend bei Adresse 0 sehen und sich nicht um die Zerstückelung (Fragmentierung) des Hauptspeichers auf mehrere Benutzer
kümmern.
– Der Speicherbedarf eines Programms sollte größer als der physikalisch vorhandene Hauptspeicher sein können.
– Ein Programmierer sollte am besten nur einen kontinuierlichen (linearen) Speicherbereich beginnend bei Adresse 0 sehen und sich nicht um die Zerstückelung (Fragmentierung) des Hauptspeichers auf mehrere Benutzer
kümmern.
Welche Aufgabe hat eine Verdrängungsstrategie und was ist ein Seitenfehler?
Verdrängungsstrategie:
-wird verwendet um eine zu verdrängende Seite auszuwählen
Seitenfehler (page fault):
-Trap, den die MMU erzeugt
-wenn von einem Prozess eine physikal. Adresse angesprochen wird, die nicht im Hauptspeicher geladen ist
-Betr.syst. springt in den Kernelmod. (auf spezielle Interruptroutine)
->Bearbeitet Seitenfehler und versucht die seite in einen Frame zu laden
-wird verwendet um eine zu verdrängende Seite auszuwählen
Seitenfehler (page fault):
-Trap, den die MMU erzeugt
-wenn von einem Prozess eine physikal. Adresse angesprochen wird, die nicht im Hauptspeicher geladen ist
-Betr.syst. springt in den Kernelmod. (auf spezielle Interruptroutine)
->Bearbeitet Seitenfehler und versucht die seite in einen Frame zu laden
Was bedeutet Demand-Paging und welche Alternative wäre denkbar?
-Abrufstrategie: Einlagerung nur auf Anforderung(wenn Daten benötigt werden)
Alternative: Prepaging: Seiten werden ohne Aufruf in Hauptsp. geladen
Alternative: Prepaging: Seiten werden ohne Aufruf in Hauptsp. geladen
Wie viele Seitentabellen müssen bei virtueller Adressierung vom Betriebssystem verwaltet
werden, wenn mit einer einstufigen Seitentabelle gearbeitet wird und gerade 10
Prozesse aktiv sind?
werden, wenn mit einer einstufigen Seitentabelle gearbeitet wird und gerade 10
Prozesse aktiv sind?
Es müssen 10 Seitentabellen verwaltet werden, eine je Prozess.
Ein virtueller Adressraum wird mit 32 Bit langen virtuellen Adressen adressiert. Eine virtuelle Adresse enthält jeweils 10 Bit für den Index in der Top-Level-Seitentabelle und 10 Bit für den Index in der Second-Level-Seitentabelle.
a) Wie viele Second-Level-Seitentabellen gibt es maximal je Prozess?
b) Wie groß sind die Seitenrahmen im Hauptspeicher?
c) Wie groß ist der gesamte virtuelle Adressraum eines Prozesses?
a) Wie viele Second-Level-Seitentabellen gibt es maximal je Prozess?
b) Wie groß sind die Seitenrahmen im Hauptspeicher?
c) Wie groß ist der gesamte virtuelle Adressraum eines Prozesses?
a)
210 = 1024 je Prozess, da 10 Bit für den Index der Top-Level-Tabelle zur Verfügung stehen. Die 1024 Einträge verweisen auf 1024 Second-Level-Tabellen.
b)
212 Byte = 4096 Byte, da 12 Bit für die Größe einer virtuellen Seite zur Verfügung stehen und die Größe einer physikalischen Seite (Frame) der Größe der virtuellen Seite entspricht.
c)
232 Byte = 4 GiB, da insgesamt 32 Bit für die Adressierung zur Verfügung stehen.
210 = 1024 je Prozess, da 10 Bit für den Index der Top-Level-Tabelle zur Verfügung stehen. Die 1024 Einträge verweisen auf 1024 Second-Level-Tabellen.
b)
212 Byte = 4096 Byte, da 12 Bit für die Größe einer virtuellen Seite zur Verfügung stehen und die Größe einer physikalischen Seite (Frame) der Größe der virtuellen Seite entspricht.
c)
232 Byte = 4 GiB, da insgesamt 32 Bit für die Adressierung zur Verfügung stehen.
Welcher Seitenersetzungsalgorithmus wäre theoretisch optimal und warum ist dieser praktisch nur schwer zu realisieren?
Algorithmus Belady:
die Seitenrahmen für eine Ersetzung auswählen, die am spätesten von allen belegten Seitenrahmen wieder benötigt werden
unmöglich da:
-man müsste Speicherzugriffe eines Prozesses sicher vorher bestimmen
-Das Betriebssystem kann zum Zeitpunkt des Seitenfehlers
nicht wissen, wann welche Seite als nächstes verwendet wird.
die Seitenrahmen für eine Ersetzung auswählen, die am spätesten von allen belegten Seitenrahmen wieder benötigt werden
unmöglich da:
-man müsste Speicherzugriffe eines Prozesses sicher vorher bestimmen
-Das Betriebssystem kann zum Zeitpunkt des Seitenfehlers
nicht wissen, wann welche Seite als nächstes verwendet wird.
Warum ist der LRU-Algorithmus zur Seitenersetzung bei der virtuellen Adressierung schwer zu realisieren? Welcher Algorithmus ist eine gute Alternative hierzu?
großer Aufwand bei jedem Zugriff
-nach zeitlicher Nutzung sortierte Liste müsste verwaltet werden
am längsten nicht benuztes Element wäre ganz oben
-aktuell genutzte Seite müsste ganz nach unten
Daher werden Pseudo-LRU-Algorithmen implementiert
(Clock-Page/Second Chance)
Alternative:
NFU (Not Frequently Used)-Alg. in Verbindung mit Aging Alg
-nach zeitlicher Nutzung sortierte Liste müsste verwaltet werden
am längsten nicht benuztes Element wäre ganz oben
-aktuell genutzte Seite müsste ganz nach unten
Daher werden Pseudo-LRU-Algorithmen implementiert
(Clock-Page/Second Chance)
Alternative:
NFU (Not Frequently Used)-Alg. in Verbindung mit Aging Alg
Welche Probleme ergeben sich bei sehr großen virtuellen Adressräumen in Bezug auf die Verwaltung der Seitentabellen?
-verschlechterte Leistungsfähigkeit
-mehrere Hauptspeicherzugriffe erforderlich
-mit wachsendem Adressraum wächst Speicherplatz für Verwaltung der Seitentabellen
-mehrere Hauptspeicherzugriffe erforderlich
-mit wachsendem Adressraum wächst Speicherplatz für Verwaltung der Seitentabellen
Welche Möglichkeiten gibt es, die hohe Belastung der Seitentabellenverwaltung insbesondere bei großen Adressräumen zu optimieren?
Optimierung der Speicherzugriffe durch:
-Adressumsetzpuffer (Translation Lookaside Buffers, kurz: TLB)
- invertierte Seitentabellen
-Adressumsetzpuffer (Translation Lookaside Buffers, kurz: TLB)
- invertierte Seitentabellen
Erläutern Sie das Working-Set-Verfahren, das Windows einsetzt!
jeder Prozess erhält ein sog. Working-Set( Arbeitsmenge an Frames) -> von minimal 20-50 un max. 40-345 je nach verfügbarem Hauptspeicher
Erläutern Sie die Grundprinzipien des TLB und der invertierten Seitentabelle mit Hashing!
TLB (Adressumsatzpuffer):
- eigener, schneller Speicher, der Tabelle darstellt -> darin sind Zuordnungen von virtuellen auf reale Adressen verwaltet
-aktuell am häufigsten benutzte Seitennr. werden in Tabelle eingetragen
-bei Adressumsetzung wird erst geprüft ob virtuelle Adr. im TLB vorhanden, wenn ja (TLB hit) kein Zugriff auf Seitentabellen nötig, da reale adresse schon von Frames ermittelt worden ist
->Ersparung des Hauptsp.zugriffs
wenn nicht (LTB miss)
klassische Adressumsetzung: über Seitentabellen(n) wird Mapping auf physikal. Adr. vorgenommen
Invertierte Seitentabelle mit Hashing:
-Suche nach Seite über Hashtabelle, Suchkriterium: virtuelle Seriennr.
-komplett im Hauptsp.
- eigener, schneller Speicher, der Tabelle darstellt -> darin sind Zuordnungen von virtuellen auf reale Adressen verwaltet
-aktuell am häufigsten benutzte Seitennr. werden in Tabelle eingetragen
-bei Adressumsetzung wird erst geprüft ob virtuelle Adr. im TLB vorhanden, wenn ja (TLB hit) kein Zugriff auf Seitentabellen nötig, da reale adresse schon von Frames ermittelt worden ist
->Ersparung des Hauptsp.zugriffs
wenn nicht (LTB miss)
klassische Adressumsetzung: über Seitentabellen(n) wird Mapping auf physikal. Adr. vorgenommen
Invertierte Seitentabelle mit Hashing:
-Suche nach Seite über Hashtabelle, Suchkriterium: virtuelle Seriennr.
-komplett im Hauptsp.
Was versteht man unter einem Shared Memory? Nennen Sie Einsatzmöglichkeiten!
Shared Memory:
-von mehreren Prozessen gemeinsam genutzter Speicherbereich
-wird nur einmal in Hauptsp geladen
-mehrere Seitentabelleneinträge verschiedener Prozesse verweisen darauf
Nutzung:
-um Codeteile, die mehrere Prozesse benötigen, nur einmal in den Hauptspeicher zu laden ->shared Libraries
-merhreren Prozessen globale Datenbereiche zur Verfügung stellen ->Prozesskomunikation
-von mehreren Prozessen gemeinsam genutzter Speicherbereich
-wird nur einmal in Hauptsp geladen
-mehrere Seitentabelleneinträge verschiedener Prozesse verweisen darauf
Nutzung:
-um Codeteile, die mehrere Prozesse benötigen, nur einmal in den Hauptspeicher zu laden ->shared Libraries
-merhreren Prozessen globale Datenbereiche zur Verfügung stellen ->Prozesskomunikation
Welche grundsätzlichen Speicherverwaltungsmechanismen sind in Unix-Systemen vorzufinden?
-virtuelle Speichertechnik mit Demand Paging für Einlesen von Daten
-zur Seitenersetzung :Clock-Page-Alg.
-zur Seitenersetzung :Clock-Page-Alg.
Welche Aufgaben hat ein Gerätetreiber?
–Er definiert ein Gerät-> macht es dem Betriebssystem bekannt, initialisiert also die Geräte-Controller beim Systemstart.
– Er stellt ein logisches Programmiermodell bereit und übersetzt es in gerätespezifische Anforderungen.
– Er dient der Pufferung von Daten auf dem Weg vom Gerät zum Hauptspeicher
und umgekehrt.
– Er übernimmt die Unterbrechungsbearbeitung für ein Gerät. In der Regel liegt im Treiber auch die passende Interrupt Service Routine (ISR) für das Gerät.
– Er dient der Koordination der nebenläufigen Zugriffe auf ein Gerät.
– Er stellt ein logisches Programmiermodell bereit und übersetzt es in gerätespezifische Anforderungen.
– Er dient der Pufferung von Daten auf dem Weg vom Gerät zum Hauptspeicher
und umgekehrt.
– Er übernimmt die Unterbrechungsbearbeitung für ein Gerät. In der Regel liegt im Treiber auch die passende Interrupt Service Routine (ISR) für das Gerät.
– Er dient der Koordination der nebenläufigen Zugriffe auf ein Gerät.
Was ist der Unterschied zwischen RAID-4 und RAID-5?
Bei RAID-4 werden die Datenbits wie bei RAID-5 zu Streifen zusammengefasst.
Pro Streifen wird eine Prüfsumme gebildet und auf einer eigenen Platte gespeichert.
In RAID-5-Systemen sind die Paritätsabschnitte auf alle Platten verteilt, um eine gleichmäßige Plattenauslastung zu erreichen. Ansonsten ist RAID-5 sehr ähnlich zu RAID-4.
Pro Streifen wird eine Prüfsumme gebildet und auf einer eigenen Platte gespeichert.
In RAID-5-Systemen sind die Paritätsabschnitte auf alle Platten verteilt, um eine gleichmäßige Plattenauslastung zu erreichen. Ansonsten ist RAID-5 sehr ähnlich zu RAID-4.
Welchen wesentlichen Vorteil bietet RAID-6 im Vergleich zu RAID-5 und welcher
Nachteil wird dadurch erkauft?
Nachteil wird dadurch erkauft?
RAID-6-Systeme sind wie RAID-5 aufgebaut, speichern aber mehr redundante Prüfdaten, so dass sogar der Ausfall von zwei Platten ohne Auswirkung bleibt.
Wenn n Festplatten für die Nutzdaten benötigt werden, ist ein RAID-6-System aus n+2 Platten aufgebaut.
RAID-6 zeichnet sich durch gute Leistung beim Lesen aus, die Schreibleistung ist allerdings schlechter als bei RAID-5.
Wenn n Festplatten für die Nutzdaten benötigt werden, ist ein RAID-6-System aus n+2 Platten aufgebaut.
RAID-6 zeichnet sich durch gute Leistung beim Lesen aus, die Schreibleistung ist allerdings schlechter als bei RAID-5.
Welche Vorteile bietet RAID-10?
RAID-10 vereinigt als Kombination von RAID-0 und RAID-1 die Vorteile beider Verfahren.
Es wird Striping und anschließend eine Spiegelung durchgeführt, d. h. RAID-10-Systeme sind schnell und ausfallsicher
Es wird Striping und anschließend eine Spiegelung durchgeführt, d. h. RAID-10-Systeme sind schnell und ausfallsicher
Welchen Vorteil hat Software-RAID gegenüber Hardware-RAID?
Bei Software-RAID ist keine eigene Controller-Hardware erforderlich, da die Verwaltung
der RAID-Platten im Betriebssystem erfolgt
der RAID-Platten im Betriebssystem erfolgt
Zu welchen Problemen kann Caching von Plattenspeicherinhalten in Treiberpuffern bei Ausfall eines Systems führen?
-Inkonsistenzen, wenn zum Ausfallzeitpunkt noch nicht alle Daten aus dem Cache auf einen persistenten Speicher geschrieben wurden
Was ist der Unterschied zwischen Emulation und Virtualisierung?
Emulation: bildet komplette Hard- und Software nach
Virtualisierung: bildet nur geringen Teil des kompletten Befehlssatz nach
Virtualisierung: bildet nur geringen Teil des kompletten Befehlssatz nach
Was muss ein Prozessor nach Popek und Goldberg erfüllen, damit eine effiziente Virtualisierbarkeit
gegeben ist?
gegeben ist?
-alle sensitiven Operationen müssen privilegiert sein
-> dann kann ein Hypervisor konstruiert werden
-> dann kann ein Hypervisor konstruiert werden
Was ist im Sinne der Virtualisierung ein kritischer Maschinenbefehl?
-sensitiv, aber nicht prvilegiert -> verursachen bei der Betriebssystemvirtualisierung gewisse Probleme, weil das Gastgeberbetriebssystem nicht erkennen kann, ob sie vom Anwendungsprogramm oder vom Hostbetriebssystem
abgesetzt werden.
abgesetzt werden.
Was versteht man unter einem Typ-1-Hypervisor?
-dient der Betriebssystemvirtualisieriung
-direkt über der Hardware als kleines Minibetriebssystem platziert
-läuft im Kernelmodus(Ring 0) oder in speziellem, privilegierten Modus
-direkt über der Hardware als kleines Minibetriebssystem platziert
-läuft im Kernelmodus(Ring 0) oder in speziellem, privilegierten Modus
Was versteht man unter einem Typ-2-Hypervisor?
-dient der Betriebssystemvirtualisieriung
-läuft als einfaches Benutzerprogramm über Gastgebersystem
-auch Hosted-Ansatz genannt
-läuft als einfaches Benutzerprogramm über Gastgebersystem
-auch Hosted-Ansatz genannt
Was versteht man unter Paravirtualisierung?
-Technik der Betriebssystemvirtualisierung
- man verändert das Gastbetriebssystem
-Hypervisor ist ein reduziertes Betriebssystem
-Vom Gastbetriebssystem werden Hypervisor-Aufrufe über spezielle Systemaufrufe (API) an das Gastgeberbetriebssystem
abgesetzt.
- man verändert das Gastbetriebssystem
-Hypervisor ist ein reduziertes Betriebssystem
-Vom Gastbetriebssystem werden Hypervisor-Aufrufe über spezielle Systemaufrufe (API) an das Gastgeberbetriebssystem
abgesetzt.
Was ist eine Schattentabelle im Sinne der Betriebssystemvirtualisierung?
- setzt reale auf physikalische Adresse um
-Über Schattentabelle ist direkte Umsetzung einer virtuellen Adresse auf eine physikalische möglich
-Über Schattentabelle ist direkte Umsetzung einer virtuellen Adresse auf eine physikalische möglich
Was bedeutet Ballooning bei der Speicherverwaltung eines Hypervisors?
-künstliche Speicheranforderung des Hypervisors
-er initiiert bei den Gastbetriebssystemen Replacement-Aktivitäten
-er initiiert bei den Gastbetriebssystemen Replacement-Aktivitäten
Wozu dient der Virtual Processor Identifier bei der Verwaltung des TLB?
Virtual Processor Identifier (VPID):
-eindeutige Identifikation der VM, kann als Identifikationsmerkmal für Zuordnung der TLB-Einträge zu den VMs genutzt werden
-TLB muss nicht bei jedem VM-Wechsel vollständig entlehrt und neu belegt werden
-eindeutige Identifikation der VM, kann als Identifikationsmerkmal für Zuordnung der TLB-Einträge zu den VMs genutzt werden
-TLB muss nicht bei jedem VM-Wechsel vollständig entlehrt und neu belegt werden
Kartensatzinfo:
Autor: @destructive_influen...
Oberthema: Betriebssysteme
Thema: Betriebssysteme
Schule / Uni: DHBW
Ort: Stuttgart
Veröffentlicht: 27.04.2016
Tags: Gödde
Schlagwörter Karten:
Alle Karten (92)
keine Schlagwörter