241 0

성능향상을 위한 QEMU translation block 캐시 알고리즘 수정

Title
성능향상을 위한 QEMU translation block 캐시 알고리즘 수정
Other Titles
QEMU translation block cache policy modification for performance improvements
Author
김영준
Advisor(s)
강수용
Issue Date
2019-02
Publisher
한양대학교
Degree
Master
Abstract
하나의 프로그램을 여러 가지 하드웨어에서 돌리기 위해 [1]가상화(Virtualization)가 사용된다. 그리고 이러한 가상화를 구현하기 위해 하드웨어 장치를 모방하는 컴퓨터 프로그램을 에뮬레이터(Emulator)라고 한다. 현재 사용되는 여러 에뮬레이터 중에서 [2]QEMU(Quick Emulator)는 [3]'하이퍼바이저(hypervisor)’기술을 이용한 오픈소스 소프트웨어이다. QEMU의 기능은 크게 OS(Operating System)을 에뮬레이트 해주는 Full-system과 프로세스를 에뮬레이트 해주는 user-mode로 나뉜다. QEMU는 [4]이진 코드 변환(binary translation)을 제공하는 user-mode에서 코드 변환을 위해 입력받은 이진 코드를 여러 개의 블록으로 나눈 뒤 번역과 실행을 병렬적으로 진행하게 된다. 번역 과정에서 중복되는 부분을 없애기 위해 [5]chaining 기법을 사용한다. 하지만 [6]버퍼 오버플로우(buffer overflow)가 일어날 경우에는 특별한 기법 없이 블록으로 나뉜 이진 코드를 저장하는 버퍼을 모두 비운 후 새롭게 블록을 채워나간다. 일반적인 Full-System에서 OS를 에뮬레이트 할 경우 버퍼 오버플로우가 자주 일어나지 않기 때문에 이러한 간단한 버퍼 오버플로우 대처법이 성능에 큰 영향을 주지 않지만, 모바일과 같이 메모리가 제한되어 버퍼의 크기가 작아질 경우 버퍼 오버플로우가 자주 일어나게 되고, 이러한 상황에서 이러한 대처법은 큰 오버헤드가 일으키게 된다. 본 논문에서는 버퍼 오버플로우가 일어날 경우에 버퍼를 모두 비우고 새로운 버퍼를 채워나가는 간단한 대처 방식 대신에, 버퍼의 앞부분부터 하나의 블록을 지우고 새로운 블록을 채워나감으로써 간단한 [7]FIFO(First In First Out)기법을 적용했다. 그 후 실험을 통해 QEMU의 user-mode에서 제공하는 코드 변환 기능에서 평균적으로 번역이 이루어지는 총 블록의 개수를 9.9%, 메모리 총 사용률을 11%, 그리고 번역에 걸리는 총 시간을 9.7%까지 감소되는 것을 확인하였다.
URI
https://repository.hanyang.ac.kr/handle/20.500.11754/99798http://hanyang.dcollection.net/common/orgView/200000435087
Appears in Collections:
GRADUATE SCHOOL[S](대학원) > COMPUTER SCIENCE(컴퓨터·소프트웨어학과) > Theses (Master)
Files in This Item:
There are no files associated with this item.
Export
RIS (EndNote)
XLS (Excel)
XML


qrcode

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

BROWSE