Speicherhierarchie < Technische Inform. < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
hi ich wollte mir den speicheraufbau und die speicherverwaltung mal vor augen führen.
CPU <-Worte-> Cache <-Blöcke-> Hauptspeicher <-Pages-> Fesltplatte
so wie ich es verstehe ist die definition wie folgt:
- eine page besteht aus einem oder mehreren blöcken
- ein block besteht aus einem bzw. mehreren worten
- ein wort besteht aus mehrere bits
zwischen cache und hauptspeicher werden blöcke ausgetausch.
ein cache besteht aus mehreren frames. in einen frame passt genau ein block rein (je nach blockgröße befindet sich dann in einem frame ein oder mehrere worte bzw der frame ist leer).
zwischen hauptspeicher und festplatte werden pages ausgetauscht.
nun meine frage ist mein verständnis einer page richtig?
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 10:45 So 31.01.2010 | Autor: | Infinit |
Hallo BlubbBlubb,
woe groß die einzelnen Datenblöcke sind, die zwischen CPU und Platte hin- und hergeschoben werden, das ist nicht so furchtbar relevant und es ändert sich auch nach Stand der Technik. Die Idee des Paging sollte man jedoch verstanden haben. Für die Abarbeitung eines Programms möchte man vermeiden, dass die CPU auf Programmteile zugreifen muss, die kreuz und quer auf der Platte liegen (Stichwort: Fragmentierung). Das verlängert die Zugriffszeit und verkürzt durch viele Lese- und Schreibvorgänge auch die Lebensdauer der Platte. Das Paging im Cache sorgt nun dafür, dass die notwendigen Programmschritte und die dazugehörigen Daten schön hintereinander weg von der CPU aus dem Cache aufgerufen und verarbeitet werden können. Da die Verbindung zwischen Cache und CPU meist viel schneller ist als das Arbeiten auf der Festplatte, kann man damit auch eine schnellere Programmabarbeitung erreichen.
Viele Grüße,
Infinit
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:48 Di 02.02.2010 | Autor: | bazzzty |
> Die Idee des Paging sollte man jedoch verstanden
> haben. Für die Abarbeitung eines Programms möchte man
> vermeiden, dass die CPU auf Programmteile zugreifen muss,
> die kreuz und quer auf der Platte liegen (Stichwort:
> Fragmentierung).
Fragmentierung ist schon ne massiv andere Baustelle. Paging ist eine Methode, um virtuellen Speicher zu verwalten; das Betriebssystem kann dem Programm einen deutlich größeren Arbeitsspeicher vorgaukeln als tatsächlich vorhanden, und das Programm kann diesen durchgehend (linear) adressieren. Das Betriebssystem kümmert sich dann darum, welche Pages (Kacheln) des virtuellen Speichers tatsächlich im Arbeitsspeicher liegen, und welche auf der Platte ausgelagert sind (swapping).
Tatsächlich passiert das heutzutage quasi nicht mehr. Die Zeitdimensionen, die das Laden von Kacheln in den Speicher kosten, sind einfach zu enorm.
> Das verlängert die Zugriffszeit und
> verkürzt durch viele Lese- und Schreibvorgänge auch die
> Lebensdauer der Platte.
Niemand hatte je vor, Programme durch die CPU von der Platte zu laden. Aus Sicht der CPU liegen die immer im virtuellen Speicher. Fraglich ist nur, welche Teile davon tatsächlich im vorhandenen Arbeitsspeicher liegen und welche Teile geswappt sind. Fragmentierung hat damit (bis auf das erstmalige Laden eines Programms) nix zu tun.
> Das Paging im Cache sorgt nun
> dafür, dass die notwendigen Programmschritte und die
> dazugehörigen Daten schön hintereinander weg von der CPU
> aus dem Cache aufgerufen und verarbeitet werden können.
> Da
> die Verbindung zwischen Cache und CPU meist viel schneller
> ist als das Arbeiten auf der Festplatte, kann man damit
> auch eine schnellere Programmabarbeitung erreichen.
Paging findet zwischen Arbeitsspeicher und Festplatte, nicht zwischen Cache und Festplatte statt. Außerdem dient das Paging nicht der Beschleunigung von Zugriffen auf irgendwas, sondern der virtuellen Vergrößerung des Arbeitsspeichers.
Was man verstanden haben sollte, wenn man etwas über Paging schreibt: Ein Programm greift weder gewollt auf den Cache noch auf externe Pages zu. Beides passiert, wenn ein Zugriff auf den Arbeitsspeicher erfolgt; in den Cache werden Daten geladen, um Zugriffe auf den Arbeitsspeicher zu beschleunigen, Paging dient dazu, den Arbeitsspeicher virtuell zu vergrößern.
|
|
|
|