Datum,Zeit 22.Juli 2009,08:00 09:30Uhr(90min)
Aufgabenblätter 13 Seiten(einshl. Dekblatt)
erreihbare Punktzahl 67
zugelassene Hilfsmittel A (s.Prüfungsplan)
Studiengang Prf. Nr. Raum
AI 3618 H142
Name: Matrikelnummer:
Vorbemerkung
DieKlausur istziemlihumfangreih.Lassen Siesihniht verunsihern, Siebenötigen niht alle Punkte für dieNote 1,0; Sie benötigen weniger als die Hälfte derPunkte 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 Summe
Max.Punkte 19 20 12 6 10 67
Aufgabe 1 Virtueller Speicher
EinBetriebssystemverwendetPaging,umfürdievershiedenenProzessejeweilseinenvir-
tuellenHauptspeiherzurealisieren.Dervirtuelle Speiherwirdauf56MB Hauptspeiher
und8MBderFestplatte abgebildet(Swap-Spae). DieGesamtlänge einerAdressebeträgt
28Bit.
6 Bit 5 Bit 9 Bit
PT1 PT2 PT3 Offset
8 Bit
Das Betriebssystem verwendet eine dreistuge Seitentabelle.
Die Länge derersten Seitenadresse (PT1) beträgt 6 Bit; die
LängederzweitenSeitenadresse(PT2)beträgt5Bit;dieLän-
gederdritteSeitenadresse(PT3)beträgt8Bit;dieLängedes
Osetsbeträgt9Bit.EinProzessbelegtfürdaText-unddas
Heap-Segement stetsAdressenvon0beginnendaufwärts,für dasStak-Segment belegter
Adressenvon
2 27 − 1 = 134 217 727
beginnend abwärts.Allg.Hinweis:Shreiben Siebeiden folgenden Aufgaben immer den Rehenweg auf,z.B.
GröÿedesSpeiherbereih XY dividiert durh Anzahl Z.
1.1 (11 Punkte)
Ein Prozessbelegtfolgende Adressbereihe:
Prog. Teil Adressbereih Gröÿe inByte
Text-Segment 0 - 417000 417001
Heap-Segment 417001 - 30650070 30233070
Stak-Segment 133951109 134217727 266619
(1 Punkt)Wie viele Einträge hat dieSeitentabelle ersterStufe?
(1 Punkt)Wie viele Einträge hat eineSeitentabelle dritterStufe?
(1 Punkt)Wie groÿ (inByte)ist ist eineSeite, wiegroÿist eine Kahel?
(1 Punkt)Wie viele Seiten belegt dasStak-Segment?
(3 Punkte) Wie viele Seitentabellen zweiter und dritter Stufe werden für das Text- und
dasHeap-Segment benötigt?
(2Punkte)BenötigtdasSystemeine(odermehrere)weitereSeitentabelle(n)zweiterStufe
Stufeadressiertwerden (Begründung)?
(1 Punkt)Wie viele Kaheln verwaltet dasBetriebssystem?
(1 Punkt) Auf welhe Gröÿe kann der physishe Speiher maximal ausgebaut werden
(Hauptspeiherplus Swap-Spae)?
1.2 (8 Punkte)
Im Weiterensoll einevirtuelle Adressedurh vierDezimalzahlen für PT1, PT2, PT3und
Oset dargestellt werden. Beispiel: Die dezimalen Werte (33, 13, 56, 116) stehen für die
virtuelle Adresse100001 0110100111000001110100.
DiefolgendeAbbildungzeigteinenAusshnittausderSeitentabelleersterStufeundeinige
Ausshnitteausden Seitentabellen zweiterunddritterStufe.Ahtung:Inden Seitentabel-
len dritter Stufe stehen nur die signikanten Bits, so dass der Oset lediglih angehängt
werdenmuss!
1 2 3 4 0
10 11
:
:
4055
:
PT2 PT1
1193 8051 2177 2974 3652
8051
9638 3199 7224
:
1066 5012 7046
9295 1
2 0
1 2 3 0 Anfangsadresse
63
6091
31
5417
967 441
42 1
0
:
830 558
255
PT3
: :
: 331 2
108 790
285
: 1 0 2
716 4055
7046 9295
254 1 0
62
6091
Diephysishe AdressesollinFormeiner Dezimalzahl dargestelltwerden.
ErgänzenSiediefehlendenWerteinderTabellesoweitmöglih.WennSieeinenWertniht
virt.Adresse phys.Adresse
1 0 2 491 425451
0 18 244 418
62 31 254 81
1 3 0 375
366717
114000
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:
I-Node Datei-Typ
D: Directory R: Reguläre Datei S: Soft-Link
Link-Count Direkter Block
Einfach indirekter Block Zweifach indirekter Block Direkter Block
Direkter Block
Länge und weitere Attribute
Auÿer den angegebenen Attributen Die Daten sind also über drei direkte Blöke, einen
einfahindirektenBlokundeinenzweifahindirektenBlokerreihbar. EinBlokenthält
4096 Byte,einZeiger aufeinen Blokenthält16 Byte.I-Nodesenthalten nieselbstDaten
einer Datei.
2.1 (3 Punkte)
Wie groÿ kann eine Dateiin diesem Dateisystem maximal sein? Bitte geben Sie alle Re-
henshrittean.
2.2 (2 Punkte)
Wie groÿkanndasDateisystem maximalsein (Begründung)?
2.3 (3 Punkte)
Wie viele Blöke belegt eine Datei, die 140MB Daten enthält. Berüksihtigen Sie niht
denPlatz,derimDatei-Verzeihnis(Diretory)belegtwirdundebenfallsnihtden Platz,
2.4 (8 Punkte)
/
etc users
notes.txt btx.cip
hrw.pic
gen.cfg didi
Verzeihnisse sind Dateien, die zu jeder verwalteten
DateieinenEintragenthalten.EinEintragbestehtaus
demNamenundeinemVerweisaufdenI-NodederDa-
tei. Die nebenstehende Skizze zeigt ein Dateisystem;
esgibtindiesem Dateisystemkeine anderenDateien.
Die Dateien / (Wurzel-Verzeihnis), et, users und
didi sind Verzeihnisse. Die Datei btx.ip ist ein
Hard-Link, der auf hrw.pi verweist. Die Datei
notes.txtisteinSoft-Link,deraufgen.fgverweist.
DieDateigen.fg ist 5KBgroÿ, sie beginntmit Do
not hange ... und endetmit ...to refresh..
Abb.1zeigtallevomDateisystemverwendetenI-NodesundBlökesowieeinenAusshnitt
derFreispeiherverwaltung.Ergänzen SiedieSkizzeanden mit
gekennzeihneten Stel- len. AnStellen, diekeinen deniertenWertbesitzentragen Siebitte einKreuz ein.. ..
hrw.pic 4 7
I-Node 4
29
Block 25 . ..
3 2 6 notes.txt
btx.cip
I-Node 3 Block 26
I-Node 2
26
Block 24
Block 22 I-Node 6
32
Block 23 Block 29
D 1 D
1
Block-Bitmap I-Node-Bitmap
X X 1
. . . . . .
1 1 1 0 0 X X
1 1
Index 25 30 35
0 0 0 X X X
X 20 I-Node 5
24
Block 32 I-Node 7
23
1 #black_ink 1
#cyan_ink 1
#magenta_ink 1 . . . <eof>
1 1 1 1
. ..
etc users
2
3 2
. ..
5 9 didi
gen.cfg 7
Block 31 I-Node 9
R 1 Do not change
. . .
0 5 10 15
. . .
to refresh. <eof>
1
Abbildung 1: SkizzedesDateisystems
DerEintrag <EOF> bedeutet: Gemäÿ Längen-Eintrag im I-Node endet dieDateian dieser
Stelle.DerersteEintragderFreispeiher-Bitmaps bezeihnet denBlok0bzw.denI-Node
0.Der Wert 1 bedeutet, dass derentsprehende Blok bzw. I-Node belegt ist,derWert0
bedeutet, dassderentsprehende Blok bzw.I-Nodefrei ist.
2.5 (2 Punkte)
Die Datei gen.fg wird um 4KB vergröÿert. Welhe Änderungen ergeben sih in dem
Blöke 33, 34, 35 .... Wenn das System zusätzlihe I-Nodes verwendet, so sind dies die
I-Nodes10,11, 12....
Waswirdangelegt, welhe Wertewerden wo eingetragen bzw. verändert?
2.6 FAT Datei-System (2 Punkte)
Eine Partition der Gröÿe 1GB soll durh ein FAT-Datei-System verwaltet werden. Die
Gröÿe eines Bloks beträgt 2KB,einZeiger auf einenBlokbestehtaus3 Byte
Aufgabe 3 Ersetzungsstrategien
DasBetriebssystemeinesRehnersverwalteteinenHauptspeihermit5Kaheln.Aufdem
SystemlaufenProzessemit insgesamt 7Seiten.DieSeiten derProzesse werdengemäÿder
ersten Zeile der folgenden Tabellen referenziert. Wird eine Seite referenziert, so soll die
Wirkung inderzugehörigenSpalte dargestelltwerden.
3.1 Clock-Algorithmus (7 Punkte)
DasBetriebssystemverwendetdenClok-Algorithmus.Bsp.:InderSpalte,inderdieSeite
0referenziertwird,istdargestellt,dassdieSeite0indenHauptspeihereingelagert wurde.
Zahl in Klammern gibt den Wert des R-Bits an, der * Bezeihnet den Zeiger des Clok-
Algorithmus.
SeitenNr. 0 1 2 3 4 5 6 3 1 7 4
K1 0(1) 0(1)
K2 * 1(1)
K3 *
K4
K5
Zweite Tabelle fürevtl. Korrekturen:
SeitenNr. 0 1 2 3 4 5 6 3 1 7 4
K1 0(1) 0(1)
K2 * 1(1)
K3 *
K4
3.2 Optimale Strategie (5 Punkte)
WiewürdedieErsetzunggemäÿderoptimaleStrategieaussehen?FüllenSienurdieFelder
ohne 'X'aus.
SeitenNr. 0 1 2 3 4 5 6 3 7 1 3 6 4 5 2 0
K1 0 0 0 0 0 X X X X X X
K2 1 1 1 1 X X X X X X
K3 2 2 2 X X X X X X
K4 3 3 X X X X X X
K5 4 X X X X X X
Zweite Tabelle fürevtl. Korrekturen:
SeitenNr. 0 1 2 3 4 5 6 3 7 1 3 6 4 5 2 0
K1 0 0 0 0 0 X X X X X X
K2 1 1 1 1 X X X X X X
K3 2 2 2 X X X X X X
K4 3 3 X X X X X X
Aufgabe 4 Funktionsaufruf (6 Punkte)
EinCompilerverwendetnurdenStak,umDatenzwishenvershiedenenFunktioneneines
Programms auszutaushen. FolgendesProgramm ist gegeben:
1 int foxi(int *, har[℄);
2
3 int fix (har word[℄ , int value) {
4 int result = 1;
5 result = foxi( &value , word);
6 return result * 2;
7 }
8
9 int foxi(int *result , har line [℄){
10 *result = line [0℄;
11 line [0℄ = 68;
12 return 42;
13 }
14
15 int main (void){
16 short result = 0;
17 har line [℄ = "Lupo";
18 result = fix(line , 10);
19 printf("\n line : %s\n\n", line );
20 return result;
21 }
Ergänzen SiedieSkizzedesStaks auf dernähsten Seite zu folgendenZeitpunkten:
t 1
nahZeile17unmittelbarvordemFunktionsaufruffix(...)t 2
nahZeile10unmittelbarvorderAnweisungline[0℄ = 68;t 3
inZeile 6unmittelbar vor demRüksprung zuraufrufenden FunktionVerwenden Sie dabeifolgende Symbole:
−→
PointerVariable/Speiherstelle angelegtaberniht initialisiert
xxx Variable/Speiherstelle besitzt einenunbekanntenWert
sp
→
Stelle, auf diederStakpointer zeigtAusshnittausderASCII-Code-Tabelle:
D L o p u
68 76 111 112 117
Hinweis: Es sind vershiedene Varianten möglih. Ahten Sieaber bitte darauf, dass Ihre
line
result 0
L, u, p, o, 0
main() main() main()
t 1 t 2 t 3
. . . . . . . . . . . . . . . . . . . . . . . .
line result
line
result
Aufgabe 5 Synchronisation
DasfolgendePetri-NetzzeigtdieSynhronisation vondrei Prozessen
P
_AC
,P
_BD
undP
_E
. Es handelt sih um ein Bedingungs-Ereignis-Netz. Die TransitionenA, C
gehörenzu Prozess
P
_AC
,dieTransitionenB, D
gehören zumProzessP
_BD
,dieTransitionE
gehörtzu Prozess
P
_E
.C
A B
S2 S1
D E
S3 S4
Abbildung 2:Ein parallelesSystem inForm einesPetri-Netzes
5.1 (2 Punkte)
WelheStellenmüssenSiealsSemaphorrealisieren,umdiedreiProzessegemäÿdemobigen
Petri-Netz zusynhronisieren?
5.2 (3 Punkte)
GebenSiedenQuell-CodefürdieProzesse
P
_AC
,P
_BD
undP
_E
an.SiekönnendazuPseudoPasal verwenden (s. Skriptvon Frau Keller)oder(Pseudo)Java.
Prozess P_AC{ Prozess P_BD{
Prozess P_E{
}
5.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.
5.4 (2 Punkte)
Kanndas System,dasindem oben angegebenen Petri-Netz(s. Abb. 2) dargestellt ist,in