Klausur zur Vorlesung Grundlagen der Betriebssysteme

Ähnliche Dokumente
Klausur zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware

Klausur. Betriebssysteme SS 2007

Klausur Nichtsequentielle Programmierung

Banner T 1 T 2. Bild T 7 T 8. Fließtext T 9

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

Klausur zum Kurs Betriebssysteme (1802) am 18. September 2010

Prozesse und Scheduling

Übung zu Grundlagen der Betriebssysteme. 10. Übung

INFORMATIK FÜR BIOLOGEN

Technische Informatik II

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

Aufgaben zum Thema Verklemmungen

Klausur zum Kurs Betriebssysteme (1802) am 17. September 2011

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009

Allgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift

Informatik für Ingenieure (InfIng)

4. Übung - Rechnerarchitektur/Betriebssysteme

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

Aufgaben zum Thema Threads (Prozesse)

Algorithmen und Datenstrukturen

Musterlösung Prüfung SS 2002

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Musterlösung Prüfung WS 01/02

Inhaltsverzeichnis. 4.1 Systemmodell und notwendige Bedingungen. 4.2 Gegenmaßnahmen

Übung Betriebssysteme 11

Hinweise zur Bearbeitung der Klausur zum Kurs Einführung in die imperative Programmierung

Organisatorisches. Programmierpraktikum Das Canadian Traveller Problem. Organisatorisches. Organisatorisches

Klausur Nichtsequentielle Programmierung. Nachname: Bachelor Magister. Vorname: Master Lehramt

2.3 Prozessverwaltung

Softwarelösungen: Versuch 4

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Klausur in Programmieren

TheGI 2: Berechenbarkeit und Komplexität. Veranstalter: Uwe Nestmann, Johannes Borgström, Philipp Küfner Sommersemester

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Klausur Informatik B April Teil I: Informatik 3

Klausur zur Vorlesung. Grundlagen der Technischen Informatik (GTI) und. Grundlagen der Rechnerarchitektur (GRA)

Semestralklausur zu Modellierung verteilter Systeme

Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Klausur zu Grundlagen der Programmierung in C

Vorlesung Objektorientierte Programmierung Klausur

Probeklausur: Programmierung WS04/05

2. Aufgabenblatt Threads

Computational Engineering I

6. Juni VO Prüfung Betriebssysteme. Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Praktische Lernkarten zum Ausschneiden, Zusammenkleben und Sammeln :-) zur Prüfungsvorbereitung Diplomprüfung. Betriebssysteme

Klausur zur Wirtschaftsinformatik II im Grundstudium

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Informatik I Übung, Woche 41

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Technische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl

Es kann maximal ein Prozess die Umladestelle benutzen.

Klausur Grundlagen der Programmierung

Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden.

"Organisation und Technologie von Rechensystemen 4"

Klausur. Betriebssysteme SS

Scheinklausur zur Vorlesung Praktische Informatik I. 12. November Punkteübersicht

Technische Informatik II

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?

Aufgabe (5 Punkte) Aufgabe (10 Punkte) Betriebssysteme: Auswahl alter Klausuraufgaben Seite 1

Aufgabe Total Punkte

Prozessdatenverarbeitung II Echtzeit-Programmierung

Algorithmen und Datenstrukturen

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

2. Schriftliche Leistungskontrolle (EK)

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

2. Schriftliche Leistungskontrolle (EK)

Beschreiben Sie stichwortartig, was die folgenden Kommandos bewirken.

Informatik I Übung, Woche 41

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

15 Der strukturierte Datentyp»set«(Mengen)

Wechselseitiger Ausschluss in verteilten Systemen / Elektionsalgorithmen. Özden Urganci Ulf Sigmund Ömer Ekinci

Aufgaben zum Thema Verklemmungen

Maike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden

Nachklausur Bitte in Druckschrift leserlich ausfüllen!

C.3 Funktionen und Prozeduren

Grundlagen der Technische Informatik / Digitaltechnik (GTI/DT)

Prüfung Informatik D-MATH/D-PHYS :00 11:00

Übung zur Vorlesung Berechenbarkeit und Komplexität

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Klausur. Betriebssysteme WS 2012/

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

Informatik I Übung, Woche 40

Betriebssysteme I WS 2015/2016. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

UNIVERSITÄT DUISBURG-ESSEN

Übungsblatt Nr. 5. Lösungsvorschlag

Probeklausur Optimierung

Thüringer Kultusministerium

Klausur Software-Engineering WS 2006 / 2007 Iwanowski

