Datum,Zeit 4.Juli 2008,08:00 09:30 Uhr(90min)
Aufgabenblätter 12 Seiten(einshl. Dekblatt)
erreihbare Punktzahl 75
zugelassene Hilfsmittel A (s.Prüfungsplan)
Studiengang Prf. Nr. Raum
AI 3618 C109
Name: Matrikelnummer:
Vorbemerkung DieKlausuristziemlihumfangreih.LassenSiesihnihtverunsihern,
Siebenötigen niht alle Punkte für dieNote 1,0; Sie benötigen weniger als die Hälfte der
Punkte fürdie Note4,0.
Hinweise:
Shreiben Siebitte Nameund Matrikelnummer aufjedes Aufgabenblatt.
ShreibenSieIhreLösungzudenAufgaben aufdenfreienPlatz,direktanshlieÿend
an die Fragestellungen. Wenn Sie zusätzlihe Blätter verwenden, so shreiben Sie
bitte Nameund Matrikelnummerauf jedesBlatt.
Shreiben Sielesbar!
VomPrüferauszufüllen:
Aufgabe 1 2 3 4 5 6 Summe
Max.Punkte 19 25 8 10 3 10 75
Aufgabe 1 Virtueller Speiher
EinBetriebssystemverwendetPaging,umfürdievershiedenenProzessejeweilseinenvir-
tuellenHauptspeiherzurealisieren.Dervirtuelle Speiherwirdauf32MB Hauptspeiher
und16MBderFestplatteabgebildet(Swap-Spae).DieGesamtlängeeinerAdressebeträgt
28Bit.
5 Bit 7 Bit 10 Bit
PT1 PT2 PT3 Offset
6 Bit
DasBetriebssystemverwendeteinedreistugeSeitentabel-
le.DieLängedererstenSeitenadresse(PT1)beträgt5Bit;
die Länge der zweiten Seitenadresse (PT2) beträgt 7 Bit;
die Länge der dritten Seitenadresse (PT3) beträgt 6 Bit;
dieLänge desOsetsbeträgt 10Bit.
Allg.Hinweis:Shreiben Siebeiden folgenden Aufgaben immer den Rehenweg auf,z.B.
GröÿedesSpeiherbereih XY dividiert durh Anzahl Z.
1.1 (10 Punkte)
Ein Prozessbelegtfolgende Adressbereihe:
Prog. Teil Adressbereih Gröÿe inByte
TextSegment 0 - 420000 420001
HeapSegment 420001 - 19738070 19318070
StakSegment 268365945 268435456 69512
(1 Punkt)Wie viele Einträge hat dieSeitentabelle ersterStufe?
IndexPT15 Bit:
2 5 = 32
(1 Punkt)Wie viele Einträge hat eineSeitentabelle zweiterStufe?
IndexPT27 Bit:
2 7 = 128
(1 Punkt)Wie groÿ (inKilobyte,KB) ist ist eineSeite, wiegroÿ isteine Kahel?
Oset11 Bit:
2 10 = 1024
(1 Punkt)Wie viele Seiten belegt dasStakSegment?
Gröÿe Stak-Segment /Gröÿe einer Seite
69 512 / 1024 = 67 , 88 . . . ⇒ 68
Seiten(1 Punkt)Wie viele Seitentabellen dritterStufewerdenfür dasStakSegment benötigt?
Anzahl Seiten / Anzahl Einträge in einer Tabelle dritter Stufe
68 / 64 = 1 , 06 . . . ⇒
Es werdenzwei Tabellen dritterStufebenötigt.(2 Punkte) Wie viele Seitentabellen dritter Stufe werden für das Text und das Heap-
Segment benötigt?
Anzahl Seiten:
19 738 071 / 1024 = 19 275 , 45 . . . ⇒ 19 276
Seiten. Anzahl Seiten / Anzahl Einträge in einer Tabelle dritter Stufe19 276 / 64 = 301 , 17 . . . ⇒
Es werden 302 Tabellen dritterStufebenötigt.(2 Punkte) Wie viele Seitentabellen zweiter Stufe werden für das Text und das Heap
Segment benötigt?
AnzahlderTabellendritterStufe/AnzahlderEinträgezweiterStufe:
302 / 128 = 2 , 35 . . . ⇒
Es werden3 Seitentabellen zweiterStufebenötigt.
(1 Punkt)Wie viele Kaheln verwaltet dasBetriebssystem?
Gröÿe Hauptspeiher/ Gröÿe Kahel:
32 ∗ 2 20 / 2 10 = 32 ∗ 2 10
Kaheln 32K.1.2 (9 Punkte)
Im Weiterensoll einevirtuelle Adressedurh vierDezimalzahlen für PT1, PT2, PT3und
Oset dargestellt werden. Beispiel: Die dezimalen Werte (11, 27, 33, 213) stehen für die
virtuelle Adresse010110011011 10000100011010101.
DiefolgendeAbbildungzeigteinenAusshnittausderSeitentabelleersterStufeundeinige
Ausshnitte aus Seitentabellen zweiter und dritter Stufe. Ahtung: In den Seitentabellen
dritterStufestehennurdiesignikantenBits,sodassderOsetlediglihangehängtwerden
muss!
1 2 3 4 0
10 11
:
:
6180
:
PT2 PT1
3506 9748 3988 5742 4398
9748
6620
9028 5128 8040
:
1066 8742 7046 3248 1
2 0
1 2 3 0 Anfangsadresse
31
2901
98 :
6620
867
1066 741
42 1
0
3 :
930 9028
558 26
28 :
PT3
: :
:
27 331
2
108
6180
790 285 : 1 0 2
646
Diephysishe AdressesollinFormeiner Dezimalzahl dargestelltwerden.
ErgänzenSiediefehlendenWerteinderTabellesoweitmöglih.WennSieeinenWertniht
eintragen können,sobegründenSie diesbitte stihwortartig:
virt.Adresse phys.Adresse
1 2 28 123 952443
1 2 26 381
31 0 3 459
661846
216170
1 98 2 503
2 3 0 967
759574
virt. Adresse phys.Adresse
1 2 28 123 952443
1 2 26 381 571773
31 0 3 459 111051
1 98 0 342 661846
X 106 216170
1 98 2 503 292343
Y 2 3 0 967 - - -- -
31 0 0 790 759574
X:dieKahelnummer211 tauht inkeiner derangegebenen PT3auf.
Aufgabe 2 Datei System mit I-Nodes
Ein DateisystemverwendetI-NodesfürdieVerwaltung vonDateien. FürdieFreispeiher-
verwaltungvon I-Nodesund Blöken verwendetdasSystem je eineBitmap.
Ein I-Node desSystemsbesitzt folgendesFormat (die Zahlensindlediglih Beispiele!):
I-Node 3
D 1
Datei-Typ D: Directory R: Reguläre Datei S: Soft-Link
Link-Count Direkter Block
Einfach indirekter Block Zweifach indirekter Block Dreifach indirekter Block 4
9 6
DieDaten sindalso übereinen direkten Blok,einen zweifahindirekten Blokund einen
dreifah indirekten Blok erreihbar. Ein Blok enthält 2048 Byte, ein Zeiger auf einen
Blokenthält 8Byte. I-Nodesenthalten nieselbst Dateneiner Datei.
2.1 (3 Punkte)
Wie groÿ kann eine Dateiin diesem Dateisystem maximal sein? Bitte geben Sie alle Re-
henshrittean.
2 1 1
Bytepro Blok/8Bytepro Zeiger =256 Zeiger pro Blok.AnzahlBlöke:
1 + 256 + 256 2 + 256 3 =
16843009Blöke=34494482432 Byte(a.32GB)2.2 (2 Punkte)
Wie groÿkanndasDateisystem maximalsein (Begründung)?
8Bytepro ZeigerEs können max.
2 64
Blöke adressiert werden.2 64
Blöke *2 11
Byte/Blok=2 75
Byte.2.3 (3 Punkte)
Wie viele Blöke belegt eine Datei, die 100MB Daten enthält. Berüksihtigen Sie niht
denPlatz,derimDatei-Verzeihnis(Diretory)belegtwirdundebenfallsnihtden Platz,
derdurhden I-Node belegtwird.
Dateigröÿe/Blokgröÿe:
100 ∗ 2 20 / 2 11
=100 ∗ 2 9
(51200) Blöke für Daten. Ein direkter Blok, 256 Blöke über den einfah indirekten Blok, 50943 über den zweifah indirektenBlok. Hierkommen nohmals199 einfahindirekteBlökehinzu. D.h.eswerden zusätz-
lih zu den Datenblöken 200 einfah indirekte Blöke und ein zweifah indirekter Blok
benötigt.
Insgesamt: 51200 Blöke für Daten, 200 einfah indirekte Blöke, ein zweifah indirekter
Verzeihnisse sind Dateien, die zu jeder verwalteten Datei einen Eintrag enthalten. Ein
Eintragbestehtausdem Namenund einem Verweis auf denI-NodederDatei.
. ..
home log.txt
2 8 6 2
I-Node 8 1
Block 1 . ..
8 2 4 5 notes.txt toDo.txt
I-Node 4 2
Block 2 I-Node 2
3
Block 3
I-Node 6 11
Block 11 I-Node 5
5
Block 5 /home/notes.txt
<EOF>
040708-s001 . . . 040708-s002 . . . 040708-pqr . . .
<EOF>
Am Dienstag scheint die Sonne verbreitet für 15 bis 16 Stunden . . .
. . . von einem oft wolkenlosen Himmel. <EOF>
4
Block 4 Block 7
7 D
R
D
S
R
test.txt 4
11
1 2 1
1 1
10
Block-Bitmap I-Node-Bitmap
0 1
0 1
. . . . . . 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0
1 1
0 1
Index 5 10 15
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1
0 1 0
0 0 0
Abbildung 1:I-NodesundBlöke desDateisystems
Abb.1zeigtallevomDateisystemverwendetenI-NodesundBlökesowieeinenAusshnitt
derFreispeiherverwaltung.DerEintrag<EOF>bedeutet:GemäÿLängeneintragimI-Node
endet die Datei an dieser Stelle. Der erste Eintrag der Freispeiher-Bitmaps bezeihnet
den Blok 0bzw. den I-Node 0.DerWert1 bedeutet,dass derentsprehende Blokbzw.
I-Nodebelegt ist,derWert0 bedeutet,dass derentsprehende Blokbzw. I-Nodefrei ist.
2.4 (9 Punkte)
DasSystem enthält einigeInkonsistenzen. ListenSiedieEinträge auf,die fehlerhaftsind.
Z.B.BlokX,EintragYmüsstedenWertZhaben,I-Node-Bitmap,n-teStellemüssteden
Wert khaben.
2.5 (5 Punkte)
Die Datei log.txt wird um 2KB vergröÿert. Welhe Änderungen ergeben sih in dem
gegebenenDateisystem?DasSystemverwendetdafürnurBlökeabBlok15einshlieÿlih.
Waswirdangelegt, welhe Wertewerden wo eingetragen bzw. verändert?
Neu: Ein Blok (z.B. 15) für die zusätzlihen Daten und ein indirekter Blok (z.B. 16),
dereinenVerweis aufden Datenblok (15)enthält.
Änderungen: Im I-Node 6 Verweis auf indirekten Blok eintragen (16), Länge der Datei
anpassen(+2048).InderBlok-BitmapdieneubelegtenBlökealsbelegtmarkieren(z.B.
2.6 (3 Punkte)
EineDatei(XY.Z)bestehtauseinemI-NodeunddreiDatenblöken.Ein Programmönet
dieDateimitdemBefehlfopen(XY.Z, r+).DasProgrammliestdenerstenBlokund
übershreibt den Rest derDatei. Nehmen Sie an,dass die Stromversorgung des Rehners
ausfällt,währenddieDateiübershriebenwird.MitwelherStrategielässtsihverhindern,
dass die Datei in einen inkonsistenten Zustand kommt. Erläutern Sie das Vorgehen ggf.
mit einerSkizze.
Stihwort:CopyondWrite.Eskannniht zueineminkonsistentenZustandkommen,wenn
dieneuen Inhalte und ggf.Änderungen an indirektenBlöken inneue Blöke geshrieben
werden. Zuletztmuss dieWurzelderDateiineineratomarenAktionersetzt werden.Z.B.
indem eine neue Versionerstellt wird,die zuletzt durh Shreiben von einem Bit zurgül-
tigen Versionerklärt wird.
Aufgabe 3 Ersetzungsstrategien (8 Punkte)
Das Betriebssystem eines Rehners verwaltet einen Hauptspeiher mit 4 Kaheln. Das
Betriebssystem verwendet den NRU-Algorithmus. Auf dem System läuft ein Prozess mit
insgesamt 8 Seiten. Die Seiten der Prozesse werden gemäÿ der ersten Zeile derfolgenden
Tabellen referenziert.Dabeisteht 'r' fürlesendenZugri und'w'fürshreibenden Zugri.
DerEintrag ZS bedeutet, dass dieR-Bits durh NRU-Algorithmus zurükgesetzt werden.
InderSpalteuntereinemZugrisollendieFolgendiesesZugrisdagestelltwerden.Sowird
z.B. inderersten Spaltedurh den Zugri aufSeite 1diese Seite inKahel 3eingelagert.
DieSeiten 0,4,und 3wurden shonvorher eingelagert.
Ergänzen SiedieTabelle.
Seitenreferenz/Art desZugris
1/r 4/r 2/w ZS 4/r 3r 2/r 1/w ZS 3/r
K0 0(1,1) 0(1,1) 0(1,1) 0(0,1) 0(0,1) 0(0,1) 0(0,1) 1(1,1) 1(0,1) 1(0,1)
K1 4(1,0) 4(1,0) 4(1,0) 4(0,0) 4(1,0) 4(1,0) 4(1,0) 4(1,0) 4(0,0) 4(0,0)
K2 3(0,1) 3(0,1) 2(1,1) 2(0,1) 2(0,1) 2(0,1) 2(1,1) 2(1,1) 2(0,1) 2(0,1)
K3 1(1,0) 1(1,0) 1(1,0) 1(0,0) 1(0,0) 3(1,0) 3(1,0) 3(1,0) 3(0,0) 3(1,0)
Aufgabe 4 Synhronisation
C A
B S2
S1
S3
F D
E S5 S4
S6
Abbildung 2:Ein paralleles System in
Formeines Petri-Netzes DasfolgendePetri-NetzzeigtdieSynhronisati-
onvon2Prozessen
P
_ABC
,undP
_DEF
.Eshandelt sih um ein Bedingungs-Ereignis-Netz.
DieTransitionen
A, B
undC
gehörenzuProzessP
_ABC
,dieTransitionenD, E
undF
gehörenzuProzess
P
_DEE
.4.1 (2 Punkte)
Welhe Stellen müssen Sie als Semaphor reali-
sieren,umdiezweiProzessegemäÿ demobigen
Petri-Netz zusynhronisieren?
S5und S6
4.2 (3 Punkte)
Geben Sie den Quell-Code für die Prozesse
P
_ABC
undP
_DEF
an. Sie können dazuPseudoPasal verwenden (s. Skript von Frau
Keller)oder(Pseudo)Java.
Prozess P_ABC{
while(true){
A();
S5.up();
B();
S6.d o w n();
C();
}
}
Prozess P_DEF{
while(true){
D():
S5.up();
S5.d o w n();
E();
S6.up();
S6.d o w n();
F();
}
}
4.3 (3 Punkte)
Zeihnen SiedenEreignisgrafendesPetri-Netzes.SiekönnendieVorlageuntenverwenden
oder eine eigene Skizze anfertigen. Geben Sie zu jedem Übergang die Transition, die ihn
auslöste,an.
A E B
B E
D
E F
C
D
C F
A B
4.4 (2 Punkte)
Kanndas System,dasindem oben angegebenen Petri-Netz(s. Abb. 2) dargestellt ist,in
einenDeadlokgeraten;wennja, wie;wenn nein, warum niht?
Es kann niht in einen Deadlok geraten; aus jedem Zustand gibt es einen Übergang in
einenanderen Zustand.
Aufgabe 5 Interprozesskommunikation
Zwei Prozesse auf einem Rehner sollen Daten austaushen. Die Prozesse sindniht mit-
einander verwandt. Ein Datensatz enthält zwei kurze Texte, zwei ganze Zahlen und drei
Gleitkommazahlen und dreieinzelne Buhstaben.Das Programmmuss voraussihtlih re-
gelmäÿig angepasstwerden, da sih dieZusammensetzung derDatensätze ändernkann.
Für die Interprozesskommunikation müssen Sie sih zwishen Shared Memory und einer
NamedPipe entsheiden. NennenSiekurz die spezishenVor- undNahteiledieser Ver-
fahrenfür diegegebene Aufgabe.
5.1 (3 Punkte)
Vorteil Pipe: Synhronisation übernimmt die Pipe, Lese- bzw. Shreibzugrie blokieren
beileere bzw. vollerPipe.SharedMemoryerfordert externeSynhronisation.
VorteilSharedMemory:(EinekomplexeDatenstrukturistleihterzuübertragen;dieDaten
müssen niht (um-)kodiert werden,wie beiPipes. SharedMemoryist Shneller.
Aufgabe 6 Sheduling (10 Punkte)
Ein Betriebssystem verwendet prioritätsbasiertes Sheduling. Der Sheduler wird aktiv,
wenn eine Zeitsheibe abläuft und wenn ein Prozesse einenSVC (Aufrufin den Betriebs-
system-Kernel) absetztunddadurh blokiertwird.
Wenn ein Prozess eine höhere Priorität besitzt als alle anderenProzesse, so darf er
laufen, sobaldderSheduler aktiv ist/war.
WenneinZeitsheibeabläuftpassiertfolgendes:DiePrioritätdesProzesses,dergera-
derehnet, wirdumden Wert 1vermindert.Die PrioritätenderProzesse,die bereit
sind,werdenumdenWert1erhöht.DanahermitteltderShedulerdenProzess,der
alsnähstes laufendarf.
Wenneinen ProzesseinenSVCabgesetzt, wirderblokiert. SeinePriorität wirdum
denWert1 erhöht.
DieminimalePrioritäteinesProzessistdieBasis-Priorität-2,diemaximalePriorität
eines Prozessistdie Basis-Priorität+2.
Wenn mehrere Prozesse die maximale Priorität besitzen und einer davon läuft, so
darf dieserweiterlaufen.
Wenn mehrere Prozesse die maximale Priorität besitzen und keiner davon läuft, so
darf derProzessmit derkürzesten Wartezeit alsnähster laufen.
Prozesse
ProzessNr. Basis-Priorität
1 5
2 6
3 7
4 6
Ereignisse
t 1
:Prozess P1,P2 und P3werdengestartett 2
:Ein Zeitsheibefür Multitasking läuft abt 3
:Prozess P3maht einenSVC(blokiert)t 4
:Prozess P4wirdgestartett 5
:Ein Zeitsheibefür Multitasking läuft abt 6
:Ein Zeitsheibefür Multitasking läuft abt 7
:Prozess P2maht einenSVC(blokiert)t 8
:Prozess P3wirddeblokiertt 9
:Ein Zeitsheibefür Multitasking läuft abt 10
:Ein Zeitsheibefür Multitasking läuft abt 11
:Prozess P3maht einenSVC(blokiert)Zeihnen SiedieZustände und diePrioritätenderProzesse indiefolgende Tabelle ein: