• Keine Ergebnisse gefunden

Hochschule Ravensburg-Weingarten Schriftliche Pr¨ufung Betriebssysteme

N/A
N/A
Protected

Academic year: 2022

Aktie "Hochschule Ravensburg-Weingarten Schriftliche Pr¨ufung Betriebssysteme"

Copied!
13
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Datum, Zeit 20. Juli 2007, 08:00 – 09:30 Uhr (90 min) Aufgabenbl¨atter 13Seiten (einschl. Deckblatt)

erreichbare Punktzahl 67

zugelassene Hilfsmittel A (s. Pr¨ufungsplan)

Studiengang Prf. Nr. Raum

AI 1825 H039/1

AI 3618 H039/1

Name: Matrikelnummer:

Hinweise:

ˆ Schreiben Sie bitte Name und Matrikelnummer auf jedes Aufgabenblatt.

ˆ Schreiben Sie Ihre L¨osung zu den Aufgaben auf den freien Platz, direkt anschließend an die Fragestellungen. Wenn Sie zus¨atzliche Bl¨atter verwenden, so schreiben Sie bitte Name und Matrikelnummer auf jedes Blatt.

ˆ Schreiben Sie lesbar!

Falls Sie es w¨unschen, dass Ihr Pr¨ufungsergebnis auf einer Liste mit Matrikelnummern und Zensuren ausgeh¨angt bzw. per Internet ver¨offentlicht wird, unterschreiben Sie bitte folgende Erkl¨arung.

Ich bin damit einverstanden, dass mein Klausurergebnis auf diese Weise ver¨offentlicht wird.

Unterschrift:

Bitte haben Sie daf¨ur Verst¨andnis, dass aus Gr¨unden das Datenschutzes keine telefonischen Ausk¨unfte gegeben werden k¨onnen.

Vom Pr¨ufer auszuf¨ullen:

Aufgabe 1 2 3 4 5 6 7 Summe

Max. Punkte 17 7 9 4 6 16 8 67

Punkte

(2)

Aufgabe 1 Virtueller Speicher

Ein Betriebssystem verwendet Paging, um f¨ur die verschiedenen Prozesse jeweils einen vir- tuellen Hauptspeicher zu realisieren. Der virtuelle Speicher wird auf 512 KB Hauptspeicher und 250 KB der Festplatte abgebildet (Swap-Space). Die Gesamtl¨ange einer Adresse be- tr¨agt 20 Bit.

4 Bit 6 Bit 10 Bit

PT1 PT2 Offset

Das Betriebssystem verwendet eine zweistufige Seitentabel- le. Die L¨ange der ersten Seitenadresse (PT1) betr¨agt 4 Bit;

die L¨ange der zweiten Seitenadresse (PT2) betr¨agt 6 Bit; die L¨ange des Offsets betr¨agt 10 Bit.

Allg. Hinweis: Schreiben Sie bei den folgenden Aufgaben im-

mer den Rechenweg auf, z. B. “Gr¨oße des Speicherbereich XY dividiert durch Anzahl Z“.

1.1 (8 Punkte)

Ein Prozess belegt folgende Adressbereiche:

Prog. Teil Adressbereich Gr¨oße in Byte

TextSegment 0 - 135 000 135 001

HeapSegment 135 001 - 152 070 17 070 Stack Segment 998 576 – 1 048 576 50 000

(1 Punkt) Wie viele Eintr¨age hat die Seitentabelle erster Stufe?

Index PT1 4 Bit: 24 = 16

(1 Punkt) Wie viele Eintr¨age hat eine Seitentabelle zweiter Stufe?

Index PT2 6 Bit: 26 = 64

(1 Punkt) Wie groß (in Kilobyte, KB) ist ist eine Seite, wie groß ist eine Kachel?

Offset 10 Bit: 210= 1024

(1 Punkt) Wie viele Seiten belegt das StackSegment?

Gr¨oße Stack-Segment / Gr¨oße einer Seite 50 000/1024 = 48,828125⇒49 Seiten

(1 Punkt) Wie viele Seitentabellen zweiter Stufe werden f¨ur das StackSegment ben¨otigt?

Anzahl Seiten / Anzahl Eintr¨age in einer Tabelle 2. Stufe 49/64 = 0,762. . . ⇒ Es wird eineTabelle 2. Stufe ben¨otigt.

