BSys Einführung

Fragen zur Einführungsveranstaltung

Fragen zur Einführungsveranstaltung


Joey Rieg
Diese Lernkarten bieten eine Einführung in die Grundlagen von Betriebssystemen auf Universitätsniveau. Sie behandeln zentrale Konzepte wie Systeme, Programme, CPU, Anwendungen und Benutzer, wobei der Fokus auf den Eigenschaften und Zielen verschiedener Systeme wie Echtzeit-, Time-Sharing- und Batch-Systemen liegt. Die Karteikarten eignen sich für Studierende der Informatik, die ein tieferes Verständnis der Systemfunktionen, Multiprogramming, Multitasking und der Ressourcenverwaltung erlangen möchten.
Karten
20
Lernende
0
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
23.03.2014 / 23.03.2014

Lernkarten

Was sind die beiden Hauptaufgaben eines Betriebssystems?

Das Betriebssystem stelt dem Benutzer eine "virtuelle" Maschine zur Verfüung und verwaltet die System-Ressourcen z.B. E/A-Geräte/Kanäle usw.

Was ist Multiprogramming?

Multiprogramming beudetet, dass mehrere Programme im Speicher geladen sind, zwischen denen der Scheduler (Teil des Betriebssystemkernels) des Betriebssystem auswählt, sodass die CPU mit maximaler Auslastung betrieben wird. Wenn z.B ein Programm nun sehr lange auf die E/A warten muss, wird ein anderes rechenbereites Programm auf der CPU ausgeführt. Dadurch wird die "Wartezeit" des Programms mit der E/A Anfrage sinvoll genutzt.

Was ist Multitasking?

 Mehrere Programme laufen quasi gleichzeitig. Dies kann tatsächlich gleichzeitig auf einem Rechner mit mehreren Prozessoren sein, aber auch quasi-parallel mittels Timesharing.

Weiterer Unterschied zwischen Multiprogramming und Multitasting: Bei Multitasking können zwischen den Tasks Nachrichten ausgetauscht werden. Reine Multiprogramming-Systeme lassen Programme völlig unabhänig voneinander ablaufen.

Was heißt Timesharing?

Mehrere Benutzer nutzen über Zeitscheiben das Betriebssystem. Die Rechenzeit wird über Zeitscheiben zugeteilt. Ermöglicht die interaktive Nutzung des Computers durch einen oder mehrere Benutzer.

Nennen Sie 5 der wichtigen Funktionen des Kernels eines Betriebssystem, um die Benutzung eines Computersystems bequemer zu machen. In welchen Fällen ist es unmöglich, diesen Dienst durch ein Benutzerprogramm in einem Multiuser- und Multitasking-System zu realisieren

Wichtigste Funktionen:

1. Programmausführung/ Interprozesskommunikation: Das Betriebssystem lädt den Prozesskontext in den Speicher und stellt Kommunikationsmechanismen für die Programme zur Verfügung. Ein Benutzerprogramm könnte bei einem direkten Eingriff die CPU Zeit komplett belegen, sodass kein anderes Programm mehr ausgeführt werde kann (Non-preemtive Multitastking).

2. Speicherverwaltung: Das Betriebssystem verwaltet den Speicher und stellt den Anwendungen die nötigen Speicherbereiche zur Verfügung. Ein Eingreifen eines Benutzerprogramms in die Speicherverwaltung würde den Speicherschutz aushebeln.

3. E/A Zugriff: Die direkte Kommunikation mit der Hardware (Disks, tapes,...) übernimmt das Betriebssystem. Die Anwendung öffnet lediglich ein logisches Gerät, greift also nicht direkt auf die Hardware zu.Könnte ein Benutzerprogramm direkt auf ein Hardware-Gerät zugreifen, so könnte dies den Transfer von Daten zwischen dem Gerät und einer anderen Hardware beeinflussen.

4. Dateisystem: Bei den meisten Betriebssystemen ist das Dateisystem im Kernel implementiert. Somit können alle Anwendungen auf Daten wie "Verzeichnisse", "Dateien" usw. zugreifen. Würde diese Verwaltung von einer Anwendung zur Verfügung gestellt, so müssen alle andere Anwendungen der korrekten und "fairen" Funktionsweise dieses Programms vertrauen.

5. +++Fehlerbehandlung +++. Gilt für alle zuvor genannten "Säulen" einers Betriebssystems. Soweit wie möglich sollte eine Fehlerbehandlung im Betriebssystem geschehen, da auf Benutzerebene sonst jedes Programm selbst die entsprechende Fehlerbehandlung implementieren müsste.

Welche der folgenden Befehle sollten nur im Kernmodus erlaubt sein?

Eine Bibliotheksfunktion hat den Namen read(). Der Systemaufruf des Betriebssystem heißt auch read(). Es ist nötig, dass beide Funktionen denselben denselben Namen haben? Wenn ja warum, wenn nein, welcher ist der wichtigere?

