Lowlevel

Lowlevel => OS-Design => Thema gestartet von: Martin Erhardt am 18. February 2013, 20:09

Titel: PagingFlags
Beitrag von: Martin Erhardt 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"?
Titel: Re: PagingFlags
Beitrag von: OsDevNewbie 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.
Titel: Re: PagingFlags
Beitrag von: tiger717 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