(2 Punkte) Wie viele Seitentabellen zweiter Stufe werden f¨ur das Text und das Heap Segment ben¨otigt?

Anzahl Seiten: 152 071/1024 = 148,5. . . ⇒ 149 Seiten. Anzahl Seiten / Anzahl Eintr¨age in einer Tabelle 2. Stufe 149/64 = 2,3. . .⇒ Es werden 3 Tabellen 2. Stufe ben¨otigt.

(1 Punkt) Wie viele Kacheln verwaltet das Betriebssystem?

Gr¨oße Hauptspeicher / Gr¨oße Kachel: 219/210= 512 Kacheln

(3)

1.2 (4 Punkte)

Im Weiteren soll eine virtuelle Adresse durch drei Dezimalzahlen f¨ur PT1, PT2 und Offset dargestellt werden. Beispiel: Die dezimalen Werte (11, 34, 213) stehen f¨ur die virtuelle Adresse 1011 100010 0011010101.

Die folgende Abbildung zeigt einen Ausschnitt aus der Seitentabelle erster Stufe und einige Ausschnitte aus Seitentabellen 2. Stufe. Achtung: In den Seitentabellen 2. Stufe stehen nur die signifikanten Bits, so dass der Offset lediglich angeh¨angt werden muss!

1 2 3 4 0

10 11

:

:

:

:

:

PT2 PT1

3906 6002 1780 7350 4398

1144 8728

1144

3906

978 1780 36 242

175

571 802 46 243

51 607

53 331 1

2 3 0

1 2 3

45 0

1 2 3 4 0 Anfangsadresse

478 200 747 46

47 46 2901 :

46 519

Die physische Adresse soll alseine Dezimalzahl dargestellt werden.

Erg¨anzen Sie die fehlenden Werte in der Tabelle:

virt. Adresse phys. Adresse

0 2 273 47 377

10 3 881 2 46 342

54 280 765 051

virt. Adresse phys. Adresse

0 2 273 47 377

10 3 881 180 081

2 46 342 205 142

2 2 8 54 280

2 47 123 765 051

1.3 (2 Punkte)

Zwei Prozesse teilen sich eine Seite Hauptspeicher (Shared Memory). Jeder Prozess gibt die Anfangsadresse des gemeinsamen Bereichs auf dem Bildschirm aus.

M¨ussen die beiden Adressen identisch sein, wenn ja, warum?

nein

K¨onnen die beiden Adressen identisch sein, wenn nein, warum nicht?

ja

(4)

1.4 (3 Punkte)

Prozessoren f¨ur Computersysteme besitzen i. Allg. eine Memory Management Unit (MMU).

Diese enth¨alt i. Allg. einen Translation Lookaside Buffer (TLB).

Welche Aufgabe hat der TLB?

Er soll zu einer virtuellen Adresse die entsprechende physische Adresse liefern.

Manche TLBs speichern zu jeder Adresse die Process Identification (PID) in ihrem internen Speicher ab, andere nicht.

Welche Vorteil bringt es, wenn der TLB die PID jeweils mit abspeichert?

Der TLB kann gleichzeitig Eintr¨age von unterschiedlichen Prozessen enthalten. Er muss daher bei einem Prozesswechsel nicht vollst¨andig geleert werden.

Ist es sinnvoll, bei Programmen mit mehreren Threads auch die Thread-ID im TLB ab- zulegen (Begr¨undung!)?

Dies ist nicht sinnvoll, da die verschiedenen Threads einen gemeinsamen Adressraum ver- wenden. D. h. die Umrechnung l¨auft f¨ur alle Threads des Prozess gleich.

(5)

Aufgabe 2 Ersetzungsstrategien (7 Punkte)

Das Betriebssystem eines Rechners verwaltet einen Hauptspeicher mit 5 Kacheln. Das Betriebssystem verwendet den Clock-Algorithmus. Auf dem System laufen Prozesse mit insgesamt 10 Seiten. Die Seiten der Prozesse werden gem¨aß der ersten Zeile der folgenden Tabellen referenziert. Wird eine Seite referenziert, so soll die Wirkung in der zugeh¨origen Spalte dargestellt werden. Bsp.: In der Spalte, in der die Seite 0 referenziert wird, ist dargestellt, dass die Seite 0 in den Hauptspeicher eingelagert wurde. Zahl in Klammern gibt den Wert des R-Bits an, der * Bezeichnet den Zeiger des Clock-Algorithmus.

