Vorname: Nachname: Matrikelnummer: Klausur Betriebssysteme 12.02.2013 Hinweise: 1. Beschriften Sie als erstes diese Seite mit Ihrem Namen, Vornamen und Ihrer Matrikelnummer (deutlich in Druckbuchstaben). 2. Die Klausur besteht aus 6 Aufgaben. Die Bearbeitungszeit beträgt 75 Minuten. 3. Verwenden Sie nur diese 9 Blätter, andere Blätter werden nicht berücksichtigt. Wenn die Vorderseiten nicht ausreichen, verwenden Sie zu jeder Aufgabe die Rückseite. Sollte auch dies nicht ausreichen, verwenden Sie die Zusatzblätter; dann sollten Sie vermerken, für welche Aufgabe Sie eine Lösung angeben. 4. Als Hilfsmittel sind erlaubt: ein Blatt mit eigener Zusammenfassung. Viel Erfolg! Aufgabe mögliche Punkte erreichte Punkte 1 10 2 10 3 10 4 10 5 10 6 10 Total 60 Note 1
1 Prozess, Zustände 10 Punkte 1. Grenzen Sie die Begriffe Programm und Prozess gegeneinander ab. 2. Welche Zustände kann ein Prozess annehmen und welche Zustandsübergänge sind möglich. Nennen Sie Beispiele für jeden Zustandsübergang. 3. Aus was besteht ein Prozess? 2
2 Threads und Synchronisation 10 Punkte 1. Welche Ausgabe erzeugt das nachfolgende Programm? class Even { private int n = 0; public int next() { // POST: next is always even ++n; try { Thread.sleep((long)(Math.random()*10)); catch(interruptedexception e) { ++n; return n; public class Test extends Thread { private Even e; public Test(Even e) { this.e = e; public void run() { for (int i = 1 ; i <= 1000; i++) { System.out.println(getName()+": " + e.next()); public static void main(string[] args) { Even e = new Even(); Test1 t1 = new Test(e); Test1 t2 = new Test(e); t1.start(); t2.start(); 2. Wie ist das Programm abzuändern, so dass die POST-Condition stets erfüllt ist? 3
3 Synchronisation 10 Punkte 1. Beschreiben Sie das Konzept der Semaphore. Geben Sie dazu eine Java-Klasse für Semaphore an. 2. Erläutern Sie das Konzept der Semaphore-Gruppen. 4
4 Speicherverwaltung - Uhr Seitenersetzung 10 Punkte Als Seitenersetzungsverfahren ist bei einem Betriebssystem Uhr Seitenersetzung implementiert. Zu einem Zeitpunkt sei das System gegeben durch folgende zyklische Liste von Seiten (1. Zahl Seitenrahmen; 2. Zahl Referenziertbit): Es treten Seitenfehler auf beim Zugriff auf die Seiten in der u.a. Reihenfolge: 1. Seite 4 2. Seite 5 3. Seite 3 Wie verändert sich die o.a. Liste nach jedem Schritt inklusive der Zwischenschritte? Erklären sie jeweils das Zustandekommen der einzelnen Schritte. 5
5 Deadlocks 10 Punkte 1. Deadlocks sollen erkannt werden. Gehen wir von einem System mit 7 Prozessen (A-G) und 6 Betriebsmitteln (a-f) aus. Die Betriebsmittelbelegungen und -anforderungen seien geben durch: a) A belegt a und fordert b an b) B belegt nichts und fordert c an c) C belegt nichts und fordert b an d) D belegt d und fordert b und c an e) E belegt c und fordert e an f) F belegt f und fordert b an g) G belegt e und fordert d an Befindet sich das System in einem Deadlock-Zustand, wenn ja, welche Prozesse sind daran beteiligt? Erläutern Sie die Antwort unter Zuhilfenahme des Betriebsmittelgraphen. 2. Betrachte Sie den Bankieralgorithmus für eine Betriebsmittelklasse zur Verhinderung von Deadlocks. Erklären Sie, wie erkannt wird, ob ein Zustand sicher ist, wenn ein Kunde einen Darlehensantrag stellt (=Betriebsmittel angefordert werden). 6
6 Sicherheit 10 Punkte Um eine Authentifizierung von Benutzern zu realisieren, werden häufig Passworte verwendet. Durch Brute-Force Angriffe können schlechte Passworte entschlüsselt werden. Erklären Sie die folgenden Lösungsansätze zur Abwehr solcher Angriffe: 1. Langsame Hash-Funktionen 2. Suppe versalzen 3. Datei /etc/shadow 7
Zusatzblatt 1 8
Zusatzblatt 2 9