👉 Память в системе разделяется на RAM, zRAM и Storage(постоянная)
👉 RAM разделяется на Pages по 4KB. Каждый Page может быть used или unused.
used в свою очередь делится на Private, если им владеет только 1 процесс или Shared в ином случае
Так же used Page может быть Clean, если это копия данных из Storage и Dirty если это модифицированные данные
Само управление происходит с помощью двух механизмов:
👉
kswapd (kernel swap daemon) Удаляет Clean Pages и восстанавливает копию из хранилища. Сжимает и перемещает Dirty Pages в zRAM. Активируется при нехватки памяти и возвращает все как было, когда процесс, владеющей Page снова оживает.👉
LMK (Low-memory killer) Удаляет процессы в порядке с приложенной таблицы, тем самым освобождая Pages ими владеющие.Чуть подробнее про LMK внутри статьи или в этом видео
