BSY - Betriebssysteme
Betriebssysteme
Betriebssysteme
-
- 1 / 162
-
Flashcards
Erkläre den Begriff Monitor und gib ein Beispiel für einen komplexen Monitor.
Ein Monitor ist ein Programm, welches bei Hardwre-Reset des Prozessors gestartet wird. Er initialisiert Interruptvektoren und die Kommunikation mit dem Anwender (beides nur falls vorhanden) und, in komplexeren Systemen, Speicher / IO-Schnittstellen, Cache, MMU, Disk-Controller, etc.
Ausserdem stellt er Debugging Hilfen und einfache Funktionen zur Verfügung.
Beispiel: BIOS bei PCs
Erkläre den Begriff Monitor in Zusammenhang eines Batch-Systems. Was macht der Monitor? Was machen die Monitor-Instruktionen?
Der Monitor liest Job um Job vom Eingabegerät und legt den Job im Anwenderprogramm-Bereich ab.
Die Monitor-Instruktionen starten das Anwenderprogramm und warten auf die Instruktion "END OF PROGRAMM" oder auf Fehler.
Was geschieht bei der Batch-Verarbeitung?
Der resident Monitor steuert den Ablauf, der immer im Speicher steht.
Hilfsfunktionen, etc. werden nach Bedarf mit Anwenderprogrammen geladen.
Wenn ein Job in den Speicher geladen wurde wird die Kontrolle an den Job abgegeben. Sobald der Job terminiert, geht die Kontrolle zurück an den Monitor (Bei END OF PROGRAM oder Fehler).
Die Resultate werden an entsprechende Ausgabegeräte weitergegeben.
Was weisst du über Uniprogramming in Bezug auf Batch Systeme?
I/O Operationen sind langsam im Vergleich zur Ausführung von Instruktionen (CPU oft idle).
Programme mit vielen I/O Operationen verbingen die meiste Zeit mit Warten und die CPU-Auslastung ist sehr schlecht.
Was weisst Du über Multiprogramming in Bezug auf Batch Systeme?
Mehrere Programme sind im Speicher. Während ein Programm auf I/O Operationen wartet, führt der Monitor ein anderes Programm aus (interleaving, concurrent).
Dies benötigt HW-Unterstützung:
- I/O Interrupts und (wenn möglich) DMA, damit Instruktionen während I/O Operationen ausgeführt werden.
- Speicherverwaltung (Memory Management) um mehrere lauffähige Jobs im Speicher zu halten.
Und SW-Unterstützung:
- Scheduling, damit klar ist, welcher Job als nächstes ausgeführt wird.
- Steuerung und Kontrolle des Zugriffs auf Ressourcen, um Konflikte zu vermeiden, bzw. zu lösen.
Welche HW-Unterstützung benötigt Multiprogramming?
- Interrupts
- Programmunterbruch -> Programmumschaltung möglich
- Timer
- verhindert, dass Job unendlich lange läuft
- time-out Interrupt -> Rückkehr in Monitor
- Speicherschutz
- Anwenderprogramm kann nicht versehentlich in Speicherbereich des (residenten) Monitors schreiben.
- Privilegierte Instruktion
- Nur vom Monitor ausführbar, z.B. I/O Instruktionen
- von den meisten modernen Prozessoren (und BS) unterstützt
Was ist ein Batchsystem?
Die ersten Betriebssysteme waren Batchsysteme.
Wie funktioniert ein Batchsystem?
Der Anwender übergibt einen Job (Lochkarte oder Band) an den Operator. Der Operator reiht mehrere Jobs sequentiell in einem Eingabegerät auf. Das nennt man dann Batch.
Ein spezielles Programm, der Monitor, kontrolliert die Ausführung der Jobs im Batch (sequentielle Verarbeitung).
Der für die Steuerung wichtige Teil des Monitors nennt man Resident Monitor. Er ist immer im Speicher.
Hilfsprogramme werden nach Bedarf geladen.
Erkläre den Begriff Time Sharing.
Bei Batch Multiprogramming ist keine Interaktion mit dem Anwender möglich.
Time Sharing erweitert Multiprogramming. Es ermöglicht die gleichzeitige (concurrent) Ausführung mehrerer interaktiver Programme. Die CPU-Zeit wird auf mehrere Benutzer verteilt und es ist ein "gleichzeitiger" Zugriff durch mehrere Benutzer möglich.
Nenne 3 Gründe weshalb Time Sharing Systeme funktionieren.
- Der Mensch hat "lange" Reaktionszeiten
- TSS benötigen ca. 2 sec. Rechenzeit pro Minute
- Der Anwender erhält Rechenleistung nur für gewisse Zeitdauer
Fazit:
ca. 30 Anwender könnten ohne wahrnehmbare Verlängerung der Reaktionszeit (<= 100ms) das System gemeinsam nutzen.
Weil es mehrere Benutzer gibt, wird aber ein Schutz des File Systems und des Arbeitsspeichers notwendig.
Was wird durch Time Sharing Systeme notwendig und weshalb?
Schutz des File Systems und des Arbeitsspeichers, da es mehrere Benutzer gibt.
Das erste Time Sharing System am MIT war das CTSS (Compatible Time Sharing System).
Was weisst du darüber?
Das CTSS war sehr einfach im Vergleich zu heutigen TS-Systemen.
- Monitor war klein
- Jobs immer vollständig in Speicherbereich geladen
- Auslagern von suspendierten Jobs nur wenn notwendig
- max. 32 Benutzer
Vergleiche Uni- und Multiprogramming Batch Systeme und Time Sharing Systeme miteinander.
Uniprogrammed Batch System
- Job aus Batch im Speicher
- sequentielle Verarbeitung der Jobs
- Monitor zur Steuerung, keine Interaktion mit Anwender
Multiprogrammed Batch System
- mehrere Jobs im Speicher
- benötigt Scheduler, Interrupts und Speicherverwaltung
Time Sharing System
- Gleichzeitige Verarbeitung mehrerer interaktiver Jobs
- benötigt Schutz des Filesystems und des Arbeitsspeichers
- benötigt Mutex (gegenseitiger Ausschluss), z.B. Zugriff auf Drucker
Frühere Betriebssysteme hatten einige Probleme. Zähle 4 davon auf.
- nichtdeterminischtisches Programmverhalten
- Das Resultat der Berechnung war abhängig von anderen aktiven Programmen.
- Gegenseitiger Ausschluss
- mehr als ein Programm greift gleichzeitig auf Ressource zu
- Synchronisation
- Signale beim Warten verloren.
- Deadlocks
- Programme warten gegenseitig, z.B. auf Freigabe von Ressourcen
Zähle die 5 Grundkonzepte moderner Betriebssysteme auf.
- Prozesse
- Scheduling und Ressourcenverwaltung
- Datenmanagement
- Speicherverwaltung
- File-Systeme
- Schutz und Sicherheit
- System-Architektur
Prozess ist ein Grundkonzept moderner Betriebssysteme. Was versteht man unter einem Prozess?
Das Programm in Ausführung.
Scheduling ist eines der Grundkonzepte moderner Betriebssysteme. Was versteht man darunter?
Die Zuteilung von Rechenleistung. Das Betriebssystem unterhält dafür Queues (Wartelisten).
Für das Scheduling unterhält das Betriebssystem Queues (Wartelisten).
Zähle diese auf.
- Ready Queue
- Prozesse warten im Speicher auf CPU
- Wait Queues
- Prozesse warten auf entsprechendes I/O Gerät oder I/O Operation
- Long Term Queue
- Prozesse warten auf Zulassung zum System
- Lässt beschränkte Anzahl von Prozessen zu
Ressourcenverwaltung ist ein Grundkonzept moderner Betriebssysteme. Was versteht man darunter und was berücksichtigt sie?
Die Verwaltung und Zuteilung von Ressourcen.
Sie berücksichtigt:
- Fairness
- Alle Prozesse haben grundsätzlich gleiche Zugriffsrechte
- differenzierte Behandlung
- verschiedene Klassen von Prozessen berücksichtigen globale Aspekte
- z.B. Prozesse, die auf I/O Daten warten, sofort einplanen, wenn Daten verfügbar
- Effizienz
- max. Durchsatz, min. Antwortzeit
- möglichst viele Benutzer bedienen
Speicherverwaltung ist eines der Grundkonzepte moderner Betriebssysteme. Was beinhaltet sie?
- Prozessisolation
- Kein gegenseitiger Zugriff auf Speicher und Daten möglich
- automatische Speicherallokation
- Programmierer muss sich nicht um Speicher kümmern
- Betriebssystem weist Speicher nach Bedarf zu
- Schutz und Zugriffskontrolle
- Zugriffskontrolle und Schutz bei gemeinsamer Nutzung des Speichers
File-Systeme gehören zum Datanmanagement, was ein Grundkonzept moderner Betriebssysteme ist. Erkläre was das File-System ist und was es macht.
Langzeitspeicherung von Daten auf Sekundärspeicher
- Informationsspeicherung in Files
- Objekte mit Namen (named objects)
- Einheit bezüglich Zugriff und Schutz
- Ablageorganisation der Files
- in Verzeichnissen (directories) -> hierarchisch
- Verzeichnisse enthalten Files und Verzeichnisse
- Operationen auf Files
- Erzeugen, Löschen, Öffnen, Schliessen, Lesen, Schreiben, Erweitern, Kopieren, Umbenennen, etc.
Schutz und Sicherheit ist eines der Grundkonzepte moderner Betriebssysteme. Was beinhaltet dies?
- Zugriffskontrolle
- Systemzutritt nur für zugelassene bzw. registrierte Nutzer
- Kein Zugriff auf nicht freigegebene Ressourcen
- Kontrolle des Informationsflusses
- innerhalb des Systems
- bei Auslieferung an Benutzer
System-Architektur ist eines der Grundkonzepte moderner Betriebssysteme. Was versteht man darunter?
Die Komplexität von Betriebssystemen
- CTSS, 1963, MIT => 32'000 36-Bit Wörter
- OS/360, 1964, IBM => mehr als 10^6 Instruktionen
- Win/XP => ca. 30*10^6 Zeilen Code
Was weisst du über das Schichtenmodell?
Ein Lösungsansatz für die Komplexität von Betriebssystemen.
Jede Schicht stellt eine Anzahl Funktionen zur Verfügung.
Jede Schicht verwendet Funktionen aus der nächst unteren Schicht.
Die Schnittstellen sind gut definiert, d.h. eine Schicht kann modifiziert werden, ohne andere Schichten zu beeinflussen.
Was sind Vorteile eines Schichtenmodelles? Was die Nachteile?
Vorteile:
- übersichtliche Struktur
- Aufteilung in Teilsysteme => einfacher zu handhaben
Nachteil:
- Leistungseinbusse (performance loss)
Wie sind Traditionelle Betriebssysteme aufgebaut? Kann das zu Problemen führen?
Nach dem Schichtenmodell.
Die Schichten sind sehr umfangreich. Grössere Änderungen in einer Schicht hat ev. Auswirkungen auf benachbarte Schichten.
Microkernel Architektur ist eine System-Architektur. Was weisst du darüber?
Nur die notwendigsten Funktionen sind im Kernel, abhängig von der aktuellen Implementation.
Die restlichen Dienste sind Prozesse, die im User Mode laufen (Server).
Typische ausgelagerte Funktionen sind: Filesystem, Treiber, Virtual Memory Manager, Window System, Sicherheitsdienste, etc.
Der Kernel ist die "Kommunikationsplattform zwischen Prozessen"
- Das ist zuverlässiger (weniger Code), leicht erweiterbar: neuer Dienst neuer Prozess
- einheitliche Schnittstellen: Message Passing zwischen Prozessen
- Flexibilität: nur benötigte Dienste laufen (anwendungsspezifische) => schlank
- Portabilität: Kernel klein => HW-Anbindung klein
- Leicht geringere Leistung, wegen Interprozesskommunikation
Bei Virtual Machine Monitore (VMM) unterscheiden wir 2 Typen. Was sind ihre jeweiligen Eigenschaften?
Type 1 Hypervisor: "bare metal" oder native
- Es gibt kein Host Betriebssystem
- Hypervisor beinhaltet Treiber für Ansteuerung der HW
Type 2 Hypervisor: hosted
- Hypervisor setzt auf "vollem" Betriebssystem auf
- Nutzt Filesystem und Treiber des Hosts für HW-Zugriff
- Benötigt meis Kernelmodul wegen privilegierten Instruktionen
Was sind Vor- und Nachteile von Virtual Machine Monitore (VMM)?
Vorteile:
- Mehrere Betriebssysteme laufen gleichzeitig auf einem Rechner
- WEB-Hosting, Cloud-Computing
- ein "Problem-" Betriebssystem beeinflusst die Funktionalität nicht.
Nachteile
- Etwas langsamer
Echtzeitsysteme müssen zwei Bedingungen erfüllen. Nämlich?
- Das Resultat muss logisch korrekt sein
- Das Resultat muss zur richtigen Zeit abgeliefert werden.
Was weisst du über Real-Time Betriebssysteme?
Sie haben im Allgemeinen eine sehr eingeschränkte Funktionalität. Meist haben sie kein Virtual Memory und Sekundärspeicher oder nur sehr beschränkt. Programme etc. sind dann im ROM.
Sie unterstützen nur die notwendigsten Funktionen und sind sehr hardwarenahe implementiert. Das gibt eine bessere Kontrolle über das Zeitverhalten.
Was versteht man unter Symmetrischem Multiprocessing?
Ein Rechner mit mehreren Prozessoren. Im Normalfall sind mehrere CPUs auf einem Chip.
Alle CPUs arbeiten selbständig und haben die gleiche Funktionalität, d.h. sie können alle Aufgaben bearbeitern (symmetrisch).
Sie nutzen den Hauptspeicher und die I/O Geräte gemeinsam, haben aber ein eigenes Cachesystem.
Was versteht man unter dem Cache Coherence Problem im Bezug auf symmetrisches Multiprocessing? Wie löst man dieses Problem?
Bei symmetrischem Multiprocessing hat jede CPU ihr eigenes Cachesystem.
Beim Cache Coherence Problem befindet sich der gleiche Block aus dem Speicher in mehreren Caches. Eine CPU ändert nun ein Wort in ihrem Cache. Was sehen die anderen CPUs?
Die Lösung dafür ist meist auf Hardwareebene.
Was versteht man unter echter Parallelität im Bezug auf symmetrisches Multiprocessing?
Das Betriebssystem verteilt Prozesse und Threads auf alle Prozessoren. Für den Anwender ist dies transparent.
Was sind Vorteile von symmetrischem Multiprocessing?
- Höhere Leistungsfähigkeit durch zusätzliche CPUs
- Verfügbarkeit: kein Stillstand bei Ausfall einer CPU, nur Leistungsreduktion
Was ist / macht ein Betriebssystem?
Es verwaltet die Hardware-Ressourcen und stellt dem Anwender diese zur Verfügung (Rechenleistung, Speicher, Daten (Disk), I/O Devices, Networking).
Es ist eine virtuelle Maschine.
Welche Komponenten hat ein Betriebssystem?
- Prozessor (CPU)
- Hauptspeicher
- Daten und Code
- I/O Module
- Sekundärspeicher
- Tastatur, Bildschirm
- Kommunikation
- etc.
- Bus
- verbindet CPU - Speicher - I/O
Beim Shared Memory in Multicore-Architekturen unterscheiden wir zwei Speicherzugriffsarten. Welche und was sind ihre Eigenschaften?
- Uniform Memory Access (UMA)
- Alle Speicherzugriffe sind gleich lang
- Non-Uniform Memory Access
- Ein Adressraum
- Speicherzugriffe auf "entfernten" aber Speicher langsamer
- Das Memory Management muss NUMA berücksichtigen
Was muss das Betriebssystem in Bezug auf UMA (Uniform Memory Access) und NUMA (Non-Uniform Memory Access) machen?
- Scheduling (Einplanen) von Programmen wenn möglich in UMA Gruppe. Diese berücksichtigt Lokalität und ist darum affiner.
- Daten richtig platzieren => Virtual Memory
Wie funktioniert das Schichtenmodell?
Jede Schicht stellt eine Anzahl Funktionen zur Verfügung, während sie Funktionen aus der nächst unteren Schicht verwendet. Durch gut definierte Schnittstellen kann eine Schicht modifiziert werden, ohne anderen Schichten zu beeinflussen.