Autor Thema: Mapping verwalten  (Gelesen 6214 mal)

rizor

  • Beiträge: 521
    • Profil anzeigen
Gespeichert
« am: 26. January 2011, 10:07 »
Hi zusammen,

wie habt ihr euer Mapping verwaltet?
Damit ist nicht das normale malloc gemeint, sondern wenn ein Prozess bestimmte Speicherbereiche gemappt haben möchte.
Momentan mappt mein Kernel einfach so ohne zu prüfen, aber das ist ja sehr ungünstig.
Habt ihr da recht performante Ideen?

Gruß,
rizor
Programmiertechnik:
Vermeide in Assembler zu programmieren wann immer es geht.

RedEagle

  • Beiträge: 244
    • Profil anzeigen
    • RedEagle-OperatingSystem - Projekt
Gespeichert
« Antwort #1 am: 26. January 2011, 10:40 »
Ich weiß nicht genau ob es das ist, was du meinst, aber ich gebe den Prozessen die selben Pagetables wie dem Kernel. Natürlich nur im dem Bereich, in dem sich der Kernel ausbreiten darf. Wenn der Kernel dann Speicher anfordert, und die Pages in dessen Pagetables eingetragen werden, erscheinen sie automatisch auch in dem memspace der Prozesse.
Die Pagetables sind natürlich direkt alle reserviert worden und somit von Anfang an bekannt, sodass ich später nur noch die Pages eintragen muss, und nicht noch extra eine Page für die Table.

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #2 am: 26. January 2011, 11:04 »
Habt ihr da recht performante Ideen?
Irgendwas aus dem Artikel physische Speicherverwaltung mit dem es möglich ist zu überprüfen ob ein Speicherbereich frei ist. Auch würde ich nicht nur den RAM verwalten, sondern den gesamten Speicher, damit Prozesse auch den Speicher von PCI Geräten allozieren können. Das muss aber nicht in der gleichen Datenstruktur geschehen.
Das Mapping an sich würde ich aber einfach von den Pagetables verwalten lassen.
Falls die Frage eine ganz andere ist, dann spezifiziere bitte konkreter was das Problem ist, um welche Speicherbereiche es geht, welche Operationen du gerne unterstützen würdest, etc... Das sollte man immer machen wenn man eine Datenstruktur sucht.
« Letzte Änderung: 26. January 2011, 11:08 von bluecode »
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

 

Einloggen