文件頁
內存回收,也就是系統釋放掉可以回收的內存,比如緩存和緩沖區,就屬於可回收內存。它們在內存管理中,通常被叫做文件頁(File-backed Page)。大部分文件頁,都可以直接回收,以后有需要時,再從磁盤重新讀取就可以了。
臟頁
那些被應用程序修改過,並且暫時還沒寫入磁盤的數據(也就是臟頁),就得先寫入磁盤,然后才能進行內存釋放。
這些臟頁,一般可以通過兩種方式寫入磁盤。可以在應用程序中,通過系統調用 fsync ,把臟頁同步到磁盤中;也可以交給系統,由內核線程 pdflush 負責這些臟頁的刷新。
文件映射頁
除了緩存和緩沖區,通過內存映射獲取的文件映射頁,也是一種常見的文件頁。它也可以被釋放掉,下次再訪問的時候,從文件重新讀取。
匿名頁
應用程序動態分配的堆內存,也就是在內存管理中說到的匿名頁(Anonymous Page),它們很可能還要再次被訪問啊,不能直接回收,這些內存自然不能直接釋放。但是,如果這些內存在分配后很少被訪問,似乎也是一種資源浪費。
Linux Swap
Linux的 Swap 機制把這些不常訪問的內存先寫到磁盤中,然后釋放這些內存,給其他更需要的進程使用。再次訪問這些內存時,重新從磁盤讀入內存就可以了。
