Closed fabwu closed 9 years ago
Habe mit Herrn Joho über das in der Pause gesprochen, weil ich es da auch nicht ganz verstanden habe. Die Vierecke sind die Adressen der Daten, also z.B. auf einem Block-Device der 4. Block wird durch das Viereck '4' repräsentiert. Diese Blöcke sind jetzt in einer simplen Linked List zusammengehängt (wie annodazumals in PRG2). Wenn jetzt ein Block gesucht wird, wird einfach die ganze Liste durchsucht. Da das etwas ineffizient ist, hat man sich gedacht - hey - warum machen wir nicht 4 Listen und teilen die Blöcke darauf auf? Also hat man ein Modulo gemacht (kennt man aus DMATH, 4 mod 3 = 1, 8 mod 3 = 2, usw.) und dann so die einzelnen Linkedlists aufgeteilt. So muss man nur noch einen Viertel durchsuchen, bis man den gewünschten Block hat.
Natürlich wäre dann ein Baum noch viel besser, aber auch Herr Joho wusste nicht, ob das inzwishcen so implementiert ist und wieso nicht.
Aha ok das macht sinn (28 mod 4 = 0 usw.)!
Aber sind das die Adressen vom Cache im Hauptspeicher oder die Adressen der gepufferten Blöcke von der Hardisk?
Adressen sind von Blöcke von Harddisk. Wenn diese nicht mehr vom Kernel benötigt werden, kommen sie auf die free list und können wieder überschrieben werden.
Verstehe ich das richtig dass die Vierecke mit den Zahlen (28,4 usw.) die gebufferten Daten sind und die Hashqueue (blkmod0 mod 4) ist eine Kombination aus Device Number und Block Number um die Daten zu finden?
Oder sind die Vierecke die Speicherplätze welche vom Kernel beim Start alloziert wurden?