Betriebssysteme: Auswahl alter

Werbung
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 1
Aufgabe (10 Punkte)
Beschreiben Sie stichwortartig, was die folgenden Kommandos bewirken.
a)
b)
c)
d)
e)
sort < MeineDatei.txt > MeineDateiSort.txt
find / -type d \( -name man -o -name info \)
man -a intro
cc -o hallo hallo.c parallel.c >& compile.log
chown fd1026:stud a4_1.c
Aufgabe (10 Punkte)
Beschreiben Sie stichwortartig, was die folgenden Kommandos bewirken:
a)
b)
c)
d)
e)
rm .[a-zA-Z]*rc
find . -type f -exec chmod 644 {} \;
cat telefon.txt | sort > t.txt
man -s 3 intro
cp parallel/unix/gra_x11.c .
Aufgabe (10 Punkte)
Beschreiben Sie stichwortartig, was die folgenden Kommandos bewirken:
a)
b)
c)
d)
e)
cp -ir bs bs.bachelor
ls -alrt
find $HOME -type f -exec chmod 640 {} \;
gcc -o sortieren sortierverfahren.c >& compile.log
info info
Aufgabe (10 Punkte)
Beschreiben Sie stichwortartig, was die folgenden Kommandos bewirken:
a)
b)
c)
d)
e)
egrep return parallel.c und egrep '^
ls -lrtR
diff -rq prog/ backup/prog/
tar vft prog.tar
dos2unix und unix2dos
return' parallel.c
Aufgabe (10 Punkte)
Beschreiben Sie stichwortartig, was die folgenden Kommandos bewirken:
a)
b)
c)
d)
e)
history
!gcc
man man
mv -i *.pdf
file *
pdf/
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 2
Aufgabe (10 Punkte)
Gegeben sei das folgende UNIX-Kommando: ls –l | sort | more
a)
Was macht das Kommando?
b)
Beschreiben Sie mit Stichworten, was das Betriebssystem (Kommandozeileninterpreter,
Shell) machen muss, damit das Kommando ausgeführt werden kann.
Aufgabe (5 Punkte)
In Ihrem HOME-Verzeichnis gibt es unter anderem die Dateien „.cshrc“ und „.login“.
Beschreiben Sie stichwortartig, was in diesen Dateien gemacht wird.
Aufgabe (10 Punkte)
Ein C-Programm soll Texteingaben von der Tastatur einlesen.
a)
Mit welcher Funktion lesen Sie die Eingabe von der Tastatur ein? Nennen Sie einen Grund,
warum Ihre Funktion für diese Aufgabe besonders gut geeignet ist.
b)
Warum muss die Eingabe gegebenenfalls vor der eigentlichen Verarbeitung aufbereitet
werden?
c)
Wie muss Ihr Programm die Eingabe aufbereiten, bevor sie verarbeitet werden kann?
Nennen Sie die Funktionen, die Sie zur Aufbereitung der Eingabe benutzen.
Aufgabe (5 Punkte)
Nennen Sie die Vor- und Nachteile von dynamischen Bibliotheken im Vergleich zu statischen
Bibliotheken.
Aufgabe (5 Punkte)
Welche Aufgaben werden nach dem Einschalten eines Rechners erledigt, bevor der Benutzer
eine Eingabeaufforderung erhält (nur Stichwörter)?
Aufgabe (10 Punkte)
Welche Aufgaben hat ein Betriebssystem und aus welchen wesentlichen Komponenten besteht
es?
Aufgabe (10 Punkte)
Beschreiben Sie stichwortartig fünf wichtige Aufgaben eines modernen Betriebssystems (wie
z. B. Windows 8.x, Linux, …).
Aufgabe (10 Punkte)
a)
Nennen Sie stichwortartig einige wesentliche Eigenschaften der Betriebsarten Multiprogramming, Timesharing, Multiuser und Multithreading.
b)
Welche der obigen Betriebsarten werden von Windows 8.x und Linux unterstützt?
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 3
Aufgabe (10 Punkte)
a)
b)
c)
d)
Was ist eine „virtuelle Maschine“?
Welche Arten virtueller Maschinen gibt es?
Wie können virtuelle Maschinen realisiert werden?
Nennen und beschreiben Sie die verschiedenen Einsatzgebiete für virtuelle Maschinen.
Aufgabe (10 Punkte)
a)
b)
Definieren Sie die Begriffe Programm, Prozess und Thread.
Beschreiben Sie stichwortartig die Prozesserzeugung unter UNIX.
Aufgabe (10 Punkte)
Nennen Sie mindestens fünf Komponenten des Prozesskennblocks und beschreiben Sie stichwortartig, warum die Komponenten vorhanden sind.
Aufgabe (15 Punkte)
Gegeben sei das folgende unvollständige Prozesszustandsdiagramm:
Beginn
rechenwillig
blockiert
aktiv
Ende
a)
Ergänzen Sie im obigen Diagramm die Zustandsübergänge (fügen Sie keine neuen Zustände
hinzu).
b)
Erläutern Sie zu allen von Ihnen eingezeichneten Zustandsübergängen, was und warum
etwas mit dem Prozess geschieht, der seinen Zustand ändert.
Aufgabe (10 Punkte)
Beschreiben Sie kurz die wesentlichen Aufgaben eines „Schedulers“ und eines „Dispatchers“.
Aufgabe (10 Punkte)
Nennen Sie vier Scheduling-Verfahren für Prozesse mit jeweils zwei Vor- oder Nachteilen (nur
Stichworte)
Aufgabe (10 Punkte)
Nennen Sie die grundsätzlichen Lösungsansätze zum Schutz von kritischen Abschnitten mit
jeweils zwei Vor- oder Nachteilen (nur Stichworte).
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 4
Aufgabe (10 Punkte)
Gegeben seien die folgenden Überlagerungsphasen (Aktivitätsphasen) der sechs Prozesse
T1 ,..., T6 .
T6
T5
T4
T3
T2
T1
t
Geben Sie die zugehörige Programmsequenz an. Verwenden Sie die Sprachelemente zur
parallelen Programmierung (BEGIN, END, COBEGIN, COEND).
Aufgabe (10 Punkte)
Gegeben seien die folgenden Überlagerungsphasen (Aktivitätsphasen) der sechs Prozesse
T1 ,..., T6 .
T6
T5
T4
T3
T2
T1
t
Geben Sie die zugehörige Programmsequenz an. Verwenden Sie die Sprachelemente zur
sequenziellen und parallelen Programmierung (BEGIN, END, COBEGIN, COEND).
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 5
Aufgabe (10 Punkte)
Gegeben seien die folgenden Überlagerungsphasen (Aktivitätsphasen) der sechs Prozesse
T1 ,..., T6 .
T6
T5
T4
T3
T2
T1
t
Geben Sie die zugehörige Programmsequenz an. Verwenden Sie die Sprachelemente zur
sequenziellen und parallelen Programmierung (BEGIN, END, COBEGIN, COEND).
Aufgabe (10 Punkte)
Gegeben seien die folgenden Überlagerungsphasen (Aktivitätsphasen) der sechs Prozesse
T1 ,..., T6 .
T6
T5
T4
T3
T2
T1
t
Geben Sie die zugehörige Programmsequenz an. Verwenden Sie die Sprachelemente zur
parallelen Programmierung (BEGIN, END, COBEGIN, COEND).
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 6
Aufgabe (10 Punkte)
Geben Sie in C-Notation den Datentyp für ein Semaphor sowie den Code für die P- und die VOperation an. Kommentieren Sie den Code.
Aufgabe (20 Punkte)
Ein Programm wurde mit Hilfe von Monitoren entwickelt und soll in eine Programmiersprache
portiert werden, die nur Semaphoren zur Verfügung stellt. Geben Sie ein kommentiertes
Schema (eine Simulation der Monitorelemente) für die Portierung der Monitorprozeduren und
-Operationen an. Sie dürfen voraussetzen, dass eine signal-Operation nur am Ende einer Monitorprozedur vorkommt. Es muss deutlich werden, wie Ihre Simulation (inkl. Datenstrukturen)
funktioniert!
Aufgabe (5 Punkte)
Nennen Sie fünf Mechanismen zur Prozesskommunikation, die von modernen Betriebssystemen
angeboten werden.
Aufgabe (10 Punkte)
Ein Anwendungsprogramm besteht aus mehreren Prozessen, die miteinander kommunizieren
sollen. Nennen Sie fünf Verfahren, die zur Lösung des Problems zur Verfügung stehen und
beschreiben Sie kurz die Besonderheiten des jeweiligen Verfahrens (nur Stichworte).
Aufgabe (10 Punkte)
Nennen Sie mindestens fünf Begriffe, die berücksichtigt werden müssen, wenn Prozesse mithilfe
einer Nachrichtenübertragung kommunizieren wollen. Erklären Sie die Begriffe stichwortartig.
Aufgabe (10 Punkte)
Zwischen Prozessen in einem Rechnernetz sollen Daten über Sockets ausgetauscht werden. Welche Systemfunktionen muss das Betriebssystem zur Verfügung stellen, wenn die Kommunikation
über das verbindungsorientierte TCP/IP-Protokoll erfolgen soll? Skizzieren Sie das Diagramm
für eine Client/Server-Architektur für die Programmiersprache C. Beschreiben Sie mit wenigen
Worten, was die einzelnen Funktionen bezwecken.
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 7
Aufgabe (10 Punkte)
Gegeben sei der folgende Programmausschnitt zur Synchronisation von zwei Prozessen mit Hilfe
von globalen Variablen. Beschreiben Sie, ob die Lösung funktioniert und welche Mängel sie ggf.
aufweist. Schreiben Sie Ihren Kommentar direkt in das Programm.
int c1, c2;
/* ci = 0: P. ist im krit. Abschn. o. */
/*
will ihn betreten
*/
/* ci = 1: P. ist im "normalen" Progr.*/
int main (void)
{
c1 = 1;
c2 = 1;
COBEGIN
worker1 (1);
worker2 (2);
COEND;
}
void worker1 (int nr)
{
for (;;)
{
c1 = 0;
while (c2 == 0)
{
;
}
kritischer Abschnitt;
c1 = 1;
sonstige Arbeit;
}
}
void worker2 (int nr)
{
for (;;)
{
c2 = 0;
while (c1 == 0)
{
;
}
kritischer Abschnitt;
c2 = 1;
sonstige Arbeit;
}
}
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 8
Aufgabe (10 Punkte)
#define PUFFERGROESSE
4
semaphore AnzSatz,
AnzFrei,
s;
int main (void)
{
AnzSatz = init_sem (0);
AnzFrei = init_sem (PUFFERGROESSE);
s
= init_sem (1);
COBEGIN
erzeuger ();
verbraucher ();
COEND;
}
void erzeuger (void)
{
for (;;)
{
empfange Datensatz;
P (s);
P (AnzFrei);
speichere Datensatz in Puffer;
V (AnzSatz);
V (s);
}
}
void verbraucher (void)
{
for (;;)
{
P (s);
P (AnzSatz);
hole Datensatz aus Puffer;
V (AnzFrei);
V (s);
bearbeite Datensatz;
}
}
Das obige Programm wurde fehlerhaft implementiert. Nennen und begründen Sie alle Fehler.
Korrigieren Sie das obige Programm.
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 9
Aufgabe (20 Punkte)
Gegeben sei der folgende Programmausschnitt für das Erzeuger-/Verbraucherproblem:
int
n;
semaphore s, delay;
int main (void)
{
ThrID_t thr_id [2];
n
= 0;
s
= init_sem(1);
delay = init_sem(0);
thr_id [0] = parallel ((PtrFunc_t) erzeuger, 0);
thr_id [1] = parallel ((PtrFunc_t) verbraucher, 1);
...
}
void erzeuger (int nr)
{
for (;;)
{
erzeuge Datensatz;
P(s);
lege Datensatz im Puffer ab;
n = n + 1;
if (n == 1)
{
V(delay);
}
V(s);
}
}
void verbraucher (int nr)
{
int m;
P(delay);
for (;;)
{
P(s);
entnehme Datensatz aus Puffer;
n = n - 1;
m = n;
V(s);
verbrauche Datensatz;
if (m == 0)
{
P(delay);
}
}
}
Warum würde das Programm fehlerhaft arbeiten, wenn die Anweisung „if (m == 0) ...“ in der
Funktion verbraucher durch die Anweisung „if (n == 0) ...“ ersetzt wird? Welcher Fehler tritt
auf?
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 10
Aufgabe (20 Punkte)
Ergänzen Sie im folgenden Programmausschnitt alle P- und V-Operationen und kommentieren
Sie, warum diese Operationen erforderlich sind.
int
CntReader;
semaphore exRd,
WrQueue,
WrBarrier;
int main (void)
{
...
CntReader = 0;
exRd
= init_sem (1);
WrQueue
= init_sem (1);
WrBarrier = init_sem (1);
/* einige Leser und einige Schreiber erzeugen ......
...
}
*/
void reader (int id)
{
for (;;)
{
____________________
CntReader++;
if (CntReader == 1)
{
____________________
}
____________________
/* in Datenbank lesen ......
*/
____________________
CntReader--;
if (CntReader == 0)
{
____________________
}
____________________
/* von der Arbeit erholen .......
*/
}
}
void writer (int id)
{
for (;;)
{
/* Daten erzeugen ......
*/
____________________
____________________
/* Datenbank aktualisieren ......
____________________
____________________
}
}
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
*/
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 11
Aufgabe (20 Punkte)
Erklären Sie den Zweck der P- und V-Operationen in folgendem Programm (schreiben Sie Ihre
Kommentare direkt neben das Programm).
int
AnzLeser, AnzSchreiber;
semaphore s, ex, LeserWS, LeserSperre, exs;
int main (void)
{
AnzLeser
= 0;
AnzSchreiber = 0;
s
= init_sem (1);
ex
= init_sem (1);
LeserWS
= init_sem (1);
LeserSperre = init_sem (1);
exs
= init_sem (1);
/* einige Leser und einige Schreiber erzeugen ......
...
}
void leser (int id)
{
P (LeserWS);
P (LeserSperre);
P (ex);
AnzLeser = AnzLeser + 1;
if (AnzLeser == 1)
{
P (s);
}
V (ex);
V (LeserSperre);
V (LeserWS);
Daten lesen;
P (ex);
AnzLeser = AnzLeser - 1;
if (AnzLeser == 0)
{
V (s);
}
V (ex);
Daten verarbeiten;
}
void schreiber (int id)
{
Daten erzeugen;
P (exs);
AnzSchreiber = AnzSchreiber + 1;
if (AnzSchreiber == 1)
{
P (LeserSperre);
}
V (exs);
P (s);
Daten schreiben;
V (s);
P (exs);
AnzSchreiber = AnzSchreiber - 1;
if (AnzSchreiber == 0)
{
V (LeserSperre);
}
V (exs);
}
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
*/
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 12
Aufgabe (10 Punkte)
Der folgende Programmauszug soll ein binäres Semaphor und die zugehörigen Operationen
durch einen Monitor simulieren.
monitor BinarySemaphore
int
sem_val;
condition ws;
public procedure P (void)
{
if (sem_val == 0)
{
wait (ws);
}
sem_val--;
}
public procedure V (void)
{
sem_val++;
signal (ws);
}
{
sem_val = 1;
}
a)
Ist das obige Programm fehlerfrei (korrigieren Sie eventuell vorhandene Fehler direkt im
Programm)?
b)
Simuliert das Programm die Eigenschaften der Semaphor-Operationen korrekt (geben Sie
gegebenenfalls die Unterschiede an)?
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 13
Aufgabe (20 Punkte)
Gegeben sei die folgende Simulation für ein binäres Semaphor.
monitor BinarySemaphore
int
sem_val;
condition ws;
public procedure P (void)
{
if (sem_val > 0)
{
sem_val--;
}
else
{
wait (ws);
}
}
public procedure V (void)
{
if (sem_val == 0)
{
sem_val++;
}
else
{
signal (ws);
}
}
{
sem_val = 1;
}
a)
Zeigen Sie, dass das obige Programm keine korrekte Simulation für ein binäres Semaphor
ist.
b)
Führen Sie alle notwendigen Änderungen im obigen Programm durch, sodass es ein binäres
Semaphor korrekt simuliert.
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 14
Aufgabe (10 Punkte)
Gegeben sei die folgende Lösung für das Problem der „Speisenden Philosophen“. Ist die Lösung
verklemmungsfrei, fair und optimal? Begründen Sie Ihre Antworten.
#define N 5
semaphore Gabel [N],
ex;
int main (void)
{
ThrID_t thr_id [N];
for (int i = 0; i < N; ++i)
{
Gabel [i] = init_sem (1);
}
ex = init_sem (1);
for (int i = 0; i < N; ++i)
{
thr_id [i] = parallel ((PtrFunc_t) Philosoph, i);
}
join_all (thr_id, N);
return 0;
}
void Philosoph (int i)
{
for (;;)
{
Philosoph denkt;
P (ex);
P (Gabel [i]);
P (Gabel [(i + 1) % N]);
V (ex);
Philosoph isst;
V (Gabel [i]);
V (Gabel [(i + 1) % N]);
}
}
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 15
Aufgabe (5 Punkte)
Für die Verwaltung von virtuellem Speicher soll ein Seitenaustauschverfahren mit Assoziativspeicher benutzt werden. Der Hauptspeicher des Rechners habe eine mittlere Zugriffszeit von
10 ns und der Assoziativspeicher eine von 1 ns. Die Trefferrate betrage 95 Prozent. Wie lange
dauert im Mittel eine Adressumsetzung für Seiten, die sich im Hauptspeicher befinden?
Aufgabe (5 Punkte)
Für die Verwaltung von virtuellem Speicher soll ein Seitenaustauschverfahren mit Assoziativspeicher benutzt werden. Der Hauptspeicher des Rechners habe eine mittlere Zugriffszeit von
8 ns und der Assoziativspeicher eine von 0,5 ns. Die Trefferrate betrage 98 Prozent. Wie lange
dauert im Mittel eine Adressumsetzung für Seiten, die sich im Hauptspeicher befinden?
Aufgabe (10 Punkte)
a)
Zeichnen Sie die Adressumsetzung einer virtuellen Adresse beim Segmentverfahren
mithilfe einer Kombination aus direkter Adressumsetzung und Assoziativspeicher (Skizze).
b)
Beschreiben Sie stichwortartig den Ablauf der Adressumsetzung.
Aufgabe (10 Punkte)
a)
Zeichnen Sie die Adressumsetzung einer virtuellen Adresse beim Seitenaustauschverfahren
mithilfe einer Kombination aus direkter Adressumsetzung und Assoziativspeicher (Skizze).
b)
Beschreiben Sie stichwortartig den Ablauf der Adressumsetzung.
Aufgabe (10 Punkte)
Gegeben sei das Programm P mit einer Größe von 5688 Bytes (alle Angaben erfolgen als Dezimalzahl). Die logischen Adressen des Programms werden mithilfe des Seitenaustauschverfahrens
in physikalische Adressen übersetzt. Die Seiten- und Kachelgröße betrage 1 KB und es existiere
folgende Seitentabelle (V-Bit = 1: Seite befindet sich im Hauptspeicher).
V
0
1
1
0
1
0
...
...
...
...
...
...
...
Kachelnummer
25
16
12
-
Die Kacheln 5, 17 und 11 können in dieser Reihenfolge als nächste belegt werden.
Es werde auf die Adresse 3100 des Programms zugegriffen. Welche Änderungen werden in der
Seitentabelle durchgeführt? Auf welche Adresse des Hauptspeichers wird zugegriffen? Leiten
Sie die Ergebnisse auf Bitebene her!
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 16
Aufgabe (10 Punkte)
Gegeben sei das Programm P mit einer Größe von 49.152 Bytes (alle Angaben erfolgen als
Dezimalzahl). Die logischen Adressen des Programms werden mithilfe des Seitenaustauschverfahrens in physikalische Adressen übersetzt. Die Seiten- und Kachelgröße betrage 8 KB und es
existiere folgende Seitentabelle (V-Bit = 1: Seite befindet sich im Hauptspeicher).
V
1
1
0
0
0
0
...
...
...
...
...
...
...
Kachelnummer
123
456
-
Die Kacheln 516, 283 und 817 können in dieser Reihenfolge als nächste belegt werden.
Es werde auf die Adresse 24.580 des Programms zugegriffen. Welche Änderungen werden in der
Seitentabelle durchgeführt? Auf welche Adresse des Hauptspeichers wird zugegriffen? Leiten
Sie die Ergebnisse auf Bitebene her!
Aufgabe (10 Punkte)
Gegeben sei das Programm P mit einer Größe von 11.520 Bytes (alle Angaben erfolgen als Dezimalzahl). Die logischen Adressen des Programms werden mithilfe des Seitenaustauschverfahrens
in physikalische Adressen übersetzt. Die Seiten- und Kachelgröße betrage 2 KB und es existiere
folgende Seitentabelle (V-Bit = 1: Seite befindet sich im Hauptspeicher).
V
0
1
0
0
1
1
...
...
...
...
...
...
...
Kachelnummer
130
36
524
258
12
66
Die Kacheln 18, 11 und 34 können in dieser Reihenfolge als nächste belegt werden.
Es werde auf die Adresse 4.288 des Programms zugegriffen. Welche Änderungen werden in der
Seitentabelle durchgeführt? Auf welche Adresse des Hauptspeichers wird zugegriffen? Leiten
Sie die Ergebnisse auf Bitebene her!
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 17
Aufgabe (10 Punkte)
a)
Nennen Sie das Verfahren zur Hauptspeicherverwaltung, bei dem die Strategien first-fit,
best-fit und worst-fit zum Einlagern von Programmteilen benutzt werden.
b)
Es stehen drei freie Speicherblöcke mit 80, 50 und 40 KBytes resp. zur Verfügung. Im
Laufe der Zeit werden Speicherbereiche von 20, 30, 40, 25 und 30 KBytes angefordert.
Realisieren Sie die Speicheranforderungen nach den vorstehenden Verfahren.
Anzahl und Größe der freien Speicherblöcke
first-fit Verfahren
best-fit Verfahren
worst-fit Verfahren
Anforderung
20
30
40
25
30
80,
50,
40
80,
50,
40
80,
50,
40
Aufgabe (10 Punkte)
Virtueller Speicher kann mit dem Seitenaustausch- oder Segmentierungsverfahren verwaltet
werden.
a)
Beschreiben Sie die Arbeitsweise beider Verfahren mit Stichworten.
b)
Welche Vor- und Nachteile haben die beiden Verfahren?
c)
Wie vermeiden moderne Betriebssysteme die Nachteile der beiden Verfahren?
d)
Wie werden die physikalischen Adressen bei den beiden Verfahren gebildet (nennen Sie
den jeweils wesentlichen Begriff)?
Aufgabe (10 Punkte)
Gegeben sei ein Prozess, der auf die Seiten 1 bis 4 in folgender Reihenfolge zugreift:
1, 2, 3, 4, 1, 1, 4, 2, 1, 2.
Dem Prozess stehen im Hauptspeicher zwei bzw. drei Kacheln zur Verfügung. Wie viele Seitenunterbrechungen werden erzeugt, wenn als Seitenverdrängungsalgorithmus FIFO (First-In-FirstOut) bzw. LIFO (Last-In-First-Out) benutzt wird. Beachten Sie, dass die Kacheln zuerst leer sind,
d. h., dass der erste Zugriff auf eine Seite auf jeden Fall eine Seitenunterbrechung auslöst. Tragen
Sie die Anzahl der Seitenunterbrechungen in die folgende Tabelle ein. Es muss deutlich werden,
wie Sie auf die Zahlen kommen!
Anzahl Kacheln
2
3
FIFO
LIFO
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 18
Aufgabe (5 Punkte)
In einem Rechner mit Segment-/Seitenverfahren besteht eine virtuelle Adresse aus bis zu 4 Segmenten, wobei jedes Segment 1 GB groß sein kann. Die Hardware benutzt eine Seitengröße von
4 KB. Wie viele Bits werden in der virtuellen Adresse für folgende Werte benutzt:
a)
Segmentnummer:
________
b)
Seitennummer:
________
c)
Distanzadresse in der Seite: ________
d)
Gesamte virtuelle Adresse:
________
Aufgabe (5 Punkte)
In einem Rechner mit Segment-/Seitenverfahren besteht eine virtuelle Adresse aus bis zu 16 Segmenten, wobei jedes Segment 256 MB groß sein kann. Die Hardware benutzt eine Seitengröße
von 8 KB. Wie viele Bits werden in der virtuellen Adresse für folgende Werte benutzt:
e)
Segmentnummer:
________
f)
Seitennummer:
________
g)
Distanzadresse in der Seite: ________
h)
Gesamte virtuelle Adresse:
________
Aufgabe (5 Punkte)
Nennen Sie die wesentlichen Unterschiede zwischen Seitenaustauschverfahren und Segmentverfahren.
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 19
Aufgabe (10 Punkte)
Beschreiben Sie stichwortartig, welche Verfahren zur Kapazitätssteigerung von Festplatten
eingesetzt wurden.
Aufgabe (10 Punkte)
In einem Festplatten-Subsystem werden Aufträge nach dem „FCFS“-Verfahren abgearbeitet.
Skizzieren Sie in der nachfolgenden Grafik die radialen Kopfbewegungen durch waagerechte
Richtungspfeile, wenn unmittelbar nacheinander die Leseaufträge eins bis sechs eingehen (zum
Zeitpunkt „0“ gibt es nur den ersten Auftrag). Die Aufträge sieben und acht gehen ein, während
der erste zu bearbeitende Auftrag gelesen wird. Die zu lesenden Sektoren sind jeweils mit der
Nummer des Auftrags gekennzeichnet. Der Schreib-/Lesekopf befindet sich zunächst an der mit
„X“ markierten Position. Bewerten Sie das Verfahren stichwortartig hinsichtlich Fairness,
Durchsatz, Antwortzeiten und Varianz der Antwortzeiten.
2 8 6 3 1 X 4 5 7
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 20
Aufgabe (10 Punkte)
In einem Festplatten-Subsystem werden Aufträge nach dem „SCAN“-Verfahren abgearbeitet.
Skizzieren Sie in der nachfolgenden Grafik die radialen Kopfbewegungen durch waagerechte
Richtungspfeile, wenn unmittelbar nacheinander die Leseaufträge eins bis sechs eingehen (zum
Zeitpunkt „0“ gibt es nur den ersten Auftrag). Die Aufträge sieben und acht gehen ein, während
der dritte zu bearbeitende Auftrag gelesen wird. Die zu lesenden Sektoren sind jeweils mit der
Nummer des Auftrags gekennzeichnet. Der Schreib-/Lesekopf befindet sich zunächst an der mit
„X“ markierten Position. Bewerten Sie das Verfahren stichwortartig hinsichtlich Fairness,
Durchsatz, Antwortzeiten und Varianz der Antwortzeiten.
2 8 6 3 5 X 4 1 7
Aufgabe (10 Punkte)
a)
Welche Vorteile bieten RAID-Systeme?
b)
Welche Verfahren werden zur Realisierung von RAID-Systemen benutzt?
c)
Welche Techniken werden bei „RAID 0“, „RAID 1“, „RAID 5“, „RAID 10“ und „RAID
01“ angewendet?
Aufgabe (5 Punkte)
Welche Techniken werden in welcher Reihenfolge bei einem „RAID 10“ verwendet?
Bewerten Sie das Verfahren hinsichtlich der folgenden Punkte zum Beispiel mit „sehr gut“,
„gut“, „hoch“, „niedrig“, n Prozent, usw.
Speichereffizienz:
Fehlertoleranz:
Verfügbarkeit:
Lese-/Schreibgeschwindigkeit:
Kosten:
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme: Auswahl alter Klausuraufgaben
Seite 21
Aufgabe (10 Punkte)
a)
Warum benutzt das Dateiverwaltungssystem bei Festplatten logische Blocknummern zur
Speicherung von Dateien auf dem Datenträger?
b)
Wie werden die virtuellen Blocknummern einer Datei unter MS-DOS in logische
Blocknummern der Festplatte umgesetzt?
c)
Skizzieren Sie, wie der dritte Datenblock der Datei „bs_klau.doc“ gefunden wird. Nennen
oder zeichnen Sie alle wesentlichen Schritte.
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Herunterladen