Typisierung. Prüfungen zur Übersetzungszeit Type Test und Type Cast Bedingte Zuweisung Nil Übergangsparameter Grade der Typisierung. 3.

UNIVERSITÄT DUISBURG-ESSEN

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Klausur in Programmieren

Einstieg in die Informatik mit Java

Abschlussklausur Makroökonomie

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes

Transkript:

Prof. Dr. L. Wegner Dipl.-Math. K. Schweinsberg Klausur zur Vorlesung Grundlagen der Betriebssysteme 19.2.2004 Name:... Vorname:... Matrikelnr.:... Studiengang:... Hinweise: Bearbeitungszeit 2 Stunden. Es sind möglichst alle Aufgaben zu beantworten. Hilfsmittel sind nicht zugelassen. Aufgabe max. Punktzahl erreichte Punkte 1 4 2 3 3 6 4 6 5 6 6 6 7 4 8 5 9 4 Summe 44 1

Aufgabe 1: Ordnen Sie die 8 Begriffe links den 8 Aussagen rechts zu. Begriff Aussage? a CSP von Hoare ermöglicht Zeitstempel für n>2 Prozesse b Monitor der working set ist zu klein c Fetch-and-Add erlaubt Verklemmungsentdekkung e Speichersegmentierung läßt ggf. signal verpuffen f d Round-Robin beschreibt optimale Seitenauswahl Betriebsmittelzuteilungsgraph liefert faire gewichtete Turnaround Zeiten g Seitenflattern realisiert ein synchrones Botschaftenkonzept h Belady kennt interne Zerstückelung Aufgabe 2: Ergänzen Sie den folgenden Graph nach Holt für drei Prozesse 1, 2, 3 so, daß 1 nie blockiert, 2 nur in A blockiert, und 3 genau in C und D verklemmt ist. Es sollen keine neuen Pfeile (Übergänge) hinzukommen 3 A C?? 1 1, 2 1, 2 B D?? 2

Aufgabe 3: Gegeben sind drei Prozesse A, B, C mit den folgenden Aufrufen von Semaphor-Operationen. A B C P(S1) P(S1) P(S1)... V(S2) END P(S2).... V(S3) V(S1) END P(S3) P(S3) P(S3).. V(S2) V(S2) END Welche Prozesse erreichen END, wenn die folgenden Initialisierungen (a) - (c) gegen sind. (a) semainit(s1, 2); semainit(s2, 0); semainit(s3, 2); (b) semainit(s1, 3); semainit(s2, 0); semainit(s3, 2); (c) semainit(s1, 0); semainit(s2, 0); semainit(s3, 3); 3

Aufgabe 4: Wir betrachten eine Prozeßsynchronisierung mittels globaler Variablen. program Global; var flag1, flag2, turn: integer; procedure P1; begin while (TRUE) do begin unkritischer Abschnitt; flag1 := 1; turn := 2; while (flag2 = 1) and (turn = 2) do (* nichts *); kritischer Abschnitt; flag1 := 0 end end; procedure P2; begin while (TRUE) do begin unkritischer Abschnitt; flag2 := 1; turn := 1; while (flag1 = 1) and (turn = 1) do (* nichts *); kritischer Abschnitt; flag2 := 0 end end; begin (*Hauptprogramm*) flag1 := 0; flag2 := 0; cobegin P1; P2 coend end. 4

(a) Ist korrekter wechselseitiger Ausschluß gewährleistet? Begründung! (b) Wenn ja, kann der kritische Abschnitt nur immer im Wechsel zwischen P1 und P2 betreten werden? Begründung! (c) Wenn nein, wenn also nicht nur abwechselnd der Abschnitt betreten werden kann, ist dann sogar Fairness zugesichert? Kann also ein Prozeß, der in den kritischen Abschnitt will, nach höchstens einem Vortritt des anderen den Zutritt erlangen? Begründung! 5