SeitenNr. 0 1 3 2 5 1 6 3 1 4 7

K1 0(1) 0(1) 0(1) 0(1) 0(1)* 0(1)* 6(1) 6(1) 6(1) 6(1) 6(1)*

K2 – * 1(1) 1(1) 1(1) 1(1) 1(1) 1(0)* 1(0)* 1(1)* 1(0) 1(0)

K3 – – * 3(1) 3(1) 3(1) 3(1) 3(0) 3(1) 3(1) 3(0) 3(0)

K4 – – – * 2(1) 2(1) 2(1) 2(0) 2(0) 2(0) 4(1) 4(1)

K5 – – – – * 5(1) 5(1) 5(0) 5(0) 5(0) 5(0)* 7(1)

Spalte 3, 2, 5 insges. 1 Punkt, jede weitere Spalte ein Punkt.

(6)

Aufgabe 3 Synchronisation

Das folgende Petri-Netze zeigt die Synchronisation von 3 ProzessenP AC,P BD,P E.

Es handelt sich um ein Bedingungs-Ereignis-Netz. Die TransitionenA und C geh¨oren zu Prozess P AC, die Transitionen B und D geh¨oren zu Prozess P BD, die Transition E geh¨ort zu ProzessP E.

B

C A

D S2 S1

S3 S4

E

3.1 (2 Punkte)

Welche Stellen m¨ussen Sie als Semaphor realisieren, um die drei Prozesse gem¨aß dem obigen Petri-Netz zu synchronisieren?

S1, S2, S3, S4

3.2 (4 Punkte)

Geben Sie den Quell-Code f¨ur die ProzesseP AC,P BD und P E an. Sie k¨onnen dazu PseudoPascal verwenden (s. Skript von Frau Keller) oder (Pseudo)Java.

P r o z e s s P AC{

while(true){

S1 . down ( ) ; S2 . down ( ) ; A ( ) ;

S3 . up ( ) ; S3 . down ( ) ; S4 . up ( ) ; C ( ) ; S1 . up ( ) ; }

}

P r o z e s s P BD{

while(true){ S2 . down ( ) ; B ( ) :

S4 . up ( ) ; S4 . down ( ) ; D ( ) ;

S2 . up ( ) ; }

}

(7)

P r o z e s s P D{

while(true){

S3 . down ( ) ; S4 . down ( ) ; E ( ) ;

S1 . up ( ) ; }

}

3.3 (3 Punkte)

Zeichnen Sie den Ereignisgrafen des Petri-Netzes. Sie k¨onnen die Vorlage unten verwenden oder eine eigene Skizze anfertigen. Geben Sie zu jedem ¨Ubergang die Transition, die ihn ausl¨oste, an.

A C

D B

D B E

C

(8)

Aufgabe 4 Scheduling (4 Punkte)

Ein Betriebssystem bearbeitet f¨unf Prozesse. Das System verwendet Scheduling gem¨aß

“shortest remaining time“ (auch “least remaining time“ genannt). Wenn zwei Prozesse die gleicher Rangstufe besizen, darf der Prozess rechnen, der zuerst eingeplant wurde. Der Scheduler wird immer dann aktiv, wenn ein Prozess gestartet oder beendet wird.

ProzessNr. Startzeit Dauer

1 0 10

2 5 6

3 7 4

4 10 3

5 14 6

Tragen Sie die Wartezeiten und die Laufzeiten der Prozesse in das Diagramm ein. Ver- wenden Sie f¨ur Wartezeiten einen Strich: — und f¨ur Laufzeiten einen Balken: oder verwenden Sie unterschiedliche Farben.

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28

P1 P2 P3 P4 P5

t 30

(9)

Aufgabe 5 FAT Datei System

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Name Attribute Block Name Attribute Block

Eintrag für eine Datei

: 9

10 . . . EOF

abc.log rw-rw---

7 : : Verzeichnis FAT

4 14

16 8 . . . EOF

15

48 6 5 13

. . . EOF 58

Abbildung 1: FAT und Verzeichniss Ein Dateisystem wird per File Allocation Table (FAT)

