Publications

Detailed Information

실행시간 프리페칭 기법을 이용한 응용프로그램의 기동시간 단축 : Reducing Application Launch Time by Using Execution-time Prefetching Techniques

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors

유준희

Advisor
신현식
Major
공과대학 전기·컴퓨터공학부
Issue Date
2013-02
Publisher
서울대학교 대학원
Keywords
응용프로그램 기동기동시간 단축디스크 입출력 최적화실행시간 프리페쳐응용프로그램 프리페쳐
Description
학위논문 (박사)-- 서울대학교 대학원 : 전기·컴퓨터공학부, 2013. 2. 신현식.
Abstract
최근 모바일 기기의 사용이 보편화되면서 프로그램 실행의 응답성은 사용자의 체험에 큰 영향을 주는 요소가 되었다. 특히, 응용프로그램의 기동시간은 기기에 대한 사용자의 체감성능을 평가하는 중요한 지표로 사용된다. 하지만 플래시 기반의 디스크가 시스템 디스크로 사용되는 경우에도 사용자들은 긴 응용프로그램 기동시간을 자주 경험한다. 프로세서나 디스크 장치는 병렬성을 이용하여 성능을 개선하는 반면, 응용프로그램 기동 시에는 자원들의 사용이 직렬화되기 때문이다.
응용프로그램의 기동시간 단축을 위하여 본 논문에서는 새로운 실행시간 프리페칭 기법을 제안한다. 응용프로그램의 최초 기동 시 접근되는 블록을 정확히 파악하고, 이후 기동 시 이 블록들을 효율적인 방법으로 디스크캐시에 적재함으로써 기동시간을 단축시킨다. 핵심 전략은 프로세서와 디스크의 사용을 병렬화하고 디스크의 내부병렬성과 멀티코어의 활용을 유도하였다. 또, 프리페칭 시간을 단축하기 위하여 디스크의 특성에 따라 다양한 병합, 논리블록번호 정렬, 프리페치 수준의 의존성 해결 기법을 사용하였다.
제안한 프리페칭 기법을 리눅스 커널 3.5.0에 구현하였고 많이 사용되는 응용프로그램을 이용하여 성능을 평가하였다. 하드디스크 기반의 데스크탑 워크로드에서 콜드스타트 시간 대비 평균 52%의 기동시간을 단축하였고 SSD를 사용한 경우 34.1%가 단축하였다. 또, SSD를 사용하는 모바일용 Meego 플랫폼에서 평균 28.1 ~ 34.1%의 기동시간을 단축하였고, 안드로이드 플랫폼이 탑재된 갤럭시 넥서스 폰에서 평균 12.8%의 기동시간을 단축하였다. 마지막으로, 유저 수준에서 구현한 프리페쳐를 사용한 경우, SSD를 사용하는 환경에서 평균 21.7 ~ 28.5%의 기동시간을 단축하였다.
제안한 기법을 기존의 환경에 구현하여 운용하는데 경미한 오버헤드를 유발하는 한편, 시스템의 응답속도를 개선하고 사용자의 체감 속도를 향상시킴으로서 데스크탑 PC와 스마트폰의 성능향상에 유의미한 기여를 할 것이다.
Recently, as mobile devices are widely used, an application responsiveness is of great importance to user experience. Among many metrics, application launch performance is one of important indices to evaluate user-perceived system performance. However, users suffer from long application launch delay even if they use flash-based disk as their system disks. It is mainly because system resources are used in serialized manner during application launch process while processors and disk drives improve their performance by exploiting parallelism.
To optimize launch performance, this dissertation presents a new execution-time prefetching technique, which monitors accessed blocks accurately during the first launch of each application and prefetches them into disk caches in the optimized order at their subsequent launches. The key idea is to overlap processor computation with disk I/O while exploiting internal parallelism on disk drives effectively. In order to optimize prefetch performance, we employ various merge, logical-block-number sort, and prefetch-level dependency resolution schemes.
We implemented the proposed prefetcher on Linux kernel 3.5.0 and evaluated it by launching a set of widely-used applications. Experiments demonstrate an average of 52% reduction of application launch time on an HDD-based system and 34.1% reduction on an SSD-based system as compared to cold start performance. We also achieve an average of 28.1 ~ 31.4% reduction on mobile Meego platform using an SSD as a system disk. And We port the proposed prefetcher to Android platform and achieve an average of 12.8% reduction of widely-used android applications on Galaxy Nexus phone. In addition, We implemented the proposed prefetcher at user-level which does not require kernel modification. It demonstrated an average of 21.7 ~ 28.5% reduction of application launch time on SSDs.
The proposed scheme incurs little overhead from its implementation and operations in the existing environment. It is expected to make significant contributions to performance enhancement of desktop PCs and smartphones by improving both system and user-perceived performance.
Language
Korean
URI
https://hdl.handle.net/10371/118906
Files in This Item:
Appears in Collections:

Altmetrics

Item View & Download Count

  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Share