Betriebssysteme
Zweck und Rolle eines modernen Betriebssystems
Zweck und Rolle eines modernen Betriebssystems
-
- 1 / 32
-
Cartes-fiches
Was sind die Grundfunktionen eines Betriebssystems?
1. Erweiterte Maschine
Das Betreibssystem realisiert von vielen Applikationen gleichartig genutzte Teilfunktionen als standardisierte Dienste. Damit wird die Applikationsentwicklung einfacher als beim direkten Zugriff auf die blanke Rechnerhardware.
2. Betriebsmittelverwalter
Das Betriebssystem verwaltet die zeitliche und räumliche Zuteilung von Rechnerressourcen.
Welche Zwecke / Funktionalitäten erfüllt ein Betriebssystem?
- Hardwareunabhängige Programmierschnittstelle: Programme können unverändert auf verschiedenen Computerprogrammen ablaufen
- Geräteunabhängige Ein-/Ausgabefunktionen: Programme können ohne Änderung unterschiedliche Modelle einer Peripheriegeräteart ansprechen
- Ressourcenverwaltung: Mehrere Benutzer bzw. Prozesse können gemeinsame Betriebsmittel ohne Konflikte nutzen
- Speicherverwaltung: Mehrere Prozesse / Applikationen können nebeneinander im Speicher platziert werden, ohne dass sie aufeinander Rücksicht nehmen müssen
- Massenspeicherverwaltunng (Dateisystem): Daten können persistent gespeichert und später wieder gefunden werden
- Parallelbetrieb (Multitasking): Mehrere Prozesse können quasiparallel ablaufen.
- Internprozesskommunikation: Prozesse können mit anderen Prozessen Informationen austauschen (lokal oder verteilte Systeme)
- Sicherheitsmechanismen: Es können sowohl Funktionen für die Datensicherung (fehlerfreie Datenverarbeitung) als auch Datenschutzkonzepte implementiert werden.
- Bedienoberflächen: Moderne Betriebssysteme realisieren grafische Bedienoberflächen mit ausgeklügelten Bedienkonzepten, die Dialoge mit dem System und Anwendungen komfortabel gestalten.
Was bedeutet persistieren?
Daten in einem nichtflüchtigen Speicher abspeichern (typischerweise in einer Datenbank), so dass sie auch über einen Programmneustart/Rechnerneustart hinweg noch unverändert vorhanden sind.
„Persistent“ wird als Fachbegriff für „nicht unkontrolliert veränderlich“ verwendet. Das bedeutet beispielsweise, dass die Daten auch nach Beenden des Programms (gegebenenfalls auch bei unvorhergesehenem Beenden, z. B. bei Stromausfall) vorhanden (gespeichert) bleiben, und bei erneutem Aufruf des Programms wieder rekonstruiert und angezeigt werden können. Bzgl. der logischen Verbindungen bedeutet Persistenz, dass die reale Verbindung bei Bedarf/nach einem Ausfall wiederhergestellt wird, ohne dass die zwischenzeitliche Trennung durch die Kommunikationspartner bemerkt wird.
Daten, die diese Eigenschaft nicht besitzen, existieren beispielsweise nur im Hauptspeicher des Computers und verändern oder verlieren ihren Inhalt, sobald das Programm endet, von dem sie angelegt wurden. Solche „flüchtigen“ Daten werden transient genannt, sie sind gepuffert.
Was ist ein Betriebssystem (Definition)?
Ein Betriebssystem ist eine Menge von Programmen, welche die Ausführung von Benutzerprogrammen auf einem Rechner und den Gebraucht der vorhandenen Betriebsmittel steuern. In einem Rechner stellt das Betriebssystem eine Softwareschicht dar, die zwischen den Benutzerapplikationen einerseits und der Rechnerhardware andererseits liegt.
Die drei Hauptziele eines Betriebssystems sind...
- Bequemlichkeit: erlaubt bequemere Benutzung des Comupters
- Effizienz: Computerressourcen können effizienter genutzt werden
- Flexibilität / Fähigkeit zur Weiterentwicklung: neue Komponenten können ohne Beeinflussung entwicklet und eingeführt werden
Was ist eine API?
API = Application Programming Interface
Programmierschnittstelle des Betriebssystems. Sie ist von zentraler Bedeutung für Softwareentwickler. Die dort zur Verfügung gestellte Funktionalität kann in Benutzerapplikationen eingesetzt werden.
Welche Hardewareelemente werden vom Betriebssystem verwaltet?
- Prozessor
- Arbeitsspeicher (mein memory)
- Massenspeicher (mass storage), z.B. Festplatten, DVD
- Benutzerschnittstelle (user interface)
- Kommunikations- und andere Peripheriegeräte (LAN, WLAN, Tastatur, Bildschirm usw.)
Ein Betriebssystem stellt eine Umgebung zur Verfügung, in der Anwendungsprogramme ablaufen können.
Welche Varianten von Ablaufumgebungen gibt es?
- Laufzeitsystem (Run-Time System) einer Programmiersprache (ADA, Modula-2)
- Virtuelle Maschine zur Ausführung eines Zwischencodes (z.B. JAVA VM, .NET Commmon Language Runtime)
- Basisprogramm eines Rechners (z.B. Unix, Windows)
- (Sprachunabhängige) Programmbibliothek (z.B. Mikrokontroller-Betriebssysteme)
Häufig findet man Kombinationen dieser vier Varianten
Nach welchen Anwendungsarten können Betriebssysteme klassifiziert werden?
- Stapelverarbeitung (batch processing): Programme werden angestossen ohne nennenswerte Benutzerinteraktion. Die auszuführenden Befehle sind in einer Stapeldatei abgelegt, deren Inhalt fortlaufend interpretiert wird.
- Time-Sharing-Betrieb: Die zru Verfügung stehende Rechenleistung wird in Form von Zeitscheiben auf einzelne Benutzer aufgeteilt mit dem Ziel, dass jeder Benutzer scheinbar den Rechner für sich alleine zur Verfügung hat.
- Echtzeitbetrieb: Die Rechenleistung wird auf mehrere Benutzer oder zumindest Prozesse aufgeteilt, wobei zeitliche Randbedinungen beachtet werden.
Welche Ziele sollten beim Entwurf einer Betriebssystemarchitektur berücksichtigt werden?
- Fehlerfreiheit des Codes (z.B. durch minimale Komplexität des Quellcodes)
- Einfache Operationen (auf API und für alle Schnittstellen)
- Erweiterbarkeit (extensibility)
- Skalierbarkeit (scalability)
- Orthogonalität: Operationen wirken gleich auf verschiedenartigen Objekten
- Robuste Betriebsumgebung ("crash-proof", "reliable")
- Einahltung der Sicherheitsziele
- Portabilität (Unterstützung verschiedenartiger Plattformen)
- Echtzeitfähigkeit (z.B. für Multimedia-Anwendungen)
- Effizienz (schnelle Diensterbringung, minimaler Ressourcenbedarf)
- Weiterentwickelbarkeit: Trennung von Strategie (policy) und Mechanismus (mechanism)
Wie kann Betriebssystemsoftware strukturiert sein (drei Grundtypen von Aufbaustrukturen)?
- Monolithisch: Keine oder unklare Struktur. Derartige Systeme können sehr effizient sein, da sich Schnittstellen frei wählen lassen. Sie sind jedoch schwierig wartbar, wenn ihre Struktur schlecht erkennbar ist.
- Geschichtet: Betriebssystemfunktionen sind in viele Teilfunktionen gegliedert, die hierarchisch auf mehrere Schichten verteilt sind. Die Schichtenarchitektur ist ein häufig angewandtes Strukturierungsprinzip für die Architektur von Softwaresystemen. Die erlaubten Abhängigkeitsbeziehungen zwischen den Aspekten werden bei einer Schichtenarchitektur dahingehend eingeschränkt, dass Aspekte einer „höheren“ Schicht nur solche „tieferer“ Schichten verwenden dürfen.
- Mikrokernsystem (Client/Server-Modell): Nur die allerzentralsten Funktionen sind ein einem Kernteil zusammengefasst, alle übrigen Funktionen sind als Serverdienste separat realisiert.
Was bedeutet MMU?
Memory Management Unit (deutsch: Speicherverwaltungseinheit).
Der Begriff benennt eine Hardwarkomponente eines Computers, die den Zugriff auf den Arbeitsspeicher verwaltet. Sie rechnet virtuelle Adressen in physische Adressen um. Damit ermöglicht sie den Zugriff auf den gesamten virtuellen Adressraum, der von einem Betriebssystem mit Hilfe der virtuellen Speicherverwaltung zur Verfügung gestellt wird.
Eine CPU (Central Processing Unit) - also der Hauptprozessor - muss mindestens zwei Betriebsarten (Modi) zur Verfügung stellen. Welche sind das?
- Kernmodus (kernel mode) mit "allen Rechten" für Betriebssystemcode
- Benutzermodus (user mode) mit "eingeschränkten Rechten" für Applikationscode.
Das Ziel besteht darin, die Applikationen untereinander und den Betriebssystemcode gegen diese zu schützen. Das bedeutet, dass eine Applikation nicht das ganze System lahmlegen kann.
Ergänzungen:
- Der Befehlssatz einer CPU wird als Maschinensprache bezeichnet
- Das Kernstürck einer CPU ist die ALU (Arithmetic Logical Unit)
- Der Speicher einer CPU besteht aus Registern
Was ist ein RTOS (Real-Time Operating System)?
Ein Echtzeitbetriebssystem (englisch real-time operating system, kurz RTOS genannt) ist ein Betriebssystem, das in der Lage ist, Echtzeit-Anforderungen der Anwendungen zu erfüllen. Das bedeutet das sofortige Verarbeiten von Anfragen oder anders gesagt es garantiert gewisse Aktionen in einer gewissen Zeit auszuführen.
Was ist der Unterschied zwischen harter Echtzeit und weicher Echtzeit?
Abhängig von den Folgen wird manchmal zwischen harter Echtzeit (engl. hard real-time) und weicher Echtzeit (engl. soft real-time) unterschieden. Hierfür gelten jeweils unterschiedliche Echtzeitanforderungen.
- harte Echtzeitanforderungen: Eine Überschreitung der Antwortzeit wird als ein Versagen gewertet. Nach einer exakten Zeiterfassung der bereitzustellenden Anwendung sind Berechnungen gemäß der Theorie der Echtzeitsysteme notwendig. Echtzeitsysteme liefern das korrekte Ergebnis immer innerhalb der vorgegebenen Zeitschranken. Auf diese Eigenschaft kann man sich beim Einsatz eines harten Echtzeitsystems verlassen.
- weiche Echtzeitanforderungen: Solche Systeme arbeiten typischerweise alle ankommenden Eingaben schnell genug ab. Die Antwortzeit erreicht beispielsweise einen akzeptablen Mittelwert oder ein anderes statistisches Kriterium. Die Zeitanforderungen sind hier als Richtlinien zu sehen. Ein Überschreiten der Zeitanforderung muss nicht als Versagen gewertet werden. Zum einen kann die Zeit häufig überschritten werden, solange sie sich noch in einem Toleranzbereich befindet. Zum anderen kann sie selten stark überschritten werden.
Was ist der Unterschied eines RISC und eines CISC Prozessors?
RISC steht für Reduced Instruction Set Computing. Übersetzt ist das ein Computer (Prozessor) mit einem reduzierte Befehlssatz, der nur wenige elementare Befehle enthält. Die meisten Befehle können innerhalb weniger Taktzyklen ausgeführt werden. Wenige und einfache Befehle haben einen einfacheren Prozessoraufbau zur Folge, in dem sich einfache digitale Schaltungen befinden und dessen Befehle (im Steuerwerk) fest verdrahtet sind. Dabei setzt man auf unabhängige Verarbeitungseinheiten, mehrere getrennte interne Bussysteme und Parallelverarbeitung der Befehle.
Alle RISC-Befehle haben das gleiche Format und es gibt nur eine Möglichkeit sie zu laden oder zu speichern. Weil sie nicht in kleinere Mikrocodes dekodiert werden müssen, sind RISC-Befehle viel schneller geladen als CISC-Befehle. Praktisch ist heute jeder Prozessor ein RISC-Prozessor oder er hat zumindest RISC-Elemente in sich. RISC-Prozessoren sind im wesentlichen billiger herzustellen, kleiner und von der Verschaltung her überschaubarer.
CISC steht für Complex Instruction Set Computing. Der CISC-Prozessor zeichnet sich durch einen großen Befehlsumfang und komplexe Adressierungsmöglichkeiten aus. Obwohl ein umfangreicher Befehlssatz zur Verfügung steht, werden in der Praxis nur wenige Befehle und Adressierungen verwendet.
Welche Bedeutung hat der Arbeitsspeicher / RAM (Random Access Memory) auf die Leistungsfähigkeit eines Computers?
Der Arbeitsspeicher ist in etwa vergleichbar mit dem Kurzzeitgedächtnis eines Menschen. Hier werden alle aktiven Programmen und die aktuell benötigten Daten gespeichert.
Von der Grösse und der Schnelligkeit des Arbeitsspeichers hängt die Leistungsfähigkeit des Computers in hohem Masse ab. RAM und CPU müssen unbedingt aufeinander abgestimmt sein.
Was ist ein Deadlock?
Deadlock oder Verklemmung bezeichnet in der Informatik einen Zustand, bei dem eine zyklische Wartesituation zwischen mehreren Prozessen auftritt, wobei jeder beteiligte Prozess auf die Freigabe von Betriebsmitteln wartet, die ein anderer beteiligter Prozess bereits exklusiv belegt hat. Dabei wird die CPU blockiert (= Starvation)
Was ist ein IRQ (Interrupt Request)?
In der Informatik versteht man unter einem Interrupt eine vorübergehende Unterbrechung eines laufenden Programms, um einen anderen, in der Regel kurzen, aber zeitkritischen, Vorgang abzuarbeiten.
Das auslösende Ereignis wird Unterbrechungsanforderung (engl. Interrupt Request, IRQ) genannt. Nach dieser Anforderung führt der Prozessor eine Unterbrechungsroutine aus (auch Unterbrechungsbehandlung genannt). Anschließend wird das unterbrochene Programm dort fortgeführt, wo es unterbrochen wurde.
Beispielsweise sendet die Tastatur eine Unterbrechungsanforderung, wenn eine Taste gedrückt wurde. Dazu wird ein Signal auf den Bus oder direkt an einen nur dafür vorgesehenen Prozessorpin (IRQ-Eingang) gelegt. Die Unterbrechungsroutine kann daraufhin das jeweilige Zeichen von der Tastatursteuerung lesen und es an die jeweilige Anwendung weiterleiten.
Interrupts (Unterbrechungen) haben verschiedene Prioritäten.
Was sind NMIs (non-maskable interrupts)?
Unterbrechungsanforderungen können zeitweise von der CPU ignoriert werden, zum Beispiel wenn gerade ein anderer Interrupt behandelt wird. Dies kann für gewisse zeitkritische und synchronisierende Routinen z. B. in Gerätetreibern notwendig sein. Diese Maskierung gilt für alle Interrupts bis auf die nicht maskierbaren (NMI: Non Maskable Interrupt = nicht unterdrückbare Interrupts), die für spezielle Fälle vorgesehen sind (Stromausfall, Speicherfehler, System Reset usw.), und für die so genannten Software-Interrupts, die durch einen Befehl in einem Programm ausgelöst werden.
Ohne besondere Maßnahmen können NMIs auch ihre eigene Service-Routine (ISR) unterbrechen, was zu erheblichen Softwareproblemen führen kann. Damit dies nicht bei normalen (maskierbaren) Interruptanfragen passiert, maskiert die Interruptlogik in der CPU im normalen Interruptzyklus noch vor dem Einsprung in die ISR die Interrupts automatisch aus. Nach Ausführung der ISR wird mit dem Rücksprung in das unterbrochene Programm immer der alte Zustand wiederhergestellt.
Was ist ein DMA (Direct Memory Access)?
Der Begriff Speicherdirektzugriff oder englisch Direct Memory Access (DMA) bezeichnet in der Computertechnik eine Zugriffsart, die über ein Bussystem direkt auf den Speicher zugreift. Die DMA ist eine eigene Komponente auf dem Motherboard.
Diese Technik erlaubt angeschlossenen Peripheriegeräten, wie z. B. Netzwerkkarte oder Soundkarte, ohne Umweg über die CPU direkt mit dem Arbeitsspeicher zu kommunizieren. Der Vorteil des Speicherdirektzugriffs ist die schnellere Datenübertragung bei gleichzeitiger Entlastung des Prozessors.
Was ist der unterschied von Segmentation fault und Page fault?
Bei Computern tritt eine Schutzverletzung (von englisch segmentation fault) oder Zugriffsverletzung auf, wenn ein Computerprogramm auf eine Ressource (insbesondere auf Speicher) zuzugreifen versucht, die vor einem solchen Zugriff geschützt bzw. nicht erreichbar sein soll. Hierbei sendet der Betriebssystemkern ein Signal zum Prozess, der den Fehlgriff ausgelöst hat, was im Normalfall in dessen Beendigung resultiert.
Der segmentation fault ist nicht zu verwechseln mit dem page fault (Seitenfehler), der lediglich das Programm so lange unterbricht, bis die fehlende Seite vom Sekundärspeicher in den Hauptspeicher geladen wurde.
Thread, Prozess, Scheduler - what's that?
- In der Informatik bezeichnet Thread auch Aktivitätsträger oder leichtgewichtiger Prozess genannt – einen Ausführungsstrang oder eine Ausführungsreihenfolge in der Abarbeitung eines Programms. Ein Thread ist Teil eines Prozesses.
- Ein Prozess ist eine wichtige Abstraktion, die von Betriebssystemen angeboten wird um Computerprogramme ausführen zu können. Es handelt sich um ein Computerprogramm zur Laufzeit bzw. um die konkrete Instanzierung eines Programms zu dessen Ausführung innerhalb eines Rechnersystems. Als Prozess bezeichnet man auch die gesamte Zustandsinformation eines laufenden Programms.
- Die Prozesse werden vom Prozess-Scheduler des Betriebssystems verwaltet. Dieser kann einen Prozess entweder so lange ausführen, bis er beendet oder blockiert wird (nicht-unterbrechender Scheduler) oder in kurzen Zeitabständen zwischen verschiedenen aktiven Prozessen hin und her wechseln (unterbrechender Scheduler), wodurch der Eindruck von Gleichzeitigkeit entsteht, auch wenn zu jedem Zeitpunkt nicht mehr als nur ein Prozess verarbeitet wird. Letzteres ist die vorherrschende Scheduling-Strategie heutiger Betriebssysteme.
Virtuelle Maschinen im Sinne eriner BS-Struktur... (sind was, dienen wozu?)
- sind exakte Kopien der "nackten" Hardware
- Vereinfachen die Trennung von Entwurf, Implementierung, Testing und Produktion
Im Rechnerbau unterscheide man verschiedene Architektur-Modelle. Welche kennst du?
- Harvard Architektur
- von Neumann Architektur
Ein von Neumann Rechner hat einige grundlegende Eigenschaften. Welche sind dies?
- Die CPU "versteht" nur Anweisungen in binärer Form
- Ein Mnemonic ist die Bezeichnung für den Namen eines CPU-Befehls, der an sich in binärer Form vorliegt
- Die CPU kann nur eine ganz bestimmte Anzahl von spezifischen Maschinenbefehlen "verstehen"
- Der Speicher ist (entsprechend der Wortlänge der Maschine) in 8, 16, 32 oder 64 Bit breite Speicherzellen eingeteilt. Jede Zelle hat eine eindeutige Adresse
Das Betriebssystem verwaltet unter anderem Betriebsmittel. Was sind Betriebsmittel?
Betriebsmittel oder Systemressourcen sind Systemelemente eines Computers, die von Prozessen zur korrekten Ausführung benötigt werden, wie z. B.
- Festplatte
- Arbeitsspeicher
- Drucker bzw. Geräte
- Prozessoren
- Dateien
Was ist ein RAID-Speichersystem?
RAID ist ein Akronym für englisch „Redundant Array of Independent Disks“, also „Redundante Anordnung unabhängiger Festplatten“. Ein RAID-System dient zur Organisation mehrerer physischer Massenspeicher (üblicherweise Festplattenlaufwerke oder Solid-State-Drives) zu einem logischen Laufwerk, das eine höhere Ausfallsicherheit oder einen größeren Datendurchsatz erlaubt als ein einzelnes physisches Speichermedium.
Was ist ein Systemaufruf?
Ein Systemaufruf, auch Systemcall, ist eine von Anwendungsprogrammen benutzte Methode, um vom Betriebssystem bereitgestellte Funktionalitäten auszuführen, wie etwa das Lesen einer Datei. Dabei wird die Kontrolle vom Programm an den Kernel übergeben.
Was versteht man unter Multiprogramming?
Multiprogramming (Mode), Multitasking ist eine Betriebsart eines Computers, bei der sich mehrere Programme gleichzeitig ganz oder teilweise im Arbeitsspeicher befinden und abwechselnd von dem Zentralprozessorbearbeitet werden.
Was ist ein Stack und was sind drei typische Operationen?
Stack = Stapelspeicher
Typische Operationen:
- push (legt das Objekt oben auf den Stapel)
- pop oder pull (liefert das oberste Objekt und entfernt es vom Stapel)
- peek oder top (liefert das oberste Objekt, ohne es zu entfernen)
Was ist eine Interrupt-Service-Routine?
Jeder Prozessor unterstützt den Mechanismus der Programmunterbrechung (interrupt) durch seine Hardware. Die CPU reagiert in einem solchen Fall mit dem Aufruf eines speziellen Unterprogramms, der Interrupt-Service-Routine. Es erledigt die Ausnahmebehandlung (Interrupt) bevor das unterbrochene Programm weiterläuft.
Was ist der Unterschied eines synchronen und eines asynchronen Interrupts?
Unterbrechungsbehandlungen finden an ganz bestimmten Programmstellen (synchrone Unterbrechung) oder irgendwann während der Programmausführung (asynchrone Unterbrechung > externe Interrupts wie Hardwareinterrupts) statt.