• Beschreiben Sie die Gründe, warum Computer ein Betriebssystem verwenden.
Ressourcenmanagement: Betriebssysteme verwalten die Ressourcen eines Computers, einschließlich Prozessorzeit, Arbeitsspeicher, Festplattenspeicher, Eingabe- und Ausgabegeräte. Sie sorgen dafür, dass Ressourcen effizient und fair zwischen verschiedenen Anwendungen und Prozessen aufgeteilt werden.
Abstraktion von Hardware: Betriebssysteme bieten eine Abstraktionsschicht zwischen Hardware und Anwendungen. Das bedeutet, dass Programme nicht direkt mit der Hardware kommunizieren müssen. Stattdessen verwenden sie Schnittstellen und Funktionen des Betriebssystems, um auf Ressourcen zuzugreifen.
Beschreiben Sie die Unterschiede zwischen dem Kernel-Modus und dem Benutzermodus moderner CPUs.
Der Kernel-Modus gewährt dem Betriebssystem volle Kontrolle über die Hardware und ermöglicht es, kritische Aufgaben auszuführen. (voller Zugriff auf alle Recourcen).
Der Benutzermodus ist für Anwendungen reserviert (Programme, Internetbrowser, Texteditor etc.) und gewährt eingeschränkten Zugriff auf Ressourcen.
Das Betriebssystem bzw. der Kernel bietet eine art Schutzschicht zwischen den Eingaben des Benutzers und der Hardware dadurch soll ein unerlaubter Zugriff auf Hardware verhindert werden.
Wenn eine Anwendung eine Systemressource benötigt, muss sie einen Anforderungsaufruf (Systemaufruf oder Syscall) an das Betriebssystem senden. Der Kernel prüft dann die Anfrage und führt die entsprechende Operation im Kernel-Modus aus.
Beschreiben Sie das Konzept der Hardwareabstraktion und geben Sie ein konkretes Beispiel.
Die Hardwareabstraktion bezieht sich darauf, dass das Betriebssystem eine vereinfachte Schnittstelle bietet, um Hardwarekomponenten zu verwenden, ohne sich mit den komplexen Details ihrer Funktionsweise auseinandersetzen zu müssen. Ein Beispiel ist die Abstraktion von Festplatten als Dateien.
Beschreiben Sie die beiden Arten, wie ein Betriebssystem Ressourcen verwalten kann.
Ein Betriebssystem kann Ressourcen durch Multiplexing (Teilen) auf zwei Arten verwalten: zeitlich und räumlich. Beim zeitlichen Multiplexing bekommt jede auszuführende Anwendung abwechselnd Zugriff auf die CPU.
Beim räumlichen Multiplexing wird der Hauptspeicher zwischen mehreren laufenden Programmen aufgeteilt.
Erklären Sie den Begriff BIOS und beschreiben Sie seine Funktionalität.
Das BIOS (Basic Input Output System) ist ein Programm auf dem Hauptplatinen eines PCs. Es enthält Low-Level-Software, die u.a. die Tastatur, den Bildschirm und die Datenträger anspricht. Beim Booten überprüft das BIOS die installierte RAM-Menge und überprüft die Grundausstattung wie Tastatur und andere Geräte.
Geben Sie einen Überblick über die wichtigsten Konzepte, die in Betriebssystemen verwendet werden: Prozesse, Adressraum, Dateisystem.
Prozesse: Ein Prozess ist ein laufendes Programm auf einem Computer. Jeder Prozess hat einen eigenen Speicherbereich, in dem er ausgeführt wird, und er besitzt Ressourcen wie CPU-Zeit, Dateideskriptoren und Arbeitsverzeichnisse. Prozesse sind unabhängig voneinander und können parallel ablaufen. Das Betriebssystem ist dafür verantwortlich, die Prozesse zu verwalten, ihnen Ressourcen zuzuweisen und sicherzustellen, dass sie sich nicht gegenseitig stören. Dazu gehört auch das Umschalten zwischen verschiedenen Prozessen, um die Effizienz des Systems zu maximieren.
Adressraum: Der Adressraum bezieht sich auf den Bereich an Speicheradressen, den ein Prozess verwenden kann. Jeder Prozess hat seinen eigenen Adressraum, was bedeutet, dass er unabhängig von anderen Prozessen auf den Speicher zugreifen kann. Dies schafft Isolation und verhindert, dass Prozesse einander stören oder auf sensible Informationen zugreifen. Das Betriebssystem ist dafür verantwortlich, den Adressraum zu verwalten und sicherzustellen, dass Prozesse nur auf den ihnen zugewiesenen Bereich zugreifen.
Dateisystem: Das Dateisystem ist die Art und Weise, wie das Betriebssystem Daten auf einem Speichermedium organisiert und verwaltet. Es ermöglicht das Speichern, Abrufen und Organisieren von Dateien und Ordnern. Dabei werden Dateien in einem hierarchischen Strukturbaum angeordnet. Jede Datei hat einen eindeutigen Pfad und einen Dateinamen, der verwendet wird, um auf sie zuzugreifen. Das Dateisystem stellt sicher, dass Dateien sicher gespeichert und bei Bedarf wiederhergestellt werden können. Es verwaltet auch Berechtigungen, um sicherzustellen, dass nur autorisierte Benutzer auf bestimmte Dateien zugreifen können.
Diese Konzepte sind entscheidend für die Funktionsweise eines Betriebssystems, da sie die Grundlage für die Verwaltung von Prozessen, Speicher und Dateien bilden.
Beschreiben Sie das Konzept einer Shell.
Eine Shell ist eine Kommandozeileninterpreter oder grafische Benutzeroberfläche, die als Schnittstelle zwischen Benutzer und Betriebssystem fungiert. Sie ermöglicht dem Benutzer, Programme zu starten und mit dem Betriebssystem zu interagieren.
Beschreiben Sie das Konzept von Systemaufrufen.
Über “System Calls” kommunizieren Anwendungsprogramme mit dem Kernel des Betriebssystems wenn beispielsweise Zugriff auf Hardware, Speicherzuweisung, Dateioperationen usw. ausgeführt werden müssen die nur der Kernel durchführen kann.
Beschreibe das Konzept eines OS Prozess models.
Ein Prozess ist eine Instanz eines laufenden Programms. Jegliche ausführbare Software auf einem Computer wird in Prozesse unterteilt. Diese Abstraktion wird verwendet um Ressourcen zu koordinieren (z.B. CPU Zeit).
Erkläre wie die Speichersegmentierung für einen Prozess aussieht.
Jeder Prozess bekommt einen Speicherbereich der in 5 Segmente Unterteilt ist:
Code segment (.text): werden die Maschinenbefehle eines Programms gespeichert. (fixe Größe)
Data segment: speichert die initialisierten globalen und statischen Variablen (.bss speichert die uninitialisierten Gegenstücke?) beschreibbar aber auch fixe Größe)
Der Heap wird verwendet, um dynamische Daten zu speichern, die während der Laufzeit eines Programms erzeugt und freigegeben werden. Dies umfasst beispielsweise Objekte, die mit new oder malloc angefordert wurden. Der Speicher im Heap muss vom Programmierer wieder freigegeben werden.
new
malloc
Der Stack wird verwendet, um den Funktionsaufrufverlauf und lokale Variablen zu verwalten. Er speichert Informationen wie Rücksprungadressen, Parameter und lokale Variablen. Im Gegensatz zum Heap wird der Speicher Automatisch verwaltet und ist schneller
Was sind Events um Prozesse zu erzeugen?
System initialisierung: Beim Boot des OS werden diverse Prozesse gestartet
Prozesse können von bereits laufenden Prozessen gestartet werden mithilfe von System Calls
Bei einem Benutzerinterface kann man durch das Aufrufen (doppelklicken auf eine Symbol) einen Prozess starten.
In jedem Fall wird ein neuer Prozess durch einen bereits bestehenden Prozess gestartet (mittels System Calls)
Wie können Prozesse beendet werden?
Der Prozess ist fertig
Der Prozess hat einen Error z.B. Division durch 0, Speicherzugriff auf einen Speicher den es nicht gibt
Ein Prozess beendet einen anderen Prozess mittels System Call
Erkläre den Begriff Prozess Hirachie?
Prozesse können als Baumstruktur dargestellt werden. Alle Folgeprozesse haben einen gemeinsamen Ursprung den “INIT” Prozess. Der “Init” Prozess wird beim booten gestratet und erzeugt dann alle anderen Prozesse.
Beschreibe die Zustände die ein Prozess annehmen kann
Prozess läuft —> wird auf der CPU ausgeführt
Prozess bereit —> Prozess wartet bis er an der Reihe ist
Prozess geblocked —> Prozess kann erst laufen wenn ein externes Event auftritt
Es gibt 4 Übergänge für die 3 Zustände:
Das OS bemerkt dass ein Prozess nicht weiterlaufen kann —> es wir geblockt
Sheduler sagt Prozess hatte genug Zeit mit Ressourcen —> anderer Prozess ist an der Reihe
Alle Prozesse hatten ihre Zeit mit Ressources der erste Prozess ist wieder dran
Ein externes Event ist aufgetretten Prozess ist wieder bereit zum ausführen
Erkläre das Konzept eines OS Thread Modells
Ein Prozess ist wie ein eigenständiges Programm, während ein Thread eine kleinere Aufgabe innerhalb dieses Programms ist. Unterkathegorie des Processes. Threads teilen sich den gleichen Speicherbereich wie der Prozess, zu dem sie gehören. Jeder Thread unter einem Prozess hat jedoch einen eigenen Stack und Register.
Der Grund für Threads ist dass viele Prozesse unterschiedliche Aufgaben zu selben Zeit ausführen. Threads ermöglichen also eine parallele Abarbeitung diverser Aufgaben.
Prozesse gruppieren die verfügbaren Ressourcen, während Threads sich um die tatsächliche Ausführung auf der CPU kümmern. Prozesse haben ihre eigenen Speicherbereiche und Ressourcen, während Threads innerhalb eines Prozesses denselben Speicherbereich teilen und leichtgewichtiger sind. Prozesse sind mehr für die Organisation und Verwaltung von Ressourcen zuständig, während Threads für die Ausführung von Aufgaben auf der CPU verantwortlich sind.
Beschreibe die verschiedenen States eines Threads.
Running —> Ausgeführt auf CPU
Blocked —> Wartet auf ein Event
Ready —> Wartet bis es an der Reihe ist
Terminated —> Thread ist fertig
Beschreibe das Konzept von Inter-Process Kommunikation
Die Inter-Process Kommunikation (IPC) ist ein Mechanismus, der es verschiedenen Prozessen ermöglicht, miteinander zu kommunizieren und Daten auszutauschen. Das ist wichtig, da Prozesse in einem Betriebssystem normalerweise in isolierten Umgebungen arbeiten und nicht direkt auf den Speicher anderer Prozesse zugreifen können. Es gibt verschiedene Methoden der IPC
Wann wird eine sheduling Descision gemacht?
Neuer Prozess wird erzeugt
Der derzeitig laufende Prozess ist beendet
Prozess ist geblocked weil der auf I/O wartet
Ein I/O Interrupt ist aufgetrten ein Prozess der darauf gewartet hat kann ausgeführt werden
Wenn es einen Clock Takt gibt können die Entscheidungen bei jedem Clock interrupt gemacht werden
Erkläre die Unterschiede zwischen non-preemptive and preemptive scheduling algorithms.
non-preemptive: Ein Prozess läuft so lange bis er fertig ist oder geblocked wird.
preemptive scheduling: Jeder Prozess bekommt eine vordefinierte Zeit wie lange er laufen darf. Ist die Zeit vorüber dann wählt der Sheduler einen anderen Prozess aus der an der Reihe ist.
non-preemptive —> ist sinnvoll wenn keine schnelle Antwort verlangt wird bei systemen wo kein User davor sitzt
preemptive scheduling —> z.B Computer oder Server dort wo schnell eine Antwort verlangt wird
Describe the following scheduling algorithms:
• First-come, first-served
• Round-robin scheduling
• Priority scheduling
First-come, first-served: Prozesse werden in der Reihenfolge abgearbeitet wie sie gestartet werden. Wird ein neuer Prozess gestartet wird der ans Ende der Warteschlage gelegt. Ist ein Prozess fertig oder gblocked dann wird der erste Prozess in der Warteschlange gestartet.
Round-robin scheduling: Prozesse werden eine bestimmte Zeit gewährt die CPU zu benutzen. Sollte der Prozess nicht fertig sein wenn die Zeit abläuft wird er angehalten und ein anderer Prozess bekommt die CPU. Sollte der Prozess früher fertig sein oder blocken dann bekommt auch ein anderer Prozess CPU Zeit
Priority Scheduling: Prozesse werden einer Priorität zugewiesen und danach abgearbeitet. Die Priorität kann sich zur laufzeit ändern. Alternative kann auch eine Zeit vorgegeben werden.
Erkläre wie Speichermanagment funktioniert! (virtuelle Addressen, MMU)
Der virtuelle Speicher bedeutet, dass die Daten nicht ausschließlich im RAM liegen, da der Speicher des RAMs begrenzt ist, insbesondere wenn mehrere Prozesse gleichzeitig ausgeführt werden. Deshalb werden Teile des virtuellen Adressraums bei Bedarf auf die Festplatte ausgelagert.
Die MMU (Memory Management Unit) ist die Hardwarekomponente, die für die Übersetzung der virtuellen Adressen in physische Adressen zuständig ist. Sie sorgt dafür, dass angeforderte Daten von der Festplatte in den RAM geladen werden, wenn sie nicht bereits im physischen Speicher vorhanden sind.
Der virtuelle Adressraum wird in Seiten (oder Segmente) unterteilt. Eine Seite ist eine festgelegte Menge an Speicher, die verschoben werden kann. Wenn ein Programm eine Adresse im virtuellen Adressraum verwendet, kann die MMU die zugehörige physische Adresse bestimmen.
Wenn der Adressbereich, auf den zugegriffen wird, nicht im physischen Speicher liegt, wird eine Seite ausgelagert (swap out) und eine andere Seite wird in den physischen Speicher geladen (swap in).
Zuletzt geändertvor einem Jahr