Grundlagen der Betriebssysteme: Konzepte und Definitionen
Eingeordnet in Informatik
Geschrieben am in Deutsch mit einer Größe von 4,51 KB
Betriebssystem (OS)
Ein Betriebssystem (OS) ist Software, die Hardware-Ressourcen verwaltet und dem Benutzer ein hohes Maß an Abstraktion bietet.
Prozesse: Programme in Ausführung
Prozesse sind Programme, die sich in Ausführung befinden.
Multitasking-Systeme
Multitasking-Systeme ermöglichen die gleichzeitige Ausführung mehrerer Programme.
Multiuser-Systeme
Multiuser-Systeme ermöglichen den gleichzeitigen Zugriff mehrerer Benutzer.
Kommandozeilen-Interpreter (CLI)
Ein Kommandozeilen-Interpreter (CLI) ist eine Programmoberfläche, die Befehle ausführt.
Systemaufrufe
Systemaufrufe sind Schnittstellen, über die Programme Dienste des Betriebssystems anfordern (API).
Monoprogrammierbare Systeme
Monoprogrammierbare Systeme halten nur einen Job im Speicher. Die CPU ist während E/A-Operationen ungenutzt, da der Prozess auf Systemressourcen zugreift und die CPU in dieser Zeit nicht genutzt werden kann.
Time-Sharing-Systeme
Time-Sharing-Systeme ermöglichen es mehreren Prozessen, die CPU abwechselnd zu nutzen, oft mit mehreren Terminals, die an einen Großrechner angeschlossen sind.
Prozess: Definition und Zustand
Ein Prozess ist eine Ausführungseinheit, die Anweisungen und einen zugehörigen Zustand umfasst.
Programm
Ein Programm ist eine Sammlung von Anweisungen, die zur Ausführung vorgesehen sind.
Prozesszustände
Die Zustände von Prozessen sind: Neu, Bereit, Ausführend, Geschlossen und Herunterfahren.
Konkurrierende Anwendungen
Konkurrierende Anwendungen sind Anwendungen, die Threads und/oder Kindprozesse nutzen, um gleichzeitig ausgeführt zu werden und um Ressourcen konkurrieren.
Gegenseitiger Ausschluss (Mutual Exclusion)
Gegenseitiger Ausschluss (Mutual Exclusion) ist ein Mechanismus, der sicherstellt, dass zwei oder mehr parallele Prozesse nicht gleichzeitig auf eine gemeinsam genutzte Ressource zugreifen können. Er kann durch Hardware- (z.B. mittels TSL-Instruktion) oder Software-Mechanismen (z.B. mit Busy Waiting oder ohne) implementiert werden.
Blockierendes Warten
Blockierendes Warten: Ein Prozess verbleibt im blockierten Zustand, bis die benötigte Ressource freigegeben wird.
Aktives Warten (Busy Waiting)
Aktives Warten (Busy Waiting): Ein Prozess kehrt kontinuierlich in den Zustand 'Bereit' zurück oder prüft aktiv, bis die benötigte Ressource verfügbar ist, anstatt blockiert zu werden.
Prozesskontext
Der Kontext eines Prozesses ist ein Teil seines Zustands, der durch die Werte der CPU-Register definiert wird.
Kontextwechsel (Context Switch)
Ein Kontextwechsel (Context Switch) ist der Vorgang, bei dem der aktuelle Zustand (Kontext) eines Prozesses (z.B. CPU-Register) gespeichert und der Kontext eines anderen Prozesses geladen wird (oft aus dem Prozesskontrollblock, BCP).
Thread
Ein Thread ist ein unabhängiger Ausführungsstrang innerhalb eines Prozesses. Er dient dazu, mehrere Anweisungssequenzen parallel (oder scheinbar gleichzeitig) innerhalb desselben Prozesses auszuführen.
Scheduler
Scheduler: Der Kurzzeit-Scheduler (CPU-Scheduler) entscheidet, welcher der bereiten Prozesse die CPU zugewiesen bekommt. Der Langzeit-Scheduler (Job-Scheduler) entscheidet, welche neuen Prozesse in die Warteschlange der bereiten Prozesse aufgenommen werden.
Präemptives Scheduling
Präemptives Scheduling: Ein System ist präemptiv, wenn die CPU in der Lage ist, einen laufenden Prozess zu unterbrechen und ihn aus der Ausführung zu entfernen.
Nicht-präemptives Scheduling
Nicht-präemptives Scheduling: Bei nicht-präemptivem Scheduling kann das System die Prozessausführung nicht unterbrechen; der Prozess gibt die CPU freiwillig ab.
Quantum (Zeitscheibe)
Ein Quantum ist die maximale Zeitspanne, die ein Prozess die CPU ununterbrochen nutzen darf. Ein zu kleines Quantum führt zu häufigen Kontextwechseln, während ein zu großes Quantum zu langen Wartezeiten und potenziell ineffizienter CPU-Nutzung führen kann.