Eigentlich haben Systemfunktionen keinen echten "Namen", sondern werden über eine Index-Nummer in einer Tabelle referenziert. Wenn die Bibliotheksfunktion einen read Trap produziert, übergibt sie die Nummer der Systemfunktion an der Kernel über z.B  ein Register oder den Stack. Im Kernel wird die entsprechende Systemfunktion über diese NUmmer referenziert. Die Systemfunktion read hat also eigentlich nur eine Nummer. Der Name der Bibliotheksfunktion ist jedoch sehr wichtig, beschreibt er doch, welche Funktion das Programm anfordert!

Nennen Sie die Eigenschaften/Ziele des Batch-Systems!

Durchsatzmaximierung durch maximale Auslastung der CPU und er E/A Geräte

Nennen Sie die Eigenschaften/Ziele von interaktiven Systemen!

Ziel ist die Minimierung der Antwortzeit. Typischerweise laufen in diesen Systemen nur Jobs mit kurzen Ausführungszeiten und die Antwortzeit auf diese Jobs sollte so kurz (Sekunden!) wie möglich sein, da der Benutzer auf das Ergebnis des Jobs wartet.

Nennen Sie die Eigenschaften/Ziele von Time Sharing

Typischerweise arbeiten mehrere Nutzer gleichzeitig in diesem System und die CPU Zeit wird möglichst gleich zwischen den Benutzern verteilt. Die Art der Programme in diesen Systemen entspricht denen der Interaktiven Systeme. Die CPU "switched" zwischen den Benutzern/Anwendungen hin und her und es entsteht der Eindruck der "gleichzeitigen" Ausführung.

Nennen Sie die Eigenschaften/Ziele von Realzeit (Echtzeit) Systemen

Die Antwortzeit/Reaktionszeit muss innerhalb eines definierten Intervalls geschehen! In diesen Systemen werden spezielle Programme eingesetzt, die über das Lesen von Sensordaten und das Steuern von Aktoren technische Prozesse regeln.

Nennen Sie die Eigenschaften/Ziele von verteilten Systemen

Ein Verteiltes System ist ein Zusammenschluss unabhäniger Computer, welcher sich für den Benutzer als ein einzelnes System darstellt. Die Computer teilen sich NICHT den physikalischen Speicher, sondern kommunizieren untereinander über einen High-Speed-Bus

Nennen Sie die Eigenschaften/Ziele von Handheld Systemen

"Kleinst-Rechner", mit einfachen Anwendungen für die Termin-/Adressverwaltung, E-Mail und Internet.
 Neben dem kleineren Display besitzen Handhelds (noch) deutlicher weniger Speicher als Standard Rechner.

Welches Hauptziel verfolgt die Scheduling-Strategie in einem Time-Sharing System?

Minimieren der Antwort-/Reaktionszeit.

Welches Hauptziel verfolgt die Scheduling-Strategie in einem Mehrprogramm-Stapelsystem?

Maximierung der Prozessausnutzung.

Wie wirkt sich die Kontextwechselzeit (Zeit für das Umschalten zwischen 2 Programmen) in einem Time-Sharing-System aus?

In einem Time-Sharing System ist das Ziel, die CPU Zeit möglichst gleich zwischen den Anwendungen zu verteilen.

Der Kontextwechsel findet statt, nachdem das Programm seinen Zeitslot "verbraucht" hat, auch wenn es noch weiterlaufen könnte. In diesem System muss das Verhältnis zwischen Kontextwechselzeit und Zeitslot sorgfältig gewählt sein!

Die Kontextwechselzeit macht sich in einem Time-Sharing System stärker bemerkbar, als in einem Mehrprogramm-Stapelsystem.

Wie wirkt sich die Kontextwechselzeit (Zeit für das Umschalten zwischen 2 Programmen) in einem Mehrprogramm-Stapelsystem aus?

Beim Mehrprogramm-Stapelsystem kommt die Kontextwechselzeit ja nur bei "Bedarf" zum tragen, wenn eben ein Programm auf eine E/A wartet.

Was macht das Schlüsselwort static bei der Variablendeklaration, am Anfang eines Moduls?

Static bewirkt, dass die Variable nur im aktuellen Modul genutzt werden darf.

Kein Zugriff von anderen Modulen auf die Variable.

Was ist ein void Pointer?

Untypisierte Zeiger

Kann einem pointer ein void Pointer ohne Probleme zugewiesen werden?

Nein, es muss ein explizierter Cast auf den Zieltyp stattfinden:

void *voidPtr;int  *intPtr;voidPtr = intPtr;         // funktioniert problemlosintPtr  = (int *)voidPtr; // explizites Casting notwendig

Lernen