You are not logged in.

Nagezahn

Junior Schreiberling

  • "Nagezahn" is male
  • "Nagezahn" started this thread

Posts: 198

Date of registration: Feb 9th 2010

Location: Nordstadt

1

Saturday, September 3rd 2011, 7:40pm

Betriebssysteme - I-Nodes und alte Klausur

Hallo zusammen,

ich habe mir gerade die Betriebssysteme-Klausur von 2009 angeschaut. Bei Aufgabe 4c) soll man die minimale Blockgröße einer 1TB-Platte berechnen, die mit I-Nodes verwaltet wird. In der Musterlösung wird vorgerechnet, daß man mindestens 16KB-Blöcke braucht. Die Sache ist die: man hat dann 2^26 Blöcke, wie soll man die denn mit 16-Bit-I-Nodes adressieren? Mein Ansatz war einfach, 2^40 (1 TB) durch 2^16 (Anzahl adressierbarer Blöcke) zu teilen. Das bringt mich dann auf 16MB-Blöcke. Übersehe ich da was?

nope

Praktikant

Posts: 31

Date of registration: Aug 27th 2010

2

Monday, September 5th 2011, 7:25pm

Du hast 16bit für die I-Node Adressen. Das sind 2Byte. Sei die Blockgröße X Byte
X/2 ist die Anzahl der Adressen in einem Block
Da du 2-fach indirekte INodes verwendest, gibt es genau (X/2)^2 mögliche Adressen(2-Tupel dessen Komponenten durch die möglichen Adressen gegeben sind).
Somit sind (X/2)^2*X[Byte] Speicher adressierbar.
(X/2)^2*X[Byte] = 1TB
<=> X^3 / 4 = 2^40
<=> X = 2^14 = 16k

also 16kB.

(Hier sind die binären SI-Prefixe gemeint)

Nagezahn

Junior Schreiberling

  • "Nagezahn" is male
  • "Nagezahn" started this thread

Posts: 198

Date of registration: Feb 9th 2010

Location: Nordstadt

3

Tuesday, September 6th 2011, 1:09pm

Den Rechenweg habe ich verstanden. Ich wollte auf folgendes hinaus:

Bei einer Blockgröße von 16 KB gibt es bei einer Plattengröße 2^26 verschiedene Blöcke. Wie soll man denn 2^26 Blöcke mit einem 16-Bit-I-Node adressieren?

Sebastian

Trainee

  • "Sebastian" is male

Posts: 101

Date of registration: Sep 21st 2007

Location: Hannover

4

Tuesday, September 6th 2011, 3:24pm

Du hast nicht nur "ein 16-Bit-Inode", sondern wie nope schon erwähnt hat 2-fach indirekte INodes. Google das am besten mal :-)
try {MessageBox.Show(message);} catch(Exception e) {MessageBox.Show(e.Message);}

nope

Praktikant

Posts: 31

Date of registration: Aug 27th 2010

5

Tuesday, September 6th 2011, 4:26pm

Der Denkfehler bei dir liegt wohl darin, dass du denkst, dass die 16bit Adressen den Hauptspeicher direkt adressieren, was nicht der Fall ist. Der Verwaltungsblock, welcher auf die 1-fach Verwaltungsblöcke zeigt, ist gleichzeitig als Offset zu interpretieren. Ein Beispiel:
Wähle einen der 256 möglichen Adressen aus dem 2-fach indirekten Verwaltunsgblock - z.B. 107 (von 0-255)
Das heißt dein Offset beträgt schon mal 107*16MB
Dabei ergeben sich die 16MB so wie du sie berechnet hast.
Jetzt weisst du der gesuchte Speicherbereich liegt irgendwo zwischen 107*16MB und 108*16MB
Dieser Bereich ist also genau 16MB groß.
Im 1-fach indirekten VB hast du wieder 256 Adressen, welche diese 16MB in genau 64kB(=16MB/256 Adressen) Blöcke teilen.
Wählen wir jetzt im 1-fach indirekten VB die 53(wieder zwischen 0-255), dann startet der gesuchte Block bei
107*16MB + 53*64kB = 1715,3125MB

(x,y) => x*16MB + y*64kB

[edit]
Okay, so gesehen hast du für x und y 16bit-Adressen und brauchst x und y um einen Block eindeutig zu identifizieren, also effektiv eigentlich 32bit für eine Adresse.

This post has been edited 1 times, last edit by "nope" (Sep 6th 2011, 4:43pm)


Kater

Trainee

  • "Kater" is male

Posts: 93

Date of registration: Sep 29th 2009

6

Wednesday, September 7th 2011, 6:12pm

Beim lernen bin ich auf folgendes gestoßen
Aufgabe 4a vom Herbe 2008

Quoted

Die Dateien auf einer Festplatte werden mittels I-Nodes verwaltet. Es ist bekannt,
dass die Blockgröße der Platte 256 Byte und die Adresslänge 32 Bit ist.
Hinweis: Im I-Node sind 10 direkte Verweise auf Plattenblöcke enthalten. Diese sind in Teilaufgaben a) und b) zu berücksichtigen.
a) Zur Verwaltung einer Datei werden 6 Verwaltungsblöcke benötigt. Wie viel KB kann die Größe dieser Datei minimal und maximal betragen?


Lösung:

Quoted

In einem Block passen 256Byte / 4 Byte = 64 Adressen.
Datei benötigt 6 Verwaltungsblöcke:
I-Node 1 Verwaltungsblock.
1-fach indirekter Verweis 1 Verwaltungsblock.
2-fach indirekter Verweis 4 Verwaltungsblöcke.
Die minimale Dateigröße ergibt sich, wenn ein einziger Eintrag des letzten Verwaltungsblocks des 2-fach indirekten Verweises verwendet wird.
Dateigrößemin =(10+64+64+64+1)x256Byte=50,75KB
Die maximale Dateigröße ergibt sich, wenn alle Einträge des letzten Verwaltungsblocks des 2-fach indirekten Verweises verwendet werden.
Dateigröße max = (10 + 64 + 64 + 64 + 64) x 256 Byte = 66,5 KB


Ich frage mich jetzt warum Dateigrößemin =(10+64+64+64+1)x256Byte und nicht (10+64+64+64+64+1)x256Byte ist. Es sollen ja 6 Verwaltungsblöcke sein.
Bei der maximalen Dateigröße genauso.
Da bei der Klausur im Frühjahr 2010 es ähnlich ist, denke ich, dass es eher ein Denkfehler von mir ist.
Ich hoffe mir kann jemand auf die Sprünge helfen :D

ProNoob

Trainee

  • "ProNoob" is male

Posts: 72

Date of registration: Oct 1st 2010

Location: Hannover

7

Wednesday, September 7th 2011, 7:08pm

Wenn ich das richtig verstanden habe, dann liegt das daran, dass beim 2-fach indirekten ein Verwaltungsblock nur für die Adressierung der nachgeschalteten (in diesem Fall) 3 Verwaltungsblöcke draufgeht (siehe dazu das Diagramm von I-Nodes aus der 8. Übung). Seine Adressen verweisen also nicht auf Speicherblöcke, sondern nur auf weitere Verwaltungsblöcke - deswegen nur 3x64 statt 4x64.

This post has been edited 1 times, last edit by "ProNoob" (Sep 7th 2011, 7:08pm)


Kater

Trainee

  • "Kater" is male

Posts: 93

Date of registration: Sep 29th 2009

8

Wednesday, September 7th 2011, 7:26pm

Danke, so macht das Sinn. War also ein Denkfehler meinerseits :D