Aufgabe 5: Der Dozent einer Vorlesung muß diese nur halten, wenn zum Vorlesungsbeginn mindestens drei Hörer da sind. Kommen Studenten vor dem Dozenten, dann warten sie auf die Ankunft des Dozenten, wobei eine Zählvariable n für die Anzahl der Hörer hochgezählt wird. War der Dozent da und hat er die Prüfung auf der Basis von n gemacht, schreibt er seine Entscheidung an die Tafel. Speziell für den Fall, daß Studenten später kommen, können Sie so sehen, ob die Entscheidung schon gefallen ist. Vervollständigen Sie den Monitor Hörsaal unten. program Vorlesung; type Entscheidung = (offen, ja, nein); (* Aufzählungstyp *) monitor Hörsaal; var Findet_Vorlesung_statt: Entscheidung; n: Integer; (* Anzahl Hörer *) Auf_Dozent_warten: condition (* Warteschlange Studies *) procedure Student_Hingehen(var Status: Entscheidung); begin if Findet_Vorlesung_statt = offen then begin ; end; Status := Findet_Vorlesung_statt end (* Student_Hingehen *); procedure Dozent_Eintreffen(var Status: Entscheidung); begin if then Findet_Vorlesung_statt := ja else Findet_Vorlesung_statt := nein; while n > 0 do begin signal(auf_dozent_warten); n := n - 1 end; Status := Findet_Vorlesung_statt end (* Dozent_Eintreffen *); begin (* Monitorinitialisierung *) Findet_Vorlesung_statt := offen; n := 0 end (* Hörsaal *); 6

procedure Student_i; var Muss_ich_hören: Entscheidung; begin Hörsaal.Student_Hingehen(Muss_ich_hören); if Muss_ich_hören = ja then Pech, muß Vorlesung hören else Glück, kann gleich wieder nach Hause end (* Student_i *); procedure Dozent; var Muss_ich_lesen: Entscheidung; begin ; if Muss_ich_lesen = ja then Mist, muss Vorlesung halten else Glück, Vorlesung fällt aus end (* Dozent *); begin cobegin Student_1; Student_2;...; Dozent coend end (* Vorlesung *). 7

Aufgabe 6: Für drei Projekte und drei Mitarbeitertypen ist die folgende Vergabesituation eingetreten. Es gibt einen Zuteilungswunsch von Projekt p1, das einen Elektriker und zwei Maschinenbauer benötigt. Ist diese Zuteilung sicher? Mit dem Verfahren von Habermann prüfe man den Zuteilungswunsch! Betriebsmittel Elektriker Informatiker Maschinenbauer insgesamt verfügbar 10 16 14 Arbeitet bereits an Benötigt maximal Will zusätzlich p1 4 6 4 p2 3 5 5 p3 2 4 1 p1 6 8 8 p2 3 5 7 p3 6 10 6 p1 p2 p3 noch verfügbar Zuteilungswunsch p1 Arbeitsvektor 8

Aufgabe 7: Ein Haupspeicher mit 512 MB werde im Buddy-Verfahren vergeben. Zeichnen Sie den Speicherbelegungsbaum, ausgehend von der Situation mit einer Belegung von 10 und mit 34 MB und der folgenden Belegungs- und Freigabefolge. Belegen 65, Belegen 126, Freigabe 34, Belegen 60, Belegen 37, Freigabe 10. Ausgangslage: 512 256 128 34 64 32 10 16 Endsituation: 512 256 128 64 32 16 9

Aufgabe 8: Gegeben sei ein Hauptspeicher mit 3 Kacheln und die folgende Zugriffsfolge 1, 2, 3, 2, 4, 5, 2, 3, 1, 4, 3. Für die Verfahren FIFO und LRU gebe man das Speicherbild für die Zugriffsfolge oben an! Die Belegung nach den ersten 4 Zugriffen ist bereits eingetragen. FIFO 1 1 1 1 2 2 2 3 3 LRU 1 1 1 1 2 2 2 3 3 10

Aufgabe 9: Für eine Jobabarbeitung mit Round-Robin gilt für die Anzahl der benötigten Zeitscheiben k k = 1/( s) wobei 1/ die Bearbeitungsdauer und s die zugeteilte Zeit je Zeitscheibenumdrehung für jeden Job ist. Die Bearbeitungsdauer 1/ ist der sich bei kontinuierlicher Bearbeitung ergebende Zeitbedarf. Tatsächlich kommt zu dieser Bearbeitungsdauer noch der Aufwand für die Kontextumschaltungen bei RR. Jeder Wechsel benötige w Zeiteinheiten, d.h. die Zeitzuteilung s enthält eigentlich einen Anteil w und einen Anteil s für die eigentliche Bearbeitung. Damit erhöht sich auch die Anzahl der benötigten Zeitscheiben. (a) Wie lautet k jetzt? Lösen Sie dann nach k auf, so daß rechts nur noch s, w und stehen. k = (b) Wenn die Zuteilung s nicht fest ist, sondern mit der Anzahl der Jobs schrumpft, wobei der Anteil w für den Kontextwechsel konstant bleibt, kommt das System bei hoher Belastung in den Zustand des Wassertretens, d.h. es geht nicht mehr voran. Beschreiben Sie den Zustand als Grenzwert von s w. Was geschieht mit k? 11

12