Что такое jetsam? Как система решает, какое приложение убить?
Что это
Jetsam — подсистема ядра XNU, которая при нехватке памяти принудительно завершает процессы (аналог Linux OOM-killer, но с более жёсткими политиками, потому что на iOS нет swap). Срабатывает в двух случаях:
- системное давление: свободной памяти мало даже после сжатия и сброса clean-страниц;
- лимит процесса: footprint приложения превысил его персональный лимит (у iOS-приложений на современных устройствах это порядка нескольких ГБ для foreground, сотни МБ для расширений и фона; точное значение —
os_proc_available_memory()).
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep