Re: Hur gör operativsystem för att övervaka minnesaccess?
Postat: 2 april 2019, 10:02:01
Ni pratar om olika saker. Fragmentering på OS-nivå vs applikationsnivå.
Det är en kostnadsfråga. Ett OS skulle teoretiskt kunna hålla fysiskt minne permanent defragmenterat via MMUn, om man har oändligt med minne.
48 bitars adressrymd. 4kB pages för maximal flexibilitet. \(\frac{2^{48}}{2^{12}}=2^{36}\) antal pages.
Varje page tar 4 byte minne, så ca 274 GB minne går åt enbart till minneshantering. Per applikation. En normal dator har väl ca 50-100 program körandes samtidigt. Det går ganska fort överstyr.
Därför använder man vanligen större minnes-pages vilket gör att blocken som måste vara sammanhängande också blir större.
Det är en kostnadsfråga. Ett OS skulle teoretiskt kunna hålla fysiskt minne permanent defragmenterat via MMUn, om man har oändligt med minne.
48 bitars adressrymd. 4kB pages för maximal flexibilitet. \(\frac{2^{48}}{2^{12}}=2^{36}\) antal pages.
Varje page tar 4 byte minne, så ca 274 GB minne går åt enbart till minneshantering. Per applikation. En normal dator har väl ca 50-100 program körandes samtidigt. Det går ganska fort överstyr.
Därför använder man vanligen större minnes-pages vilket gör att blocken som måste vara sammanhängande också blir större.