안드로이드 단말의 태스크 그룹에 따른 CPU 점유율 분석

리눅스 기반 안드로이드 단말에서는 CFS(Completely Fair scheduler)가 사용되고 있다. 그리고 CFS는 태스크의 nice값 조절을 통해서 응용프로그램의 CPU 점유율을 제어할 수 있다. 하지만 안드로이드를 업그레이드할 때마다 수많은 태스크의 nice값을 적절하게 맞추는 일은 매우 어려운 일이다. 이러한 문제를 해결하기 위하여 안드로이드 단말은 리눅스의 cgroup(control group)을 사용하여 태스크들을 그룹으로 나눈다. 고성능과 빠른 응답 특성이 필요한 태스크들을 apps 그룹에 할당하여 높은 CPU 점유율을 보장하고, 그렇지 않은 태스크들을 background 그룹에 할당한다. 하지만 안드로이드의 버전이 업그레이드 되면서 각 그룹에 속한 태스크들에도 변화가 생긴다. 그 결과 동일하게 제작된 태스크들의 CPU 점유율이 달라지게 되고 예기치 못한 성능 저하가 발생할 수 있다. 본 연구에서는 안드로이드 버전 향상에 따라 동종 태스크들이 이전 버전에서보다 성능이 하락하는 현상의 원인을 파악하였다. 아울러 분석과 실험을 통하여 태스크의 nice 값보다 그룹 스케줄링 메커니즘이 어떻게 태스크의 CPU 점유율을 결정 짓는지 규명하였다.