2
« am: 26. December 2004, 18:45 »
[edit]
ok, mein paging läuft nun, denke ich, soweit.
Ich kann, so wies aussioeht, auch wärend der lafuzeit, mittels einer Funktion, neue Page_Directorys erstellen.
Nun hab ich aber noch ein Frage.
Wie kann ich ein solches Page_Diurectory wieder löschen?
hab das mit dem erstellen so:
int PageIndex=0;
void Insert_Page-Directory(void)
{
unsigned int i;
// 4MB mappen
PageIndex++;
for(i=0; i<1024; i++)
{
page_table[i] = address | 3; // Superuser-level, read/write, present
address = address + 4096; // 4096 = 4kb
}
page_directory[PageIndex] = page_table; // Superuser-level, read/write, present
page_directory[PageIndex] = page_directory[PageIndex] | 3;
printf("New page created.\n");
}
PageIndex habe ich auf 0, bzw im code PageIndex++, da ich in der Pageing_Init() funktion, Page_Directory[0] an sich schon erstelle.
Aber wie schon gesagt, wie löscht man so ein Page_Directory? ich meine, ich kann beim löschen int PageIndex-- rechnen, dann habe ich aber trotzdem die erstellte Page_Directory.