Paging - Realisierung
Verfasst: Do Okt 02, 2008 9:55 pm
Tag!
Ich überlege gerade (bzw den Tag über schon und gestern^^), wie ich Paging besser in den Kernel einbaue.
Bis jetzt ist es mehr oder weniger nur implementiert, damit es drinn ist und man sieht, dass es funktioniert.
Die Problematik besteht darin, dass ich nicht mehr auf die PageDirectories und PageTables zugreifen kann, sobald ich Paging aktiviere.
Zu diesem Problem kenne ich zwei verschiedene Lösungen:
1. Ich mappe das Pagedirectory selbst im Pagedirectory wie eine Pagetable (ich hoffe das versteht irgendwer^^).
Dadurch habe ich Zugriff auf das Directory und damit auch auf die einzelnen Pages.
Vorteil: Relativ einfach zu implementieren und ich versteh's ein bisschen:)
Nachteil: Es können dadurch 256 MB weniger benutzt werden (des virtuellen Speichers!! nicht physikalischer!!).
2. Ich speichere mir sowohl physikalische als auch virtuelle Adresse in einer Datenstruktur ab und...ja..kp.
Vorteil: Es heißt, das man dadurch nur 4 KB mehr braucht.
Nachteil: Ich weiß nicht wirklich wie's funktioniert.
Woher ich das 2. Konzept habe? Aus einem Tutorial, das ich sehr gut finde:
http://www.jamesmolloy.co.uk/tutorial_h ... aging.html
Ich habe sogar Beispielcode. Aber iwie versteh ich es nicht wirklich.
Mir fehlt auch noch ein grundsätzlicher Aufbau, wie die Zusammenhänge funktionieren sollen.
Das werde ich versuchen in der nächsten Zeit mal auf die Reihe zu bringen.
(Wenn jemand weiß, wie die 2. Methode funktioniert oder wenn jemand eine andere Idee hat, dann her damit )
MfG
Daniel
Ich überlege gerade (bzw den Tag über schon und gestern^^), wie ich Paging besser in den Kernel einbaue.
Bis jetzt ist es mehr oder weniger nur implementiert, damit es drinn ist und man sieht, dass es funktioniert.
Die Problematik besteht darin, dass ich nicht mehr auf die PageDirectories und PageTables zugreifen kann, sobald ich Paging aktiviere.
Zu diesem Problem kenne ich zwei verschiedene Lösungen:
1. Ich mappe das Pagedirectory selbst im Pagedirectory wie eine Pagetable (ich hoffe das versteht irgendwer^^).
Dadurch habe ich Zugriff auf das Directory und damit auch auf die einzelnen Pages.
Vorteil: Relativ einfach zu implementieren und ich versteh's ein bisschen:)
Nachteil: Es können dadurch 256 MB weniger benutzt werden (des virtuellen Speichers!! nicht physikalischer!!).
2. Ich speichere mir sowohl physikalische als auch virtuelle Adresse in einer Datenstruktur ab und...ja..kp.
Vorteil: Es heißt, das man dadurch nur 4 KB mehr braucht.
Nachteil: Ich weiß nicht wirklich wie's funktioniert.
Woher ich das 2. Konzept habe? Aus einem Tutorial, das ich sehr gut finde:
http://www.jamesmolloy.co.uk/tutorial_h ... aging.html
Ich habe sogar Beispielcode. Aber iwie versteh ich es nicht wirklich.
Mir fehlt auch noch ein grundsätzlicher Aufbau, wie die Zusammenhänge funktionieren sollen.
Das werde ich versuchen in der nächsten Zeit mal auf die Reihe zu bringen.
(Wenn jemand weiß, wie die 2. Methode funktioniert oder wenn jemand eine andere Idee hat, dann her damit )
MfG
Daniel