Datum,Zeit 5.Februar 2008,14:00 15:30 Uhr(90min)
Aufgabenblätter 12 Seiten(einshl. Dekblatt)
erreihbare Punktzahl 62
zugelassene Hilfsmittel A (s.Prüfungsplan)
Studiengang Prf. Nr. Raum
AI 3618 H061
Name: Matrikelnummer:
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 14 5 3 13 7 16 62
Aufgabe 1 Virtueller Speiher
Ein Betriebssystem verwendet Paging, um für die vershiedenen Prozesse jeweils einen
virtuellenHauptspeiherzurealisieren.DervirtuelleSpeiherwirdauf1MBHauptspeiher
und2MBderFestplatte abgebildet(Swap-Spae). DieGesamtlänge einerAdressebeträgt
22Bit.
6 Bit 5 Bit 11 Bit PT1 PT2 Offset
Das Betriebssystem verwendet eine zweistuge Seitentabel-
le. Die Länge der ersten Seitenadresse (PT1) beträgt 6 Bit;
dieLänge derzweiten Seitenadresse(PT2) beträgt 5Bit; die
Länge desOsetsbeträgt11 Bit.
Allg.Hinweis: Shreiben Siebeidenfolgenden Aufgaben im-
merden Rehenweg auf,z.B. Gröÿe desSpeiherbereih XY dividiert durhAnzahl Z.
1.1 (8 Punkte)
Ein Prozessbelegtfolgende Adressbereihe:
Prog. Teil Adressbereih Gröÿe inByte
TextSegment 0 -245000 245001
HeapSegment 245001 - 362070 117070
StakSegment 4051305 4194304 143000
(1 Punkt)Wie viele Einträge hat dieSeitentabelle ersterStufe?
IndexPT16 Bit:
2 6 = 64
(1 Punkt)Wie viele Einträge hat eineSeitentabelle zweiterStufe?
IndexPT25 Bit:
2 5 = 32
(1 Punkt)Wie groÿ (inKilobyte,KB) ist ist eineSeite, wiegroÿ isteine Kahel?
Oset11 Bit:
2 11 = 2048
(1 Punkt)Wie viele Seiten belegt dasStakSegment?
Gröÿe Stak-Segment /Gröÿe einer Seite
143 000 / 2048 = 69 , 82 . . . ⇒ 70
Seiten(1 Punkt)Wie viele Seitentabellen zweiterStufewerdenfür dasStakSegment benötigt?
Anzahl Seiten / Anzahl Einträge in einer Tabelle zweiter Stufe
70 / 32 = 2 , 18 . . . ⇒
Es werdendrei Tabellen zweiterStufebenötigt.(2 Punkte) Wie viele Seitentabellen zweiter Stufe werden für das Text und das Heap
Segment benötigt?
AnzahlSeiten:
362 071 / 2048 = 176 , 75 . . . ⇒ 177
Seiten.Anzahl Seiten /Anzahl Einträge in einer Tabelle zweiter Stufe177 / 32 = 5 , 53 . . . ⇒
Es werden 6 Tabellen zweiter Stufe benötigt.(1 Punkt)Wie viele Kaheln verwaltet dasBetriebssystem?
Gröÿe Hauptspeiher/ Gröÿe Kahel:
2 20 / 2 11 = 2 9 Kaheln (512).
1.2 (6 Punkte)
ImWeiterensolleinevirtuelleAdressedurhdreiDezimalzahlen fürPT1,PT2undOset
dargestellt werden. Beispiel: Die dezimalen Werte (11, 27, 213) stehen für die virtuelle
Adresse0010111101100011010101.
DiefolgendeAbbildungzeigteinenAusshnittausderSeitentabelleersterStufeundeinige
AusshnitteausSeitentabellen zweiterStufe.Ahtung:IndenSeitentabellen zweiterStufe
stehen nur diesignikantenBits, sodassderOset lediglih angehängtwerden muss!
1 2 3 4 0
10 11
:
:
142
:
:
PT2 PT1
3906 4213 478 1344 4398
243 1924
1344
4213
1924 478
36 242
:
371 502 46 243
241 81 108
21 1
2 0
1 2 3
45 0
1 2 3 0 Anfangsadresse
165 300
429 46
47 61 2901 :
28 :
:
Diephysishe Adressesollals eineDezimalzahl dargestellt werden.
ErgänzenSiediefehlendenWerteinderTabellesoweitmöglih.WennSieeinenWertniht
eintragen können,sobegründenSie diesbitte stihwortartig:
virt. Adresse phys.Adresse
3 2 123 979067
1 2 381
2 3 459
11 46 342
614484
73827
223322
virt. Adresse phys.Adresse
3 2 123 979067
1 2 381 94589
X 2 3 459 - - -- -
11 46 342 43350
11 3 84 614484
3 0 99 73827
Y - - - 223322
X:Es ist keinePT2an Adresse478 angegeben.
Aufgabe 2 Funktionsaufruf (5 Punkte)
EinCompilerverwendetnurdenStak,umDatenzwishenvershiedenenFunktioneneines
Programms auszutaushen. FolgendesProgramm ist gegeben:
1 int foo (har test [ ℄, int value) {
2 int result = 3;
3 if (test [0℄ == 'X'){
4 result = value
−
1;5 }
6 return result;
7 }
8
9 float bar (float *value , har symbol){
10 har line [℄ = "Hallo";
11 int num = foo (line , 42);
12 line [1℄ = symbol;
13 return num * 2.0;
14 }
15
16 int main (void){
17 har word[ ℄ = "abde";
18 float result = 2.3;
19 result = bar( &result , word[4℄) ;
20 return result;
21 }
Ergänzen SiedieSkizzedesStaks auf dernähsten Seite zu folgendenZeitpunkten:
t 1 Zeile 10unmittelbar nahderZuweisung zu line
t 2 Zeile 6unmittelbar vor derAnweisung return
t 3 Zeile 13unmittelbar vor derAnweisung return Verwenden Sie dabeifolgende Symbole:
−→
PointerVariableangelegtaberniht initialisiert
xxx Variablebesitzteinen unbekanntenWert
sp
→
Stelle, aufdie derStakpointerzeigtresult
word abcde
main() 2.3 bar() foo()
result
word abcde
main() 2.3 bar()
result
word abcde
main() 2.3
ret-addr ret-value
ret-addr ret-value
ret-addr ret-value symbol
value
e symbol
value
e
line hallo line hallo
num ret-addr ret-value result
3 3
xxxxx ---
--- xxxxx
xxxxx ---
symbol value
e
line hello
xxxxx 6.0 value
test
42
sp
sp
sp
num 3
t 1 t 2 t 3
Aufgabe 3 Ersetzungsstrategien (7 Punkte)
DasBetriebssystemeinesRehners verwaltet einenHauptspeihermit5Kaheln.DasBe-
triebssystemverwendetden Aging-Algorithmus miteiner Zählerbreitevon4 Bit.Aufdem
System laufen Prozesse mit insgesamt 10 Seiten. Die Seiten der Prozesse werden gemäÿ
der ersten Zeile der folgenden Tabellen referenziert. Ein Eintrag AG bedeutet, dass zu
diesemZeitpunktdieSeiten altern.WirdeineSeitereferenziert, sosolldieWirkung inder
zugehörigen Spalte dargestellt werden. Bsp.: In der Spalte, in derdie Seite 1 referenziert
wird, ist dargestellt, dass die Seite 1 in den Hauptspeiher eingelagert wurde. Die Zahl
in Klammern gibt den Wert des Zählers an. Die Seite 0 wurde shon vorab in Kahel 0
eingelagert.
Vervollständigen Siedie Werte inderangegebenen Tabelle. FallsSie gröÿere Korrekturen
anbringen müssen,könnenSie diezweite Tabelle verwenden.
Seitenreferenz
0 5 AG 6 1 AG 3 0 AG 7 2
K0 0(8) 0(8) 0(4) 0(4) 0(4) 0(2) 0(2) 0(10) 0(5) 0(5) 0(5)
K1 1(8) 1(8) 1(4) 1(4) 1(12) 1(6) 1(6) 1(6) 1(3) 1(3) 1(3)
K2 5(8) 5(4) 5(4) 5(4) 5(2) 5(2) 5(2) 5(1) 7(8) 7(8)
K3 6(8) 6(8) 6(4) 6(4) 6(4) 6(2) 6(2) 2(8)
K4 3(8) 3(8) 3(4) 3(4) 3(4)
Aufgabe 4 Synhronisation
DasfolgendePetri-NetzzeigtdieSynhronisationvon3Prozessen
P
_AF
,P
_BE
,P
_CD
.Es handelt sih um ein Bedingungs-Ereignis-Netz. Die Transitionen
A
undF
gehören zuProzess
P
_AF
,dieTransitionenB
undE
gehörenzuProzessP
_BE
,dieTransitionenC
und
D
gehörenzu ProzessP
_CD
.B C
A
D
S1 S2 S3 S4
E F
S5
Abbildung 1:Ein parallelesSystem inForm einesPetri-Netzes
4.1 (2 Punkte)
WelheStellenmüssenSiealsSemaphorrealisieren,umdiedreiProzessegemäÿdemobigen
Petri-Netz zusynhronisieren?
S1,S2,S3,S4
4.2 (4 Punkte)
Geben Sie den Quell-Code für die Prozesse
P
_AF
,P
_BE
undP
_CD
an. Sie könnendazu PseudoPasal verwenden (s. Skriptvon Frau Keller)oder(Pseudo)Java.
Prozess P_AF{
while(true){
S1.d o w n();
A();
S2.up();
S3.d o w n();
F();
S4.up();
}
Prozess P_BE{
while(true){
B():
S2.up();
S3.up();
S2.d o w n();
S3.d o w n();
E();
}
Prozess P_CD{
while(true){
S4.d o w n();
C();
S3.up();
S2.d o w n();
D();
S1.up();
}
}
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.
E A
C
F A
B C
D
F
D
4.4 (2 Punkte)
Kanndas System,dasindem oben angegebenen Petri-Netz(s. Abb. 1) 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
4.5 Variante
BetrahtenSienundasSystemgemäÿAbb.2.EshandeltsihebenfallsumeinBedingungs-
Ereignis-Netz.
B A
C
S1 S2 S3 S4
D S5
Abbildung 2:Ein parallelesSystem inForm einesPetri-Netzes
Es ist durh diezwei Prozesse
P
_AC
,P
_BD
implementiert. Die Semaphore dürfen nur dieWerte 0 und1 annehmen(Bedingungs-Ereignis-Netz).Prozess P_AC{
while(true){
A();
S3.up();
S4.up();
S2.d o w n();
S3.d o w n();
C();
}
}
Prozess P_BD{
while(true){
B():
S2.up();
S3.up();
S3.d o w n();
S4.d o w n();
D();
}
}
4.6 (2 Punkte)
Kanndie gegebene Implementierung desSystemsinPseudo-Java ineinen Deadlokgera-
ten;wennja,wie; wenn nein, warumniht?
Ja,wennderProzess
P
_BD
dieAnweisungenS2.up(); S3.up(); S3.down();ohneUn- terbrehung durhläuft.4.7 (2 Punkte)
KanndasSystemsinCmit Hilfe derSemaphoreausder C-Standard-Bibliothek soimple-
mentiert werden, dass esniht ineinen Deadlok geraten kann;wenn ja, wie; wenn nein,
warum niht? Ahtung: Esgenügt eine stihwortartige Antwort alsBegründung.
Ja, dieSemaphore derC-Standard-Bibliothek können zu Gruppen zusammengefasstwer-
den,sodassalle Semaphore einerGruppen ineiner atomarenAktionmanipuliert werden.
Wenn die Semaphore S2, S3 und S4 zu einer Gruppe zusammengefasstwerden, kann der
Deadlok niht auftreten. Anm.: Es wäre siherlih sinnvoll, alle benötigten Semaphore
(S2, S3,S4 und S5) zu einer Gruppe zusammenzufassen; notwendig ist allerdings nur die
Aufgabe 5 Sheduling
EinBetriebssystemverwendetpreemptiveMultitaskingmiteinerKombinationausRound-
Robinundprioritätsbasiertem Sheduling.Es gibtdrei Prioritätsstufen: 1,2 und3,wobei
dieStufe1diehöhstePrioritätdarstelltunddieStufe3dieniedrigste.DerShedulerwird
aktiv, wenn eine Zeitsheibe abläuft oder wenn ein Prozess blokiert wird. Das System
verwaltet 8Prozesse (P1 ...P8).
Prio 1
Prio 2
Prio 3
P1 P2 P3
P4 P5
P6 P7 P8
Ein Prozessist rehnend (RE),einige Prozesse sind
bereit(BR) einigesind blokiert (BL).
5.1 (7 Punkte)
Die folgende Tabelle soll die Zustände der Prozes-
sezuvershiedenenZeitpunkten darstellen.DerZu-
stand zum Zeitpunkt
t 0 ist gegeben. Es treten nun
der Reihe nah Ereignisse auf. Mit dem Ausdruk
Prozess P7 wird deblokiert ist gemeint, dass die
Ursahe für die Blokade aufgehoben ist. Z.B. weil
eineAus- oderEingabedesProzess beendet wurde.
Ergänzen Sie die Tabelle gemäÿ den auftretenden
Ereignissen.
Zeitpunkt: Ereignis
t 0:Ein Zeitsheibe für daspreemptive Multitasking läuftab
t 1:ProzessP7 wirddeblokiert
t 2:ProzessP1 wirddeblokiert
t 3:ProzessP2 wirdblokiert
t 4:ProzessP1 wirdblokiert
t 5:ProzessP5 wirdblokiert
t 6:ProzessP4 wirdblokiert
t 7:Ein Zeitsheibe für daspreemptive Multitasking läuftab
P1 P2 P3 P4 P5 P6 P7 P8
t 0 t 1 t 2 t 3 t 4 t 5
BL
RE BL
BR BL
t 6 t 7 BL
RE BL BL
BR BL
BL
BL
BL BL
BR
BR BR BR
BR
RE BL
BL
BL BR BR BR RE
BL
BL
BR BR BR RE
BR
BL
BR BR BR
BR BR RE
RE BL BL
BR BR BR
BR
BL BL BL BR RE
BR BR BR BR
BR BR BR BR
BR BR
BL BL BL RE
BR
BR BR BL
BL BL BL
RE BR
BR BL BL
RE BR BL BL BL
BR
BL
BL
Aufgabe 6 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:
Diverse Informationen zur Datei
Zeiger auf einfach indirekten Block Zeiger auf zweifach indirekten Block 1
2 3 4 5 6 7
I-Node
Zeiger auf dreifach indirekten Block Link-Count
DieDatensindalsoüberzweiindirekteBlöke,einenzweifahindirektenBlokund einen
dreifahindirektenBlokerreihbar.EinBlokenthält512Byte,einZeigeraufeinenBlok
enthält4 Byte. I-Nodesenthalten nieselbstDaten einer Datei.
6.1 (3 Punkte)
Wie groÿ kann eine Dateiin diesem Dateisystem maximal sein? Bitte geben Sie alle Re-
henshrittean.
2 9Bytepro Blok/4Bytepro Zeiger =128 Zeiger pro Blok.
AnzahlBlöke:
2 ∗ 128 + 128 2 + 128 3 =
2113792 Blöke =1082261504 Byte(a.1GB)6.2 (2 Punkte)
Wie groÿkanndasDateisystem maximalsein (Begründung)?
4Bytepro ZeigerEs können max.
2 32 Blöke adressiert werden.
2 32 Blöke * 2 9Byte/Blok=2 41Byte(a. 2TB)
2 41Byte(a. 2TB)
6.3 (3 Punkte)
WievieleBlökebelegteineDatei,die10MBDatenenthält.BerüksihtigenSienihtden
Platz,derimDatei-Verzeihnis (Diretory)belegtwirdund ebenfalls nihtden Platz,der
durhden I-Node belegtwird.
Dateigröÿe/Blokgröÿe:
10 ∗ 2 20 / 2 9 = 10 ∗ 2 11 (20480) Blöke für Daten. Insgesamt 160
einfah indirekte Blöke. Zwei werden direkt aus dem I-Node adressiert (Rest 158), 128
weitere werden über den zweifah indirekten Blok adressiert (Rest 30), die letzten 30
werdenüberdendreifahindirektenBlokmiteinem weiterenzweifahindirektenBlok
adressiert.
Es werdenalso benötigt: 20480Blöke für Daten,160einfahindirekte Blöke,zweizwei-
fah indirekteBlöke und einen dreifah indirekten Blok. Insgesammt: 20480 + 160 +2
I-Nodes :
Blöcke 63
64 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
21
22
23
24
25
26
:
: 43
todo.txt : 63 1
2 3 4 5 6 7 8 65
:
. . . mähen DBMS: . . .
27 :
28
:
: : 26 28
: 23 25
27
Verzeihnisse sind normale Dateien, die zu jeder
verwalteten Datei einen Eintrag enthalten. Ein
Eintrag besteht aus dem Namen und einem Ver-
weis auf den I-Node der Datei. Die Länge eines
Eintrags beträgt 64 Byte. Ein neuerEintrag wird
stetsan dasEndederVerzeihniss-Dateigeshrie-
ben.
Die nebenstehende Abbildung zeigt einen Aus-
shnitt aus der Reihe der I-Nodes (I-Node 63, 64
und65)undeinenAusshnittderReihederBlöke
desDateisystems(Blok21 28).
DasVerzeihnis /home/fritzwirdvon I-Node65
verwaltet.BevordieDateitodo.txtangelegtwur-
de enthielt das Verzeihnis /home/fritz bereits
20 Dateien. Die Datei ist 943Byte groÿ, sie be-
ginnt mit DBMS: Aufgabe 3... und endet mit
...Rasen mähen. Das Dateisystem enthält zu-
nähstkeine Links.
6.4 (3 Punkte)
ErgänzenSiedieSkizzeandenmit
←
markierten Stellen.6.5 (3 Punkte)
Ein symbolisher Link wird innnerhalb des Ver-
zeihnis angelegt angelegt, so dass die Datei
todo.txt auh über den Namen morgen.txt zu-
greifbarist.
TragenSiedie ÄnderungenindieSkizzeein. Ver-
wenden Sienur I-NodesundBlöke,diebereitsin
derSkizzevorhanden sind.
6.6 (2 Punkte)
EinHard-LinkwirdinnnerhalbdesVerzeihnisangelegtangelegt,sodassdieDateitodo.txt