verwaltet. Ein Block enth¨alt 2 KB, ein Zeiger auf einen Block enth¨alt 4 Byte. Verzeichnisse sind normale Da- teien, die zu jeder verwalteten Datei einen Eintrag ent- halten (s. Abb. 1). Ein Eintrag besteht aus dem Na- men, den Attributen und einem Verweis auf den ersten Block der Datei. Die L¨ange eines Eintrags betr¨agt 128 Byte. Ein neuer Eintrag wird stets an das Ende der Verzeichniss-Datei geschrieben.

Ein Programm m¨ochte die DateiD:\Tmp\abc.logein- lesen. Die Blockadresse des VerzeichnisD:\Tmpist 3. In diesem Verzeichnis waren bereits 18 Dateien enthalten, als die Dateiabc.logangelegt wurde. Nehmen Sie an, die unten abgebildete FAT und das Verzeichnis D:ist bereits in den Hauptspeicher geladen.

5.1 (3 Punkte)

Welche Plattenbl¨ocke muss das Programm einlesen, um die Datei zu lesen?

Bl¨ocke 3, 9, (10) f¨ur das Verzeichnis und 7, 4, 14, 16, 8 f¨ur die Datei.

5.2 (1 Punkte)

Wie groß kann die Platte bzw. Partition f¨urD: maximal sein?

Blockadress: 4 Byte = 32 Bit. 232 Bl¨ocke * 2 KB pro Block = 243 = 8 TB

5.3 (2 Punkte)

Wie groß ist die FAT, wenn eine Partition mit 2 GB verwaltet werden soll.

2GB / 2 KB pro Block = 220 Bl¨ocke. 220 * 4 Byte pro Block = 4 MB

(10)

Aufgabe 6 Datei System mit I-Nodes

Ein Dateisystem verwendet I-Nodes f¨ur die Verwaltung von Dateien. F¨ur die Freispeicher- verwaltung von I-Nodes und Bl¨ocken verwendet das System je eine Bitmap.

Ein I-Node des Systems besitzt folgendes Format:

Diverse Informationen zur Datei Zeiger auf Daten-Block

Zeiger auf einfach indirekten Block Zeiger auf zweifach indirekten Block 1

2 3 4 5 6 7 8

I-Node

Die Daten sind also ¨uber einen direkten Block, drei einfach indirekte Bl¨ocke und einen zweifach indirekten Block erreichbar. Ein Block enth¨alt 2 KB, ein Zeiger auf einen Block enth¨alt 3 Byte. I-Nodes enthalten nie selbst Daten einer Datei.

6.1 (3 Punkte)

Wie groß kann eine Datei in diesem Dateisystem maximal sein? Bitte geben Sie alle Re- chenschritte an.

2 KB pro Block/ 3 Byte pro Zeiger = 682 Zeiger pro Block.

Anzahl Bl¨ocke: 1 + 3∗682 + 6822 = 467171 Bl¨ocke = 956766208 Byte (ca. 912,44 MB)

6.2 (2 Punkte)

Wie groß kann das Dateisystem maximal sein (Begr¨undung)?

3 Byte pro ZeigerEs k¨onnen max. 224 Bl¨ocke adressiert werden.

224 Bl¨ocke*2 KB/Block = 235Byte (32 GB) 6.3 (3 Punkte)

Wieviel Bl¨ocke belegt eine Datei, die 6 MB Daten enth¨alt. Ber¨ucksichtigen Sie nicht den Platz, der im Datei-Verzeichnis (Directory) belegt wird und ebenfallsnichtden Platz, der durch den I-Node belegt wird.

Dateigr¨oße/Blockgr¨oße = 3072 Bl¨ocke. 1 direkter Block; Rest 3071. Drei einfach indirekt adressierte Bl¨ocke = 2046 Datenbl¨ocke; Rest 1025 Bl¨ocke. Ein zweifach indirekter Block und zwei einfach indirekte Bl¨ocke: 682 Bl¨ocke und 343 Bl¨ocke.

3078: Es sind zus¨atzlich zu den 3072 Bl¨ocke noch 6 Bl¨ocke belegt (5 einfach und 1 zweifach indirekter Block).

(11)

I-Nodes :

Blöcke 57

58 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

41

38

39

40

41

42

43

:

: 38

43

notes.dat : 59 1

2 3 4 5 6 7 8 59

42 44

:

Installation ...

... Backup

44 39

: 57 news.txt

/opt/etc/notes.dat

45 45

