목차
프로세스 회수 중요도
AOS와 iOS는 시스템 리소스를 관리하고 안정성을 보장하기 위해 백그라운드에서 실행 중인 프로세스를 정리합니다.
이 과정에서 시스템은 프로세스의 중요도를 기준으로 어떤 프로세스를 유지하고 어떤 프로세스를 종료할지 결정합니다.
AOS의 프로세스 회수 중요도
Android는 아래 값을 기반으로 프로세스 중요도를 계산합니다. 이 값은 프로세스 종료 우선순위를 나타내며, 중요도가 낮을수록 시스템에 의해 더 쉽게 종료됩니다.
프로세스 중요도 등급
1.
Foreground Process
•
사용자가 현재 상호작용 중인 프로세스입니다.
•
메모리 부족 상태에서도 절대 종료되지 않습니다.
2.
Visible Process
•
사용자가 직접 상호작용하지는 않지만, UI를 통해 보여지는 프로세스입니다.
•
Foreground만큼은 아니지만, 시스템에서 높은 우선순위를 부여받습니다.
3.
Service Process
•
백그라운드에서 중요한 작업(예: 음악 재생, 데이터 동기화)을 수행하는 프로세스.
•
서비스 프로세스는 메모리가 부족해지면 종료될 수 있지만, startForeground()로 우선순위를 높일 수 있습니다.
4.
Background Process
•
사용자가 상호작용을 끝낸 앱의 Activity가 저장된 상태.
•
ex) 최근 사용 앱 리스트에 나타나는 앱.
•
메모리 부족 시 우선적으로 종료됩니다.
5.
Cached Process
•
사용자가 더 이상 사용하지 않는 앱의 프로세스로, 메모리를 확보하기 위해 가장 먼저 종료됩니다.
•
캐시된 프로세스는 시스템 성능 최적화를 위해 필요 시 다시 불러올 수 있도록 유지됩니다.
Android 회수 기준
즉, Android는 메모리 부족 시 아래와 같은 순서로 프로세스를 종료합니다
Cached → Background → Service → Visible → Foreground
iOS의 프로세스 회수 중요도
iOS는 Android보다 단순합니다. iOS는 프로세스를 실행 상태에 따라 중요도를 결정합니다.
프로세스 중요도 등급
1.
Foreground App
•
사용자가 현재 상호작용 중인 앱.
•
ex) 화면에 열려 있는 앱.
•
시스템에서 가장 높은 우선순위를 가지며, 메모리 부족 시에도 종료되지 않습니다.
2.
Background App
•
제한된 시간 동안 작업을 수행할 수 있는 앱.
•
ex) 백그라운드 데이터 업로드, 음악 재생.
3.
Suspended App
•
메모리와 CPU를 사용하지 않는 앱.
•
메모리 부족 시 가장 먼저 종료됩니다.