madvise

Z Wikipedii, wolnej encyklopedii

madvise to wywołanie systemowe mające na celu poinformowanie systemu pamięci wirtualnej systemu operacyjnego o planowanym sposobie użycia danego obszaru pamięci (szczególnie pamięci mmapowanej lub dzielonej), tak żeby miał on możliwość użycia bardziej wydajnych algorytmów pamięci wirtualnej.

int madvise(void *start, size_t length, int advice);

Możliwe wartości advice:

  • MADV_NORMAL - typowe wzorce dostępu
  • MADV_RANDOM - dostęp losowy - read ahead niewskazany
  • MADV_SEQUENTIAL - dostęp sekwencyjny - znaczny read ahead wskazany, można zwolnić przeczytane strony niedługo potem
  • MADV_WILLNEED - prawdopodobnie będzie używana w najbliższej przyszłości - lepiej nie zwalniać cache tej pamięci
  • MADV_DONTNEED - prawdopodobnie nie będzie używana w najbliższej przyszłości - można zwolnić cache tej pamięci

Wywołanie pojawiło się po raz pierwszy w 4.4BSD.