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ß