성능향상을 위한 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