Datum,Zeit 20.Februar 2009,08:00 09:30Uhr(90min)
Aufgabenblätter 12 Seiten(einshl. Dekblatt)
erreihbare Punktzahl 69
zugelassene Hilfsmittel A (s.Prüfungsplan)
Studiengang Prf. Nr. Raum
AI 3618 H061
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 6 Summe
Max.Punkte 17 7 21 8 6 10 69
Aufgabe 1 Virtueller Speicher
EinBetriebssystemverwendetPaging,umfürdievershiedenenProzessejeweilseinenvir-
tuellenHauptspeiherzurealisieren.Dervirtuelle Speiherwirdauf48MB Hauptspeiher
und8MBderFestplatte abgebildet(Swap-Spae). DieGesamtlänge einerAdressebeträgt
26Bit.
8 Bit 9 Bit
PT1 PT2 Offset
9 Bit
Das Betriebssystem verwendet eine zweistuge Seitentabel-
le. Die Länge der ersten Seitenadresse (PT1) beträgt 8 Bit;
dieLänge derzweiten Seitenadresse(PT2) beträgt 9Bit; die
Länge desOsetsbeträgt9 Bit.
Allg.Hinweis: Shreiben Siebeidenfolgenden Aufgaben im-
merdenRehenwegauf,z.B.GröÿedesSpeiherbereihXY
dividiertdurh Anzahl Z.
1.1 (8 Punkte)
Ein Prozessbelegtfolgende Adressbereihe:
Prog. Teil Adressbereih Gröÿe inByte
TextSegment 0 - 390000 390001
HeapSegment 390001 - 22403070 22013070
StakSegment 268291437 268435456 144020
(1 Punkt)Wie viele Einträge hat dieSeitentabelle ersterStufe?
(1 Punkt)Wie viele Einträge hat eineSeitentabelle zweiterStufe?
(1 Punkt)Wie groÿ (inKilobyte,KB) ist ist eineSeite, wiegroÿ isteine Kahel?
(1 Punkt)Wie viele Seiten belegt dasStakSegment?
(2 Punkte) Wie viele Seitentabellen zweiter Stufe werden für das Text und das Heap
Segment benötigt?
(1 Punkt)Wie viele Kaheln verwaltet dasBetriebssystem?
(1Punkt)AufwelheGröÿekanndervirtuelleSpeihermaximalausgebautwerden(Haupt-
1.2 (9 Punkte)
ImWeiterensolleinevirtuelleAdressedurhvierDezimalzahlenfür PT1,PT2,undOset
dargestellt werden. Beispiel: Die dezimalen Werte (33, 13, 116) stehen für die virtuelle
Adresse00100001000001101 001110100.
DiefolgendeAbbildungzeigteinenAusshnittausderSeitentabelleersterStufeundeinige
Ausshnitte aus den Seitentabellen zweiter Stufe. Ahtung: In den Seitentabellen zweiter
StufestehennurdiesignikantenBits,sodassderOsetlediglihangehängtwerdenmuss!
1 2 3 4 0
10 11
:
:
6180
:
PT2 PT1
3901 2769 3988 1066 4398
2769
8250
9028 5128 8040
:
1066 8742 7046 3248 1
2 0
1 2 3 0 Anfangsadresse
255
2901
113 :
8250
867
3901 741
42 1
0
3 :
: :
2
108
: 112 113 114
4190 347 2279
Diephysishe AdressesollinFormeiner Dezimalzahl dargestelltwerden.
ErgänzenSiediefehlendenWerteinderTabellesoweitmöglih.WennSieeinenWertniht
eintragen können,sobegründenSie diesbitte stihwortartig:
virt.Adresse phys.Adresse
1 113 47 3164207
1 2 491
0 1 21
56496
545870
255 3 176
177989
3 2 501
Aufgabe 2 Scheduling
EinBetriebssystemverwendetpräemptiveMultitaskingmiteinerKombinationausRound-
Robinundprioritätsbasiertem Sheduling.Es gibtdrei Prioritätsstufen: 1,2 und3,wobei
die Stufe 1 die höhste Priorität darstellt und die Stufe 3 die niedrigste. Der Sheduler
wirdaktiv,wenneineZeitsheibeabläuftoderwenneinProzessblokiertwird.DasSystem
verwaltet8Prozesse(P1...P8).EinProzessistrehnend(RE),einigeProzessesindbereit
(BR)einige sindblokiert(BL).
2.1 (7 Punkte)
Prio 1
Prio 2
Prio 3
P1 P2
P3 P4 P5
P6 P7 P8
Die folgende Tabelle soll die Zustände der Prozes-
sezuvershiedenenZeitpunkten darstellen.DerZu-
standunmittelbarvordemZeitpunkt
t 0
istgegeben.Es treten nun der Reihe nah Ereignisse auf. Mit
demAusdrukProzess P7wirddeblokiert ist ge-
meint,dassdieUrsahefürdieBlokadeaufgehoben
ist. Z.B. weil eine Aus- oder Eingabe des Prozess
beendet wurde. Die Zeitpunkte
t − 2
undt − 1
fassenjeweils zweiEreignissezusammen.
Ergänzen Sie die Tabelle gemäÿ den auftretenden
Ereignissen.
t 0
:Ein Zeitsheibe für daspräemptive Multitasking läuftabt 1
:ProzessP1 wirdblokiertt 2
:ProzessP2 wirdblokiertt 3
:ProzessP5 wirdblokiertt 4
:ProzessP4 wirdblokiertt 5
:ProzessP5 wirddeblokiertt 6
:Ein Zeitsheibe für daspräemptive Multitasking läuftabt 7
:Ein Zeitsheibe für daspräemptive Multitasking läuftabP1 P2 P3 P4 P5 P6 P7 P8
t 0 t 1 t 2 t 3 t 4 t 5
BR
BL
t 6 t 7
RE
BR BR BR
BR
RE BR BR
BR BL
BL BL
BL
RE BL
BL
BL t -1
BL BL BL
RE BR
BR BL
BL BR BL BL BL BR
t -2
Aufgabe 3 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
Die Daten sind also über zwei direkte Blöke, einen einfah indirekten Blok und einen
zweifah indirekten Blok erreihbar. Ein Blok enthält 4096 Byte, ein Zeiger auf einen
Blokenthält 8Byte. I-Nodesenthalten nieselbst Dateneiner Datei.
3.1 (3 Punkte)
Wie groÿ kann eine Dateiin diesem Dateisystem maximal sein? Bitte geben Sie alle Re-
henshrittean.
3.2 (2 Punkte)
Wie groÿkanndasDateisystem maximalsein (Begründung)?
3.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.
3.4 (7 Punkte)
Verzeihnisse sind Dateien, die zu jeder verwalteten Datei einen Eintrag enthalten. Ein
Eintrag besteht aus dem Namen und einem Verweis auf den I-Node der Datei. Folgende
Skizzezeigt einDateisystem;esgibt indiesemDateisystem keineanderen Dateien.
/
etc users
prog.conf hbc.conf text.bla gen.conf
Abbildung 1: SkizzedesDateisystems
DieDateien/(Wurzel-Verzeihnis),etunduserssindVerzeihnisse.DieDateihb.onf
ist ein Hard-Link, derauf prog.onf verweist. Die Datei gen.onfist einSoft-Link, der
aufprog.onfverweist.DieDateitext.blaist5KBgroÿ,siebeginntmitDerBundesrat
... undendet mit ...CO2-Emissionen..
Abb.2zeigtallevomDateisystemverwendetenI-NodesundBlökesowieeinenAusshnitt
derFreispeiherverwaltung.Ergänzen SiedieSkizzeanden mit
gekennzeihneten Stel- len. AnStellen, diekeinen deniertenWertbesitzentragen Siebitte einKreuz ein.. ..
etc users
2 4 6 2
I-Node 4 5
Block 5 . ..
4 2 3 prog.conf
hbc.conf
I-Node 3 6
Block 6 I-Node 2
3
Block 3
Block 2 I-Node 6
2
Block 7 Block 11
D
D
R
1 1
1
Block-Bitmap I-Node-Bitmap
X X 1
. . . . . .
1 1 1 1 0 0 0 X X
1
Index 5 10 15
0 0 0 0 X X 0
X X 0 . ..
5 9 text.bla gen.conf I-Node 9
4
Block 4 I-Node 5
1 Der Bundesrat
will das nationale Messnetz . . . . . .
zur Reduktion von CO2-Emis- sionen. <eof>
#black_ink 1
#color_ink 1
#cyan_ink 1
#magenta_ink 1 . . . <eof>
1 1 1
Abbildung 2: 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
3.5 (4 Punkte)
Die Datei text.bla wird um 4KB vergröÿert. Welhe Änderungen ergeben sih in dem
gegebenenDateisystem?WenndasSystemzusätzliheBlökeverwenden,sosinddiesBlok
12,13,14....Wenn dasSystemzusätzliheI-Nodesverwenden,sosinddiesI-Node10,11,
12....
Waswirdangelegt, welhe Wertewerden wo eingetragen bzw. verändert?
3.6 FAT Datei-System (2 Punkte)
Eine Partition der Gröÿe 2GB soll durh ein FAT-Datei-System verwaltet werden. Die
Gröÿe eines Bloks beträgt 4KB,einZeiger auf einenBlokbestehtaus4 Byte
Wie groÿist dieFAT fürdiese Dateisystem?
Aufgabe 4 Ersetzungsstrategien (8 Punkte)
DasBetriebssystemeinesRehners verwaltet einenHauptspeihermit4Kaheln.DasBe-
triebssystem verwendet den Aging-Algorithmus mit einem 3-Bit Zähler. Auf demSystem
läufteinProzessmitinsgesamt6 Seiten.Die SeitenderProzessewerdengemäÿderersten
Zeile der folgenden Tabellen referenziert. Neben der Seitennummer steht in Klammern
der Zählerstand der Seite. Der Eintrag ZS bedeutet, dass jeder Zählerstand durh den
Aging-Algorithmus halbiertwird.InderSpalteuntereinemZugrisollendieFolgendieses
Zugrisdagestellt werden. Sowirdz.B.inderersten Spalte durhden Zugri auf Seite1
dieseSeiteinKahel3eingelagert.DieSeiten0,4,und3wurdenshonvorhereingelagert.
Ergänzen SiedieTabelle.
Seitenreferenz
1 ZS 2 0 ZS 3 5 2 4
K0 0(2)
K1 4(3)
K2 3(1)
K3 1(4)
Zweite Tabelle fürevtl. Korrekturen.
Seitenreferenz
1 ZS 2 0 ZS 3 5 2 4
K0 0(2)
K1 4(3)
K2 3(1)
K3 1(4)
Aufgabe 5 Funktionsaufruf (6 Punkte)
EinCompilerverwendetnurdenStak,umDatenzwishenvershiedenenFunktioneneines
Programms auszutaushen. FolgendesProgramm ist gegeben:
1 int rofl (int *value , har line [℄) {
2 int result = *value;
3 if (line [0℄ < 'x'){
4 *value = result + 1;
5 }
6 return result;
7 }
8
9 int lol (int value , int n u m s[℄){
10 har text [℄ = "abd";
11 value = rofl( &n u m s[3℄, text);
12 text[1℄ = value + '0';
13 return value;
14 }
15
16 int main (void){
17 int values[ ℄ = {1, 2, 3, 4};
18 int test = 7;
19 test = lol(test , values) ;
20 return test ;
21 }
ErgänzenSie dieSkizzedesStaks auf dernähsten Seite zu folgendenZeitpunkten:
t 1
Zeile 10unmittelbar nahderZuweisung zu textt 2
Zeile 6unmittelbar vor derAnweisung returnt 3
Zeile 13unmittelbar vor derAnweisung return Verwenden Sie dabeifolgende Symbole:−→
PointerVariableangelegtaberniht initialisiert
xxx Variablebesitzteinen unbekanntenWert
sp
→
Stelle, aufdie derStakpointerzeigttest
values 1, 2, 3, 4
main() 7 lol() rofl()
test values
main() lol() main()
t 1 t 2 t 3
7 test
values
Aufgabe 6 Synchronisation
C A
B S2
S1
S3
D
E S5 S4
S6
S7
Abbildung 3:Ein paralleles System in
Formeines Petri-Netzes Das folgende Petri-Netz zeigt die Synhroni-
sation von drei Prozessen
P
_AB
,P
_C
undP
_DE
. Es handelt sih um ein Bedingungs-Ereignis-Netz. Die Transitionen
A, B
gehörenzuProzess
P
_AB
,dieTransitionC
gehörtzumProzess
P
_C
,dieTransitionenD, E
gehörenzuProzess
P
_DE
.6.1 (2 Punkte)
Welhe Stellen müssen Sie als Semaphor reali-
sieren, umdiedrei Prozessegemäÿ demobigen
Petri-Netz zusynhronisieren?
6.2 (3 Punkte)
Geben Sie den Quell-Code für die Prozesse
P
_AB
,P
_C
undP
_DE
an. Sie können da-zuPseudoPasal verwenden (s.SkriptvonFrau
Keller)oder(Pseudo)Java.
Prozess P_AB{
}
Prozess P_C{
}
Prozess P_DE{
}
6.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.
6.4 (2 Punkte)
Kanndas System,dasindem oben angegebenen Petri-Netz(s. Abb. 3) dargestellt ist,in
einenDeadlokgeraten;wennja, wie;wenn nein, warum niht?