Autor Thema: PagingFlags  (Gelesen 2513 mal)

Martin Erhardt

  • Beiträge: 165
    • Profil anzeigen
Gespeichert
« am: 18. February 2013, 20:09 »
Wenn Ich frischen Kernel Speicher mappe, dann nutze ich in Pgdirentr von Anfang an folgende Flags
FLG_IN_MEM | FLG_WRITECACHING | FLG_USED | FLG_WRITABLE
in pgtblentr
FLG_IN_MEM | FLG_WRITECACHING | FLG_USED | FLG_WRITABLE | FLG_WRITTEN
Man kann ja nicht feststellen wann bspw im Usermode auf eine Page zugegriffen wird, dh. behaupte ich von Anfang an sie sei Benutzt und beschrieben; damit die MMU da nicht noch nach einem nicht nachweißbaren Zugriff iwas optimiert.

Hat dieses flagset iwelche "Nebenwirkungen"?

OsDevNewbie

  • Beiträge: 282
    • Profil anzeigen
    • YourOS Kernel
Gespeichert
« Antwort #1 am: 19. February 2013, 00:55 »
Ich glaube diese Flags verwendet man vorallem für eventuelles Swapping. Aber so genau weiss ich das auch nicht.
Viele Grüsse
OsDevNewbie

Ein Computer ohne Betriebsystem ist nicht mehr wert als ein Haufen Schrott.
Ein Computer ist eine Maschine, die einem Lebewesen das kostbarste klaut, was sie selber nicht hat:
DIE ZEIT DES LEBENS

tiger717

  • Beiträge: 84
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 19. February 2013, 15:54 »
Ich hab zwar deine Frage nicht ganz verstanden, aber mit FLG_WRITTEN meinst du wohl das sog. Dirty-Flag?
Dieses wird (vollkommen unabhängig davon, ob du gerade im Kernel oder im Userspace bist) bei jedem Schreibzugriff gesetzt und danach nicht mehr angetastet, bis du es (manuell) wieder löscht.
Wird genutzt, um mittels spezieller Methoden festzustellen, wie "alt" eine Page ist und welche Pages zum sog. Working Set (der Grundspeicherbedarf einer Anwendung) gehören. (Damit man weiß, welche "alte" Page man auslagern kann und welche ungünstig ist.)
Für mehr Informationen: Andrew S. Tanenbaum, Modern Operating Systems

 

Einloggen