: Verzeichnisse 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¨ange eines Eintrags betr¨agt 128 Byte. Ein neuer Eintrag wird stets an das Ende der Verzeichniss-Datei geschrie- ben.

Die folgende Abbildung zeigt einen Ausschnitt aus der Reihe der I-Nodes (I-Node 57 58 und 59) und einen Ausschnitt der Reihe der Bl¨ocke des Datei- systems (Block 38 - 44).

Das Verzeichnis/opt/etcwird von I-Node 58 ver- waltet. Bevor die Dateinotes.datangelegt wur- de enthielt das Verzeichnis /opt/etc bereits 37 Dateien. Die Datei ist 3 KB groß, sie beginnt mit

“Installation . . .“ und endet mit “ . . . Backup“.

6.4 (3 Punkte)

Erg¨anzen Sie die Skizze an den mit←markierten Stellen.

6.5 (3 Punkte)

Ein symbolischer Link wird innerhalb des Ver- zeichnis angelegt angelegt, so dass die Datei no- tes.datauch ¨uber den Namennews.txtzugreif- bar ist.

Tragen Sie die ¨Anderungen in die Skizze ein. Ver- wenden Sie nur I-Nodes und Bl¨ocke, die bereits in der Skizze vorhanden sind.

(12)

6.6 (2 Punkte)

Wenn ein Prozess eine Datei ¨offnet, werden die Daten des I-Nodes in eine Tabelle im Hauptspeicher geladen. Ein Kommilitone, der zusammen mit Ihnen ein neues Dateisystem entwirft, macht folgenden Vorschlag: Die Tabelle im Hauptspeicher kann verg¨oßert werden, da Hauptspeicher immer billiger wird. Dann muss beim ¨Offnen einer Datei nicht in der Tabelle gesucht werden, ob der I-Node schon vorhanden ist; es wird einfach ein Eintrag mit dem I-Node in der Tabelle angelegt, egal ob dieser I-Node schon in der Tabelle enthalten ist oder nicht.

Wie stehen Sie zu diesem Vorschlag?

Duplikate von I-Nodes in der Tabelle k¨onnen zu Inkonsistenzen f¨uhren, wenn die Gr¨oße der Datei oder die Datei-Attribute ge¨andert werden. Wenn z. B. ein Prozess die Datei ¨uber den einen I-Node so ver¨andert, dass ein Zeiger im I-Node ver¨andert wird. Ein Prozess, der

¨uber eine Kopie des I-Nodes zugreift, w¨urde noch den alten Zeiger-Wert verwenden.

(13)

Aufgabe 7 Ein-Ausgabe

Sie brennen ein Dateisystem auf CD. Anschließend schauen Sie sich stichprobenartig einige Dateien auf der CD an.

7.1 (4 Punkte)

Ist der CD-Brenner eine blockorientiertes oder ein zeichenorientiertes Ger¨at (Begr¨undung)?

Beim Brennen arbeitet der CD-Brenner zeichenorientiert. Alle Daten m¨ussen in einem Strom geschrieben werden, der Brenner kann nicht vor- oder zur¨uckspringen.

Beim Lesen arbeitet der CD-Brenner blockorientiert. Das Datei-System 9660 erlaubt es, auf einzelne Bl¨ocke wahlfrei zuzugreifen.

7.2 (2 Punkte)

Sie ¨uberarbeiten eine Treiber f¨ur ein CD-Laufwerk. Immer, wenn der Treiber einen Da- tensatz anfordert, f¨angt er an, regelm¨aßig abzufragen, ob die Daten schon im Controller sind. Kennen Sie eine geschicktere Methode, um die Eingabe abzuwickeln (stichwortartige Beschreibung)?

Interruptgesteuert: Der Treiber gibt einen Leseauftrag an den Controller des CD-Laufwerks.

Der Controller erzeugt einen Interrupt, wenn die Daten zur Verf¨ugung stehen. Die Inter- ruptroutine ¨ubergibt die Daten an das aufrufende Programm.

7.3 (2 Punkte)

Was versteht man unter Memory-Mapped I/O? Was ist die Alternative dazu?

Memory-Mapped: Ein-/Ausgabe-Ger¨ate werden ¨uber spezielle Adressen angesprochen.

Alternativ dazu k¨onnen Ein-/Ausgabe-Ger¨ate auch ¨uber spezielle Assembler-Befehle an- gesprochen werden.

Referenzen

ÄHNLICHE DOKUMENTE