리눅스기반모바일기기에서사용자응답성향상을위한프레임워크지원선별적페이지보호기법 545 (KCC2015 우수논문 ) 리눅스기반모바일기기에서사용자응답성향상을위한프레임워크지원선별적페이지보호기법 (Framework-assisted Selective Page Protection for Improving Interactivity of Linux Based Mobile Devices) 김승준 김정호 홍성수 (Seungjune Kim) (Jungho Kim) (Seongsoo Hong) 요약스마트폰과같은모바일기기가널리보급됨에따라사용자들은모바일기기응용들을사용하면서빠른응답성을제공받기를바란다. 하지만모바일기기응용들은종종사용자가기대하는수준의응답성을제공하지못한다. 응답성을저해하는주원인들중하나는과도한페이지폴트발생에따른대화형태스크수행의지연이다. 이는대화형태스크의상주페이지 (resident page) 들이비대화형태스크와의페이지캐시경쟁에의해더욱빈번히희생될페이지 (victim page) 으로선정되어스토리지로쫓겨나기때문이다. 이논문은이러한문제를해결하기위해프레임워크지원선별적페이지보호기법을제시한다. 제안한기법은프레임워크레벨에서대화형태스크를식별하고이를커널에전달하여페이지 replacement 시에대화형태스크의페이지를보호하고, 사용자입력처리중에발생하는페이지폴트를줄인다. 실험결과제안된기법은기존시스템에비해페이지폴트횟수를 37% 감소시켰고, 응답시간을 11% 단축할수있었다. 키워드 : 사용자응답성, 리눅스, 모바일기기, 페이지캐시 Abstract While Linux-based mobile devices such as smartphones are increasingly used, they often exhibit poor response time. One of the factors that influence the user-perceived interactivity is the high page fault rate of interactive tasks. Pages owned by interactive tasks can be removed from the main memory due to the memory contention between interactive and background tasks. Since this increases the page fault rate of the interactive tasks, their executions tend to suffer from increased delays. This paper proposes a framework-assisted selective page protection mechanism for improving interactivity of Linux-based mobile devices. The framework-assisted selective page protection enables the run-time system to identify interactive tasks at the framework level and to deliver their IDs to the kernel. As a result, the kernel can maintain the pages owned by the identified interactive tasks and avoid the occurrences of page faults. The experimental results demonstrate the selective page protection technique reduces response time up to 11% by reducing the page fault rate by 37%. Key words : Linux, interactivity, mobile device, page cache * 본연구는미래창조과학부및정보통신기술진흥센터의대학 ICT연구센터육성지원사업의연구결과로수행되었음 (IITP-2015-(H8501-15-1015)) * 이논문은 KCC2015에서 리눅스기반모바일기기에서사용자응답성향상을위한프레임워크지원페이지보호기법 의제목으로발표된논문을확장한것임 학생회원 : 서울대학교융합과학대학원지능형융합시스템학과 sjkim@redwood.snu.ac.kr 학생회원 : 서울대학교융합과학대학원지능형융합시스템학과 jhkim@redwood.snu.ac.kr 종신회원 : 서울대학교전기정보공학부교수 sshong@redwood.snu.ac.kr 논문접수 : 2015년 8월 3일심사완료 : 2015년 9월 21일 CopyrightC2015 한국정보과학회ː개인목적이나교육목적인경우, 이저작물의전체또는일부에대한복사본혹은디지털사본의제작을허가합니다. 이때, 사본은상업적수단으로사용할수없으며첫페이지에본문구와출처를반드시명시해야합니다. 이외의목적으로복제, 배포, 출판, 전송등모든유형의사용행위를하는경우에대하여는사전에허가를얻고비용을지불해야합니다. 정보과학회논문지 : xxxx 제 xx권제x호 (2015.xx) 1. 서론스마트폰보급됨에따라사용자들이고사양, 고성능응용들을요구하고있다 [1]. 특히이러한응용들의응답성은사용자경험에있어서중요한요소들중하나이다. 스마트폰제조사들은모바일기기의사용자응답성을개선시키기위해많은노력을하고있다. 하지만이러한노력에도불구하고여전히양질의응답성을제공받지못하는경우가보고되고있다 [2]. 고사양응용들은대용량컨텐츠들과라이브러리를사용하기때문에빈번하게스토리지를사용한다. Linux 커널에서스토리지에대한접근은요구페이징 (demand paging) 에의해처리된다. 응용이요청한페이지가페이지캐시에부재한경우, 페이지폴트핸들러가페이지폴트를발생시켜해당페이지가페이지캐시에적재된다. 특히, 메모리제약이심한모바일기기에서는페이지캐시의크기가데스크탑환경에비해작기때문에
546 정보과학회논문지 : 정보통신제 31 권제 6 호 (2004.12) 페이지폴트발생빈도가높아진다. 실험을통해확인한결과사진갤러리응용은 USB 와같은비대화형응용의 I/O 작업이있을때, 최악의경우약 10000 번이상의페이지폴트가발생한다. 따라서사용자응답성개선에있어서페이지캐시관리를최적화하여페이지폴트발생횟수를줄이는것은중요하다. 페이지캐시적중률을높이기위한페이지관리정책은선페이징 (prepaging) 정책과페이지교체 (page replacement) 정책으로나뉜다. 리눅스에서는선페이징정책으로 readahead 매커니즘을제공한다. 파일페이지를읽을경우순차적으로읽는패턴이있음을가정하고읽은파일페이지이후의일부파일페이지를순차적으로미리메모리에적재함으로써페이지캐시적중률을높인다 [3]. 페이지교체정책은기본적으로 LRU-2(least recently used) 에기반한다. 이를위해커널은모든프로세스의작업세트 (working set) 를포함하는 active_list 와물리메모리회수대상인남은페이지들을포함하는 inactive_list 를관리한다. Johnson etl. 에따르면이정책은다른 LRU-k 에비해 5~10% 정도의높은페이지캐시적중률을갖는다 [4]. LRU-k 는페이지의최근 k 번의참조정보를토대로희생될페이지를결정하는페이지교체정책이다. 그러나이러한리눅스의페이지캐시정책은사용자응답성측면에있어서한계가있다. 입력처리과정에서사용자와상호작용하는대화형태스크의페이지들이다른페이지들과식별되지않기때문에페이지캐시자원을유리하게할당해줄수없기때문이다. 결과적으로사용자입력을처리하는과정도중에대화형프로세스의페이지들이다른페이지들에의해페이지아웃당하고페이지폴트를발생시키며다시적재되는긴응답시간을초래한다. 본논문에서는이문제를해결하기위해프레임워크기반선별적응용페이지보호기법을제시한다. 제안된기법은대화형태스크를프레임워크레벨에서식별하고, 커널로해당정보를전달한다. 그리고커널은프레임워크로부터전달받은대화형태스크정보를이용하여대화형태스크의페이지가희생될페이지로선정되는것을방지한다. 이에따라대화형태스크의페이지폴트발생이줄어들게된다. 우리는제안된기법을안드로이드 KitKat 4.0 기반과리눅스커널 3.4 가탑재된넥서스 5S 스마트폰에구현하였다. 실험결과기존시스템대비페이지폴트횟수를 37%, 응답시간 11% 를단축시킴으로써제안된기법의효용성을입증하였다. 이논문의나머지부분은다음과같이구성된다. 2 장에서는리눅스의페이지캐시관리메커니즘을 분석한다. 3 장은사용자응답성및문제를정의하고 4 장에서제안된기법을설명한다. 그리고 5 장에서실험 결과를보이며 6 장에서관련연구를설명한다. 그리고 7 장에서논문의결론을맺는다. 2. 리눅스에서의페이지캐시관리메커니즘 페이지캐시는디스크 I/O 작업을통해서메모리에 적재된페이지들중에서빈번하게사용될것으로선별된 페이지를유지하는메모리공간이다. 이를통해같은 페이지에대한디스크 I/O 작업횟수를줄여메모리접근 시간 (memory access time) 을줄이는것이다. 이장의 나머지절에서는본문의이해를돕기위해리눅스에서의 페이지캐시구조및관리메커니즘에관해개괄적으로 설명하고페이지교체메커니즘과 Lumpy 회수 (reclamation) 메커니즘에대해상세히기술한다. 2.1 페이지캐시구조및관리메커니즘개관 이절에서는우선페이지캐시의데이터구조를 설명하고이를관리하기위한리눅스의동작메커니즘을 설명한다. 그림 1 은리눅스에서의페이지교체흐름을 나타낸다. 페이지캐시에속한페이지는 active_list inactive_list 라는두개의 LRU 리스트들중하나에 속하게된다. active_list 에속한페이지들은최근에 접근된페이지를포함하는 LRU 리스트이며페이지회수 작업시에희생될페이지로선정되지않고메모리에 유지된다. inactive_list 는한동안접근되지않은 페이지를포함하는 LRU 리스트로메모리회수작업의 대상페이지들이된다. 페이지의참조여부를확인하기 위해페이지마다참조비트 (reference bit) 가존재한다. 이비트는리눅스에서 struct 와 page 구조체마다 그림 1 리눅스에서의페이지교체흐름도 Fig 1. Flow diagram of page replacement in Linux
리눅스기반모바일기기에서사용자응답성향상을위한프레임워크지원선별적페이지보호기법 547 그림 2 LRU 리스트간의페이지플래그에따른페이지이동 Fig 2. Moving page between LRU lists with respect to page flag PG_referenced 로구현되어있다. 페이지캐시를관리하기위한동작메커니즘은페이지 삽입과제거동작으로구분된다. 페이지삽입동작은 요구페이징과선페이징에의해수행된다. 요구페이징의 경우 mmap() 시스템콜로할당된가상메모리공간에서 페이지들이참조될때페이지폴트처리기를통해해당 페이지들이페이지캐시에삽입된다. 선페이징의 경우에는명시적, 내재적작업으로구분된다. 명시적 작업은유저레벨코드가직접시스템콜을호출하여 페이지를삽입하는것을말한다. 리눅스에서이러한 작업에관련된시스템콜로는 read() 와 MAP_POPULATE 플래그를인자로받는 mmap() 이있다. 내재적작업은리눅스의 readahead 작업을통해 수행된다. 페이지제거메커니즘은페이지교체메커니즘과 Lumpy 회수메커니즘의연계로수행된다. 페이지교체 메커니즘은페이지캐시에서희생될페이지를선정하며, Lumpy 회수메커니즘은할당요청된페이지의크기가 2 개이상일때그희생될페이지를기준으로연속된 페이지들을추가로희생될페이지로선정하여메모리로 회수한다. 이러한메커니즘들은 kswapd 라는리눅스 커널데몬과커널메모리할당자에의해수행된다. Kswapd 는주기적또는사건기반 (event-driven) 으로 low watermark 를체크하여페이지교체메커니즘을 수행한다. 커널메모리할당자는사건기반으로 min watermark 를체크하여페이지교체메커니즘을 수행한다. 이러한작업은리눅스커뮤니티에서 direct reclaim 으로불린다. Low 와 min watermark 들의 값은리눅스에미리정의되어있는임계값이며그 수치는물리메모리크기에따라달라진다. 2GB 의 시스템에서그값들은각각 7,190KB, 5,752KB 이다 [5]. 2.2 페이지교체메커니즘 리눅스에서페이지교체메커니즘은페이지구분 작업과희생될페이지선택작업으로나뉜다. 페이지구분작업에서는페이지캐시에서메모리에 유지될페이지들이 active_list 에삽입되고, 그렇지 않은페이지들은 inactive_list 로삽입된다. 그리고 각페이지들의참조비트변경시점에따라페이지들이 다른리스트로이동된다. 그림 2 는각리스트간의교체 메커니즘에의한페이지이동을나타낸다. 구체적으로, 최초로삽입된페이지는 inactive_list 에존재하며 참조비트는 0 이다. 이후에그페이지가참조되어참조 비트가 1 이된경우에 kswapd 가주기적으로해당 페이지를 active_list 로이동함과동시에참조 비트를 0 으로설정한다. 그페이지가한번더참조되면 1 로설정된다. 해당비트는 LRU-2 메커니즘을 주기적으로수행하는 kswapd 에의해 0 으로 set 이 된다. 해당페이지는다음 kswapd 의주기에서여전히 참조비트가 0 이면 inactive_list 로이동한다. 희생될페이지선정작업은 inactive_list 페이지들에서 LRU-2 정책에따라여러개의희생될 페이지들을선택한다. 선택된페이지들의개수는 시스템의자유페이지 (free page) 의개수가 high watermark 로도달되기위해필요한개수로결정된다. high watermark 들의값은리눅스에미리정의되어 있는임계값이며그수치는물리메모리크기에따라 달라진다. 2GB 의시스템에서그값은 8,628KB 이다 [5]. 2.3 Lumpy 회수메커니즘 Lumpy 회수메커니즘은단편화된물리메모리에서 2 개이상의연속된페이지들을확보하기위한 메커니즘이다. 이메커니즘은커널메모리할당자가 2 개 이상의연속된페이지할당을요청받았을때, 물리 메모리부족으로수행되는페이지교체메커니즘에 연계되어수행된다. 구체적으로, 이메커니즘은페이지 교체메커니즘을위해 inactive_list 에서희생될 그림 3 LRU 리스트와 Lumpy reclamation Fig 3. LRU lists and Lumpy reclamation 의
548 정보과학회논문지 : 정보통신제 31 권제 6 호 (2004.12) 그림 4 이벤트전달태스크체인과페이지폴트발생 Fig 4. Task chain and page fault event flow 페이지를선택할때, 해당페이지를기준으로할당 요청된크기만큼의연속된페이지들을희생될페이지로 선정하여함께페이지캐시에서제거한다. 그림 3 은 LRU 리스트와 Lumpy 회수시선택되는주변 페이지영역을나타낸다. 태그페이지 (tag page) 는 희생될페이지로선정된페이지이다. Lumpy 회수 메커니즘은태그페이지를기준으로할당요청된 크기만큼의주변페이지들이희생될페이지로선정할수 있는지체크한후희생될페이지로추가한다. 해당 페이지가희생될수있는지판단하는기준은페이지의 타입과소속된영역이다. 페이지타입으로는이동 불가능한 (unmovable), 회수가능한 (reclaimable), 이동 가능한 (movable), 예약된 (reserve) 으로총 4 가지타입이 있다. 이동불가능하며예약된페이지들은커널영역에서 사용되는페이지로페이지캐시에서제거되지않는 페이지다. 이동가능하며회수가능한페이지타입들은 사용자영역에서사용되는페이지로희생될페이지에 포함될수있다. Lumpy 회수메커니즘은태그페이지를 중심으로정해진영역의페이지가메모리영역을 벗어나지않는지확인하고, 특정블록에포함된페이지는 단편화를방지하기위해 Lumpy 회수대상에서제외된다. 3. 사용자응답성및문제정의본논문에서는사용자응답처리과정에서발생하는페이지폴트로인한응답시간지연을해결하고자한다. 사용자응답성은사용자입력이벤트가모바일기기에발생한시점부터화면에결과가표시되기까지걸리는총소요시간으로정의한다 [6]. 사용자입력을처리하기위해이벤트가응용태스크에전달되고응용태스크가해당이벤트에따라작업을수행한다. 그리고그결과를화면을출력하는태스크에전달하여사용자에게표시한다. 페이지폴트가발생하면사용자응답시간이지연된다. 그림 4 는사용자입력이벤트가모바일기기에발생한 시점부터결과가출력되기까지의태스크체인과그과정에서발생하는페이지폴트를나타낸다. 사용자응답성관련태스크들은각자의작업을수행하면서페이지사용을위한메모리공간을요구하게된다. 이때요청한페이지가메모리에부재한경우페이지폴트가발생하면서해당페이지를메모리에적재하기위한디스크 I/O 가발생하면서응답시간이지연된다. 본논문에서는페이지폴트횟수감소를통해모바일기기의사용자응답성향상을달성하고자한다. 페이지폴트발생의주된원인은기존페이지교체기법이대화형태스크의페이지와다른태스크의페이지를식별하지않고 LRU-2 정책에의해희생될페이지를선정하기때문이다. 따라서사용자응답관련태스크들의사용자입력처리중다른태스크의페이지에의해페이지폴트가발생하며사용자응답시간을지연시킨다. 4. 프레임워크지원선별적페이지보호기법 본장에서는앞서언급했던대화형태스크의사용자 입력처리중페이지폴트발생횟수를줄이기위한 프레임워크지원페이지보호메커니즘을설명한다. 이 메커니즘은프레임워크의지원을받아커널레벨에서 대화형태스크들을식별하고그들의페이지들을페이지 교체정책및 Lumpy 회수메커니즘에서희생될페이지로 선정되지않도록보호한다. 이를위해이메커니즘은 대화형응용태스크식별을위한 current interactive task pid identifier (CIPI), framework-assisted task identifier (FTI) 와페이지식별및보호를위한 interactive page protector (IPP), page identifier 로구성된다. 그림 5 는각모듈의구성과모듈간의데이터전달을 나타낸다. CIPI 모듈은프레임워크레벨에서대화형 태스크 PID 를 FTI 에게전달하고, FTI 는전달받은 ID 를 통해커널에서대화형태스크를식별한다. Page identifier 는페이지가메모리에적재될때이를요청한 태스크의 ID 를해당페이지구조체에기록한다. 마지막으로 IPP 는페이지교체에서희생될페이지를 선정할때, 대화형태스크의페이지인지판별하여 보호한다. CIPI 는동적으로변하는대화형태스크 ID 를기록하고 커널에해당 ID 값을커널의 FTI 에게전달한다. 구체적으로 CIPI 는 InputDispatcher 로부터사용자 입력을처리하는응용태스크 ID 를전달받아기록한다. InputDispatcher 는입력이벤트 (input event) 가 발생할때마다 CIPI 에게해당대화형태스크 ID 를 전달한다. 그리고 CIPI 는 InputDispatcher 로부터 전달된값과기록되어있는값을비교하여대화형태스크 변경여부를파악하고변경시전달받은값을기록한다.
리눅스기반모바일기기에서사용자응답성향상을위한프레임워크지원선별적페이지보호기법 549 그리고변경된값은커널의 FTI 에게전달한다. 전달방법은 Linux 커널에시스템콜을추가하고프레임워크레벨에서호출하여이것의인자로대화형태스크 ID 를전달한다. FTI 는해당 CIPI 의시스템콜호출로전달된대화형태스크 ID 를기록하여, 커널에서대화형태스크를식별한다. 커널에서추가된시스템콜이프레임워크레벨에서호출될때마다 FTI 는대화형태스크 ID 를인자로전달받는다. 그리고 FTI 는현재기록된대화형태스크 ID 와전달받은태스크 ID 를기록한다. 그리고커널에추가된대화형태스크 ID 요청함수가호출되면현재기록되어있는대화형태스크 ID 를반환한다. Page identifier 는메모리에적재된각각의페이지들의구조체에이를요청한태스크의 ID 를기록한다. 리눅스에서는메모리에적재된페이지를관리하기위해페이지프레임마다 struct page 라는페이지구조체를유지한다. 하지만이구조체로는해당페이지를요청한태스크를구별할수없다. 따라서이구조체에태스크 ID 멤버변수를추가하고여기에관련태스크 ID 를기록한다. IPP 는현재 FTI 에기록된태스크 ID 의페이지가희생될페이지로선정되지않도록보호한다. 기본적으로 IPP 는페이지교체메커니즘수행시동작되며추가로 Lumpy 회수메커니즘이수반되는경우추가작업을수행한다. IPP 는페이지교체메커니즘에서 inactive_list 내희생될페이지선정시, 해당페이지의구조체에기록된 ID 와 FTI 에기록된 ID 를비교하여해당페이지가대화형태스크의페이지이면희생될페이지선정에서제외시킨다. 그림 1 에서 inactive_list 에서희생될페이지로선정된페이지들은 shrink_list() 에서페이지타입및참조비트를검사하여최종희생될페이지들을선정한후해당페이지들을페이지캐시에서제거한다. 따라서대화형태스크의페이지를보호하기위해구현된함수를 shrink_list() 에서호출한다. 해당함수는 FTI 에서제공하는대화형태스크 ID 제공함수를호출하여대화형태스크 ID 를획득하여해당페이지를판별한다. 그리고 shrink_list() 에서대화형태스크의페이지일경우의 case 문을추가하여해당페이지가메모리에유지될수있도록한다. 또, 대화형태스크페이지의참조비트를 1 로설정하여 active_list 로포함될수있도록한다. Lumpy 회수메커니즘으로선정된희생될페이지들에관해서 IPP 는비대화형태스크의메모리할당요청시 reclamation 영역의대화형페이지의존재여부를 그림 5 프레임워크지원선별적페이지보호기법 Fig 5. Framework assisted selective page protection technique 판단한다. 대화형페이지가존재할경우이페이지를 제외한연속된페이지들을희생될페이지들로선정한다. Lumpy 회수메커니즘의경우태그페이지를중심으로 페이지를검사하는데, 참조비트를고려하지않는다. 따라서이메커니즘에서페이지검사를하는과정에서 대화형페이지를보호하기위해구현된함수를호출하여 대화형태스크의페이지를식별한다. 그리고 Lumpy 회수 메커니즘에서대화형태스크의페이지가희생될 페이지로식별된경우의희생될페이지에서제외된다. 시간이지남에따라대화형태스크와관련된 페이지들이 IPP 의보호로대부분의페이지캐시공간을 차지한다. 하지만페이지보호로페이지캐시에대화형 태스크의페이지만존재하게된다면, 페이지캐시의 여유공간이부족함에도불구하고페이지회수를할수 없어비대화형태스크를비롯한대화형태스크가 요청하는페이지가메모리에적재되지못하는상황이 발생한다. 따라서 IPP 는비대화형태스크의페이지가 페이지캐시에서모두제거되고, watermark 를 체크하여여유메모리공간이부족하다고판단될경우 LRU-2 정책으로대화형태스크의페이지를제거한다. 그림 6 기존시스템과 FMP 기법을적용한페이지폴트수측정결과 Fig 6. Page fault count in legacy system and FMP system
550 정보과학회논문지 : 정보통신제 31 권제 6 호 (2004.12) 5. 실험및검증 본장에서는제안된기법을검증하기위한실험과그 결과를보인다. 우리는제안된기법을안드로이드 4.4 KitKat 과커널 3.4 가탑재된구글넥서스 5 스마트폰 상에서구현하고 I/O 작업을발생시키는응용인갤러리 응용의응답시간과페이지폴트횟수를측정하였다. 응답시간측정은커널레벨프로파일링도구인 KernelShark[7] 를사용하였고, 페이지폴트횟수측정은 proc 파일시스템 [8] 을이용하여측정하였다. 그리고 제안된기법이적용된시스템의전체적인성능을 측정하기위해 Antutu[9], PassMark[10] 벤치마크응용을 사용하였다. 각벤치마크는 CPU, RAM, 스토리지, I/O 등과같은성능을측정하여수치로제공한다. 본실험에서는안드로이드에서제공하는기본응용인 갤러리응용과 I/O 집약적태스크를동시에실행하였다. I/O 집약적태스크는지속적으로 I/O 를발생시키는 태스크로서본실험에서는 USB 를통해스마트폰으로 대용량파일을전송하도록요청하며 I/O 를발생시킨다. 그림 6 은기존시스템과제안된기법인 framework-assisted selective memory protection(fmp) 를 적용한시스템에서 I/O 집약적태스크를수행시키기전과 후의페이지폴트발생횟수를측정한결과이다. 기존 시스템에서는 I/O 집약적태스크가있는경우페이지폴트 수가약 41% 증가한다. FMP 기법을적용시킨 시스템에서는기존시스템에서 I/O 집약적태스크가있는 경우에발생하는페이지폴트수보다약 37% 감소하였다. 그림 7 은기존시스템과 FMP 가적용된시스템에서의 응답시간측정결과를나타낸다. I/O 집약적인태스크가 수행중인경우기존시스템에비해 FMP 가적용된 시스템에서는응답시간이약 11% 단축되었다. 그림 8 은 Antutu, PassMark 벤치마크를통해기존 그림 7 기존시스템과 FMP 기법을적용한응답시간측정결과 Fig 7. Interactive response time in legacy system and FMP system 그림 8 벤치마크를통한성능오버헤드측정결과 Fig 8. Performance overhead measured via benchmark 시스템과제안된기법이적용된시스템의성능을측정한 결과값이다. I/O 집약적태스크가없는경우성능 오버헤드는각시스템이비슷한성능을나타낸다. I/O 집약적태스크가수행될경우에는 FMP 기법이적용된 시스템이기존시스템보다 3% 정도의오버헤드를 가진다. 6. 관련연구 모바일환경에서의사용자응답성을높이기위한 선행연구가활발히진행되어왔다. 이러한기존접근 방법들은커널레벨과프레임워크레벨로나눌수있다. 커널레벨에서는 I/O 발생횟수를최소화하고 I/O 스케쥴러를수정하여사용자응답성을향상시키려 노력했다. 리눅스에서는페이지폴트로인한 I/O 발생을 최소화하기위해 readahead 메커니즘을제공한다. 이 메커니즘을이용하여안드로이드에서사용자응답성 태스크의페이지를 readahead 하여페이지폴트를 최소화하는기법이제안되었다 [11]. 이기법은대화형 태스크를커널에서런타임으로구분한다. 그리고식별된 태스크의페이지를 readahead 할때다른태스크보다 더많은페이지를메모리에선페이징하여대화형 태스크의페이지캐시적중률을높인다. 하지만이 기법은대화형태스크를찾기위한런타임오버헤드가 발생하며, 페이지교체정책에서대화형태스크를 구분하지않아해당페이지가페이지캐시에서제거될수 있다. 커널에서 I/O 스케쥴러는 I/O 의특성에따라우선순위를 두어요청을처리한다. I/O 의종류는 동기적 (synchronous), 비동기적 (asynchronous) I/O 있다. 동기적 I/O 는해당 I/O 요청을발생시킨태스크가 I/O 요청이수행되어완료될때까지프로그램을수행하지 않고기다리는 I/O 이다. 비동기적 I/O 는태스크가 I/O 요청을발생시키고 I/O 요청의완료와상관없이 가
리눅스기반모바일기기에서사용자응답성향상을위한프레임워크지원선별적페이지보호기법 551 프로그램을수행될수있는 I/O 이다. 비동기적 I/O 는태스크의수행에영향을주지않으므로커널에서는동기적 I/O 요청에우선순위를주어비동기적 I/O 보다빠르게처리한다. 하지만안드로이드에서비동기적 I/O 로분류된요청임에도해당 I/O 가완료될때까지응용이블락당하여응답시간이지연되는경우가발생한다. 따라서비동기적 I/O 로분류된요청과응용태스크의의존도를체크하여해당비동기적 I/O 의우선순위를높여사용자응답성을높이는기법이제안되었다 [12]. 이기법은비동기적 I/O 로분류되었지만이를기다리는응용태스크가있는경우, 해당 I/O 의우선순위를높여줌으로써응답시간이지연되는것을막는다. 하지만이기법은지연될수있는상황을방지하지만대화형태스크를커널이식별하지않아사용자응답성을보장하기에는한계가있다. 프레임워크레벨에서도빠른사용자응답성을제공하기위해다양한기법을사용하였다. 대표적으로안드로이드는응용태스크를빠르게실행시켜사용자응답성을개선시켰다 [12]. Zygote 프로세스라는프로세스를생성하여응용이자주사용하는라이브러리클래스들을미리초기화한다. 그리고각응용들이생성될때미리초기화된 Zygote 프로세스를통해생성됨으로써응용이생성되는시간을단축한다 [13]. 안드로이드에서는터치화면에서의드로잉시간단축을위해분리된 surface 라는분리된구역으로나누어렌더링하는작업을수행한다 [14]. 여러개의 surface 구역으로나누어갱신된 surface 만새롭게랜더링한다. 안드로이드에서제공하는서비스인 SurfaceFlinger 는여러개의 surface 들을조합하여프레임버퍼장치로보냄으로써전체랜더링시간이줄어들어사용자에게향상된응답성을제공한다. 프레임워크의지원을받아대화형태스크를커널에서구분하여대화형태스크의우선순위를조정함으로써사용자응답성을개선하는기법도제안되었다 [15]. 사용자응답처리과정에서태스크경쟁에의해대화형태스크의수행이지연될수있다. 따라서대화형태스크의우선순위를높여주어사용자응답처리중 CPU 자원을우선적으로할당해줌으로써사용자응답성을개선한다. 하지만메모리에서응답성관련태스크의페이지를보호하지못하기때문에사용자응답처리중페이지폴트에의해지연되는문제를해결하지못한다. 7. 결론 이논문은모바일환경에서의사용자응답성이저조해지는상황을파악하고이를해결하기위해프레임워크지원선별적페이지보호기법을제안하였다. 이를위해먼저사용자응답성과태스크체인을정의하고, 이과정에서페이지폴트가응답시간을지연시킨다는것을밝혔다. 제안된기법은프레임워크에서사용자입력처리태스크를식별하고이를커널로전달하여해당대화형페이지를보호함으로써사용자입력처리중페이지폴트발생을최소화한다. 선별적페이지보호는리눅스의페이지캐시에서채택하는페이지교체정책과 Lumpy 회수를모두고려하여보호한다. 각상황에서회수되기위해희생될페이지로선정되는페이지중에서대화형태스크의페이지를식별하고희생될페이지선정에서제외시켜해당태스크의페이지를보호한다. 실험결과제안된기법이기존시스템대비페이지폴트횟수는약 37%, 응답시간은 11% 감소하였다. 참고문헌 [1] Klick Health 2013. [Online]. Available: https://www.klick.com/health/news/blog/mhealth/mobil e-apps-what-consumers-really-want [2] BGR 2013. [Online]. Available: http://bgr.com/2013/09/20/iphone-android-touch-screen -responsiveness [3] W. Mauerer, Professional Linux Kernel Architecture, 1 st Ed., pp. 970. Wolfgang-Mauerer, Canada, 2008. [4] T. Johnson and D. Shasha, 2Q: A low overhead high performance buffer management replacement algorithm, Proc. VLDB Conf., pp. 297 306, 1994. [5] LWN 2011. [Online]. Available: https://lwn.net/articles/422291/ [6] Y. Son, S. Huh, J. Yoo and S. Hong, Framework-assisted Priority boosting for Improving Interactivity of Android Smartphones, Journal of KIISE: Computer Systems and Theory, Vol. 39. No.6, pp. 380-386, 2012 [7] elinux 2011. [Online]. Available: http://elinux.org/images/6/64/elc2011_rostedt.pdf [8] Wikipedia 2010. [Online]. http://en.wikipedia.org/wiki/procfs [9] Antutu 2015. [Online]. Available: http://www.antutu.com/en/index.shtml [10] PassMark software. 2015. [Online]. Available: http://www.androidbenchmark.net/ [11] S. Bae, H. Song, C. Min, J. Kim, and Y. Eom, "EIMOS: enhancing interactivity in mobile operating systems," Computational Science and Its Applications ICCSA, Springer Berlin Heidelberg, pp. 238-247, 2012. [12] D. Jeong, Y. Lee, and J. Kim, "Boosting quasi-asynchronous I/O for better responsiveness in mobile devices," Proceedings of the 13th USENIX Conference on File and Storage Technologies, USENIX Association, pp. 191-202, 2015. [13] D. Bornstein 2008. [Online]. Available: https://sites.google.com/site/io/dalvik-vm-internals [14] Android Open Source Project. [Online]. Available:
552 정보과학회논문지 : 정보통신제 31 권제 6 호 (2004.12) https://source.android.com/devices/graphics/ [15] S. Huh, J. Yoo, and S. Hong, "Cross layer resource control and scheduling for improving interactivity in Android," Softw. Pract. Exper., doi: 10.1002/spe.2285. 2014. 김승준 2014 년숭실대학교컴퓨터학부졸업 ( 학사 ).2014 년 ~ 현재서울대학교융합과학기술대학원지능형융합시스템학과석사과정. 관심분야는내장형시스템소프트웨어, 소프트웨어플랫폼, 실시간운영체제 김정호 2010 년포항공과대학교전기전자공학과졸업 ( 학사 ). 2013 년서울대학교전기컴퓨터공학부졸업 ( 석사 ). 2013 년 ~ 현재서울대학교융합과학기술대학원지능형융합시스템학과박사과정. 관심분야는내장형시스템소프트웨어, 빅데이터분산처리프레임워크 홍성수 1986 년서울대학교컴퓨터공학과 ( 학사 ). 1988 년서울대학교컴퓨터공학과 ( 공학석사 ). 1994 년 University of Maryland, Department of Computer Science ( 공학박사 ). 1955 년 ~ 현재서울대학교전기정보공학부교수. 2008 년 ~ 현재가헌신도리코재단석좌교수. 2009 년 ~ 현재스마트시스템연구소연구소장. 2013 년 ~ 현재한국자동차공학회사업이사. 2012 년 ~2014 년서울대학교융합과학기술대학원부원장. 2012 년 ~2014 년서울대학교융합과학기술대학원융합과학부장. 2006 년 ~2012 년서울대학교융합과학기술대학원지능형융합시스템학과장. 2004 년 ~2006 년서울대학교내장형시스템연구센터센터장. 관심분야는내장형실시간시스템설계, 실시간운영체제, 내장형미들웨어, 실시간시스템설계방법론, 소프트웨어공학, 컴포넌트기반소프트웨어설계