Autor Thema: Fragen zu paging  (Gelesen 4419 mal)

RedEagle

  • Beiträge: 244
    • Profil anzeigen
    • RedEagle-OperatingSystem - Projekt
Gespeichert
« am: 18. August 2007, 12:15 »
Leider finde ich keine gescheitet tutorials. Ich habe mir zwar anhand von codes schon etwas aneignen können, aber einige Fragen gibt es noch:

1. Es gibt 1 PageDirectore, mit 1024 Pagetables. Ist das richtig (habe nehmlich auch schon 1PageDirectore mit nur einer Pagetable gesehen, dann hätte man aber nur 4MB...)??

2. Jeder Task verwendet dieses PageDirectore. Es wird nicht für jeden task ein eigenes Angelegt!?

3. Was sagt das present-bit aus?? Dass der speicher gemappt wurde, oder dass er generell an einen Prozess vergeben wurde (also aktiv und somit im Prozess vorhanden ist).

4. Wie erkenne ich, ob ein pageframe vergeben oder frei ist? (fals oben gemappter speicher gemeint ist)

Das wars erstmal... evtl kommt stäter noch was ;)

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 18. August 2007, 12:34 »
Zu erstens Ja, aber es müssen nicht alle Einträge ausgefüllt sein. Du musst nur soviel wie du, der Kernel oder der Task brauchst eintragen. Für alle Einträge die nichts bedeuten musst das Present-Bit löschen, denn theoretisch kann ja jeder Eintrag etwas bedeuten (z.B. eine page bei 0x0000, wenn man einfach nur 0 einträgt).

Zu 2. Nein...Es ist absolut nicht festgelegt wie du das machen musst...Ich habe zum Beispiel für jeden Tag ein eigenes Directory...Natürlich gehen die ständigen CR3-Wechsel zur Lasten der Zeit, aber ich finds praktisch, denn so kann kein Task einem anderen irgendwie schaden oder ausspionieren.

Bei 3 + 4 blick ich nicht ganz durch...


Gruss
Noooooooooooos

RedEagle

  • Beiträge: 244
    • Profil anzeigen
    • RedEagle-OperatingSystem - Projekt
Gespeichert
« Antwort #2 am: 18. August 2007, 12:45 »
Vielen Dank!
Frage 3+4 wurde durch 1 beantwortet ;)

Backett

  • Beiträge: 2
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 15. October 2007, 20:51 »
huhu redeagle,

ich habe paging bereits mit meinem freund für unser os gemacht, und wir stützen uns hauptsächlich auf ein tut von der fh-zwickau. und paging funzt bei uns..^^

kannst es ja auch mal versuchen

p.s.: die erklären auch andere dinge, wie pmode und multitasking unter intel.

http://www.fh-zwickau.de/doc/prmo/pmtutor/text/

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 15. October 2007, 22:31 »
Ja, das Tut ist im großen und ganzen ziemlich gut. Aber wenn du dich genau dran hältst, setzt du das U/S-Bit gerade falschrum. ;)
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 15. October 2007, 22:41 »
Da gibts noch etwa 3 andere Tuts die das merkwürdigerweise auch falsch erklären...Also beim U/S Bit immer in den offiziellen Manuals schauen...

Gruss
Noooooooooooos

Backett

  • Beiträge: 2
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 15. October 2007, 23:56 »
ja, ausser dem u/s bit

das is mir aufgefallen, aber habe bei intel nachgeschaut..da wars besser erklärt, aber halt alles auf englisch und viel technischer schnik schnak dabei...

 

Einloggen