• Keine Ergebnisse gefunden

6 Bit 5 Bit 11 Bit PT1 PT2 Offset

N/A
N/A
Protected

Academic year: 2022

Aktie "6 Bit 5 Bit 11 Bit PT1 PT2 Offset"

Copied!
12
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

(2)

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 Stufe

177 / 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).

(3)

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.

(4)

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:

−→

Pointer

Variableangelegtaberniht initialisiert

xxx Variablebesitzteinen unbekanntenWert

sp

Stelle, aufdie derStakpointerzeigt

(5)

result

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

(6)

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)

(7)

Aufgabe 4 Synhronisation

DasfolgendePetri-NetzzeigtdieSynhronisationvon3Prozessen

P

_

AF

,

P

_

BE

,

P

_

CD

.

Es handelt sih um ein Bedingungs-Ereignis-Netz. Die Transitionen

A

und

F

gehören zu

Prozess

P

_

AF

,dieTransitionen

B

und

E

gehörenzuProzess

P

_

BE

,dieTransitionen

C

und

D

gehörenzu Prozess

P

_

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

und

P

_

CD

an. Sie können

dazu 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();

}

(8)

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

(9)

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

(10)

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

(11)

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 9

Bytepro 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 9

Byte/Blok=

2 41

Byte(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

(12)

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

Referenzen

ÄHNLICHE DOKUMENTE

a) Die Register: Sie dienen als Zwischenspeicher für Daten und Befehle. b) Das Steuerwerk: Jeder einlangende Befehl wird hier decodiert und aktiviert ein entsprechen-

1) Reset. This has highest priority. This has second highest priority. This has third highest priority. This has lowest priority. you execute XOP instructions to

SED1065 built in, SoundGenerator, SupplyVoltageDetection Watchdog, 10bit A/D Converter, HighSpeedOperation, no access to ext. 16bit timer) SoundGenerator, Display Memory, Clock

Intuitively: The predicting algorithm produces an l-tuple according to q i−1 , given that z i−1 is generated by the PRBG. If dst answers 0, then it thinks that the l-tuple was

Ein Betriebssystem verwendet Paging, um für die vershiedenen Prozesse jeweils einen vir-.. tuellen Hauptspeiher

für das Stak-Segment oder kann der Stak über die vorhandenen Seitentabellen zweiter.. Stufe adressiert

Ein Betriebssystem verwendet Paging, um für die vershiedenen Prozesse jeweils einen vir-.. tuellen Hauptspeiher

mentiert werden, dass es niht in einen Deadlok geraten kann; wenn ja, wie; wenn nein,.. Aufgabe