• 검색 결과가 없습니다.

Dalvik Virtual Machine ⿚㍳

N/A
N/A
Protected

Academic year: 2022

Share "Dalvik Virtual Machine ⿚㍳"

Copied!
2
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

Dalvik Virtual Machine ⿚㍳

㫆㡗䞚, ῢ㣿㧎, 㟧㔏㭖, ⺇㥺䦻

㍲㤎╖䞯ᾦὋὒ╖䞯㩚₆䅊䜾䎆Ὃ䞯⿖

e-mail : ypcho, yikwon, sjyang@sor.snu.ac.kr, ypaek@snu.ac.kr

Analysis of Dalvik Virtual Machine

Yeongpil Cho, Yongin Kwon, Seungjun Yang, Yunheung Paek Dept. of Electrical Engineering, Seoul National University

殚檃

䡚㨂 㓺Ⱎ䔎䙆㠦㍲ Ṗ㧻 ⍦Ⰲ 㝆㧊⓪ OS ⓪ 㞞✲⪲㧊✲㧊┺. 㞞✲⪲㧊✲⓪ 㡺䝞 ㏢㓺 䝢⨁䙒 㧊₆ ➢ⶎ㠦 㧊⯒ 㑮㩫䞮㡂 ₆㫊 ₆㑶㦚 Ṳ㍶䞮Ệ⋮ ㌞⪲㤊 ₆㑶㦚 Ṳ⹲䞮⩺⓪ 㔲☚Ṗ Ⱔ㧊 㧊⬾㠊 㰖ἶ 㧞┺. 㧊⯒ 㥚䟊 䞚㑮㩗㦒⪲ 㔲䟟䟊㟒 䞶 ộ㧊 Dalvik Virtual Machine 㦚 ⿚㍳䞮⓪ 㧧㠛㧊┺. 㧊 㠦, ⽎ 㡆ῂ⓪ Dalvik Virtual Machine 㦮 㭒㣪 㣪㏢⯒ ⿚㍳䞮㡖┺.

1. 昢嵦

㾲⁒ IT ㌆㠛㦮 ⶊỢ㭧㕂㦖 㓺Ⱎ䔎䙆㠦 ⏩㡂㧞┺.

㌂㔺 ὒỆ㠦☚ 㥞☚㤆 ⳾⹪㧒㧊⋮ 㕂゚㞞㦚 OS 㺚㣿 䞲 㓺Ⱎ䔎䙆㧊 㫊㨂䟞㦒Ⳇ, ⁎ 㧊㩚㠦⓪ 㥞☚㤆 CE

⋮ Ⰲ⑛㓺⯒ ₆⹮㦒⪲ 䞮⓪ PDA (Persnal Digital Assistant)Ṗ 㫊㨂䞮㡖┺. 䞮㰖Ⱒ 㧊✺㦮 㔲㧻 䕢 ⩻ 㦖 䡚㨂㦮 㓺Ⱎ䔎䙆㠦 ゚䞮㰖 ⴑ䟞┺.

2007 ⎚ 㞚㧊䙆㦮 㿲㔲⓪ 㓺Ⱎ䔎䙆 㔲㧻㠦 ㌞⪲㤊 䕾⩂┺㧚㦚 㩲㔲䞮㡖┺. 㼁 ⻞㱎⓪ UX (User Experien- ce)⯒ ⹪䌫㦒⪲ 䞮⓪ ㌂㣿㎇ ṫ䢪㧊Ⳇ, ⚦ ⻞㱎⓪ 㓺 Ⱎ䔎䙆 OS 㢖 㟇㦚 ⹪䌫㦒⪲ 䞮⓪ ECO 㔲㓺䎲㧊┺.

㧊⩂䞲 䕾⩂┺㧚㦖 㔲㧻㠦 ㎇Ὃ㩗㦒⪲ 㩫㹿䞮Ợ ♮㠞 㦒Ⳇ, 㑮 Ⱔ㦖 ₆㠛✺㧊 䕾ῢ㦚 ⏎Ⰲἶ 㔲㧻㠦 㰚㿲 䞮Ợ ♮㠞┺.

⁎Ⱂ1 㓺Ⱎ䔎䙆 OS ⼚ 㔲㧻 㩦㥶㥾[1]

⁎Ⱂ 1 㠦 2010 ⎚ ⿖䎆 2011 ⎚ ₢㰖 㭒㣪 㓺Ⱎ䔎䙆 OS 㦮 㔲㧻㩦㥶㥾㧊 ⋮䌖⋮㧞⓪◆, 㧊⯒ ⽊Ⳋ 㞞✲⪲

㧊✲㦮 㔲㧻 㩦㥶㥾㧊 ∎㭖䧞 ⏨㞚㰖⓪ ộ㦚 䢫㧎䞶 㑮 㧞┺. 㧊⩂䞲 ộ㠦⓪ Ⱔ㦖 㧊㥶Ṗ 㧞Ỷ㰖Ⱒ, Ṗ㧻

䋆 㤦㧎㦒⪲⓪ 㞞✲⪲㧊✲Ṗ 㡺䝞 ㏢㓺 OS ⧒⓪ 㩦㦚

✺ 㑮 㧞┺.

㧊㻮⩒ 㞞✲⪲㧊✲㦮 㔲㧻 㩦㥶㥾㧊 ⏨㞚㰦㠦 ➆⧒

㞞✲⪲㧊✲⯒ ₆⹮㦒⪲ 䞮⓪ 㑮Ⱔ㦖 㦧㣿ὒ ₆⻫㧊 Ṳ⹲♮ἶ 㧞㦒Ⳇ, 㧊⩂䞲 Ṳ⹲㦚 㥚䟊 㞞✲⪲㧊✲㦮

⌊⿖ ῂ㫆, 䔏䧞 Dalvik VM (Virtual Machine) 㦮 ῂ㫆

⯒ 䕢㞛䟊㟒 䞶 䞚㣪㎇㧊 㧞┺. ➆⧒㍲ ⽎ 㡆ῂ⓪ Dalvik VM㦮 ῂ㫆⯒ ṗ 㣪㏢ ⼚⪲ ㌊䘊⽊₆ 㥚䟊, Ⲓ 㩖 2 㧻㠦㍲ Dalvik VM 㧊 ⶊ㠝㧎㰖 ㌊䘊⽊ἶ, 3 㧻㠦

㍲ Dalvik VM 㦮 㭒㣪 㣪㏢⯒ ⿚㍳䞲 ⛺, 4 㧻㠦㍲ Ⱎ ⶊⰂ⯒ 䞶 ộ㧊┺.

2. Dalvik VM

⁎Ⱂ 2 㞞✲⪲㧊✲ 䝚⩞㧚㤢䋂[2]

⁎Ⱂ 2 㠦 ⋮䌖⋮ 㧞⓪ ộ㻮⩒, DVM (Dalvik VM)㦖 㞞✲⪲㧊✲ 䝚⩞㧚㤢䋂㦮 ⩆䌖㧚 䢮ἓ㦚 ╊╏䞮ἶ 㧞

┺. DVM 㦖 JVM (Java Virtual Machine)ὒ 㥶㌂䞮㰖Ⱒ ⳝⳝ 㹾㧊㩦㦚 Ṗ㰖ἶ 㧞┺.

제37회 한국정보처리학회 춘계학술대회 논문집 제19권 1호 (2012. 4)

- 45 -

(2)

DVM JVMs DEX code Java Bytecode Register based Stack Based Concurrent GC Various GCs

䚲2 DVM ὒ JVM ゚ᾦ

3. Dalvik VM 汞 渂殚 殚暒 把昣

(1) Ⲫ⳾Ⰲ 䞶╏

DVM 㦖 Ⲫ⳾Ⰲ ὖⰂ⯒ 㥚䟊 ⌊⿖㩗㦒⪲ mspace ⯒

㌂㣿䞮ἶ 㧞㦒Ⳇ, 㧊✺ mspace 㭧 GC (Garbage Collection)㦮 ╖㌗㧊 ♮⓪ mspace ⯒ GcHeap 㧊⧒⓪ 㧦⬢ῂ㫆⪲ ὖⰂ䞮ἶ 㧞┺. DVM 㠦㍲ GcHeap 㠦 Ⲫ⳾

Ⰲ⯒ 䞶╏䞶 ➢ ㌂㣿䞮⓪ 䞾㑮⓪ dvmMalloc(size, flag) 㧊Ⳇ, 㧊⓪ ṳ㼊⋮ ⺆㡊㦮 䞶╏ ❇㠦 ⍦Ⰲ ㌂㣿♲┺.

Ⲫ⳾ⰂṖ ⿖㫇䞮㡂 䞶╏㠦 㔺䕾䞶 ἓ㤆 dvmMalloc 㦖 㤆㍶㩗㦒⪲ GC ⯒ 䢎㿲䞮㡂 soft/weak/phantom ⩞䗒⩆

㓺⯒ 㩲Ệ䞲┺. ⁎ 䤚㠦☚ 䞶╏㠦 㔺䕾䞶 ἓ㤆 GC ⯒ 䢎㿲䞮㡂 finalizable ⩞䗒⩆㓺⯒ 㩲Ệ䞮Ợ ♮Ⳇ, Ἒ㏣

䟊㍲ 䞶╏㠦 㔺䕾䞶 ἓ㤆 GcHeap 㦚 䢫㧻䞮Ợ ♲┺.

(2) 㓺⩞✲ 䞶╏

㞞✲⪲㧊✲㠦㍲ ㌂㣿♮⓪ ⳾✶ 㓺⩞✲⓪ Ⰲ⑛㓺㠦 㰗㩧 ὖⰂ♮⓪ 㓺⩞✲㧊Ⳇ, 㓺⩞✲⓪ 㟇㠦㍲ Java API

⯒ 䐋䟊 䞶╏䞮⓪ ⹿㔳ὒ DVM ⌊⿖㠦㍲ 䞶╏䞮⓪

⹿㔳㧊 㧞┺. DVM ⌊⿖㠦㍲ 㓺⩞✲⯒ 䞶╏䞶 ἓ㤆㠦

⓪ dvmCreateInternalThread(pthread_t, name, func, func_a- rgs)⯒ 䐋䟊 䞶╏䞮Ợ ♲┺. 䞶╏♲ 㓺⩞✲⓪ DVM ⌊

⿖ 㩚㡃 㧦⬢ῂ㫆㧎 DvmGlobals 㠦㍲ threadList ⼖㑮

⯒ 䐋䟊 ὖⰂ♲┺. 㧊⯒ 䐋䟊 GC ⯒ 㑮䟟䞶 ➢, 䔏㩫 㓺⩞✲⯒ 㩫㰖䞮⓪ ❇㦮 㧧㠛㦚 䞶 㑮 㧞┺.

(3) 䋊⧮㓺, Ⲫ㏢✲ resolve

DVM 㠦㍲ ṳ㼊⯒ ㌳㎇䞮₆ 㥚䟊㍲⓪ 䟊╏ ṳ㼊㦮 䋊⧮㓺Ṗ resolve ♮㠊 㧞㠊㟒 䞲┺. Ⱎ㺂Ṗ㰖⪲, DVM 㠦㍲ 䔏㩫 䋊⧮㓺㦮 Ⲫ㏢✲⯒ 䢎㿲䞮₆ 㥚䟊㍲⓪ 䟊

╏ Ⲫ㏢✲Ṗ resolve ♮㠊 㧞㠊㟒 䞲┺. DVM 㦖 resolve

⯒ 䐋䟊 䟊╏ 䋊⧮㓺 ⹥ Ⲫ㏢✲⯒ Ⲫ⳾Ⰲ㠦 ⪲❿䞮Ợ

♲┺. resolve 㠦 ㌂㣿♮⓪ 䞾㑮⓪ dvmResolveClass(refe- rrer , classIdx, fromUnverifiedConstant) 㢖 dvmResolve- Method(referrer, methodIdx, methodType)㧊 㧞┺. ⚦ 䞾 㑮㠦 Ὃ䐋㩗㦒⪲ ㌂㣿♮⓪ referrer 㦖 䟊╏ 䋊⧮㓺 ⹥ Ⲫ㏢✲⯒ 䢎㿲䞮⓪ 䋊⧮㓺⯒ 㦮⹎䞮Ⳇ, resolve 䞾㑮⓪ referrer ⪲⿖䎆 DEX 䕢㧒㦮 㩫⽊ ⹥ 䋊⧮㓺⪲▪ 㩫⽊

⯒ 䣣✳䞮Ợ ♲┺. ⁎Ⰲἶ classIdx, methodIdx ⓪ DEX 䕢㧒 ⌊, 䟊╏ 䋊⧮㓺 䢏㦖 Ⲫ㏢✲ 㩫⽊Ṗ 㩖㧻♲ 㧎

◇㓺⯒ 㦮⹎䞲┺.

(4) Ⲫ㏢✲ 䢎㿲

Ⲫ㏢✲Ṗ resolve ♮Ⳋ 䢎㿲㦚 䞶 㑮 㧞┺. 㞞✲⪲

㧊✲㠦㍲ Ⲫ㏢✲⯒ 䢎㿲䞮⓪ ⹿⻫㦖 ┺㦢ὒ ṯ㧊 ῂ

⿚䞶 㑮 㧞┺.

(a) 㧎䎆䝚Ⰲ䔎 Ⲫ㏢✲㠦㍲ 㧎䎆䝚Ⰲ䔎 Ⲫ㏢✲ 䢎㿲 (b) 㧎䎆䝚Ⰲ䔎 Ⲫ㏢✲㠦㍲ ⍺㧊䕆ぢ Ⲫ㏢✲ 䢎㿲 (c) ⍺㧊䕆ぢ Ⲫ㏢✲㠦㍲ 㧎䎆䝚Ⰲ䔎 Ⲫ㏢✲ 䢎㿲 㧊㻮⩒ 㹾㧊Ṗ ⹲㌳䞮⓪ 㧊㥶⓪ ṗ Ⲫ㏢✲㦮 㓺䌳 䝚

⩞㧚㧊 㥚䂮䞮⓪ Ὁ㧊 ┺⯊₆ ➢ⶎ㧊┺. 㧎䎆䝚Ⰲ䔎 Ⲫ㏢✲㦮 㓺䌳 䝚⩞㧚㦖 DVM ⌊⿖㦮 Ṗ㌗ 㓺䌳㠦

㌳㎇♮Ⳇ ⍺㧊䕆ぢ Ⲫ㏢✲㦮 㓺䌳 䝚⩞㧚㦖 㧒⹮㩗㧎 㠊㎞な⩂ 䝚⪲㔲㩖㢖 Ⱎ㺂Ṗ㰖⪲ SP (Stack Point)⯒ ⹪ 䌫㦒⪲ ㌳㎇♲┺. 㧊 ➢ⶎ㠦, (a)㦮 ἓ㤆⓪ DVM 㧎䎆 䝚Ⰲ䎆 ⌊⿖㠦 Ṗ㌗ 㓺䌳 㥚㠦 㓺䌳 䝚⩞㧚㦚 㕩⓪ 䆪✲Ṗ 㫊㨂䞲┺. (b)㦮 ἓ㤆㠦⓪ dvmInvokeMethod(obj, method, argList, params, returnType, noAccessCheck)䞾㑮

⯒ ㌂㣿䞲┺. 㧊➢ obj ⓪ Ⲫ㏢✲⯒ 䢎㿲䞮⓪ ṳ㼊⯒

㦮⹎䞮Ⳇ 㩫㩗 Ⲫ㏢✲⯒ 䢎㿲䞶 ἓ㤆㠦 obj ⓪ NULL 㧊 ♲┺. Ⱎ㰖Ⱏ㦒⪲ (c)㦮 ἓ㤆㠦⓪ JNI 㧎䎆䗮㧊㓺

⯒ ㌂㣿䟊 Ⲫ㏢✲⯒ 䢎㿲䞮Ợ ♲┺.

4. 廎怺庲

DVM 㦮 㭒㣪 㣪㏢⯒ Ṛ⨋䧞 ㌊䘊⽊㞮┺. DVM 㦖 㡂⩂ ⿖⿚㠦㍲ JVM ὒ 㥶㌂䞲 㩦㧊 Ⱔ┺. 㧊⓪ DVM 㧊 ASF (Apache Software Foundation)㦮 㡺䝞 㧦⹪ 䝚⪲

㩳䔎㧎 䞮⳾┞[3]⯒ ₆⹮㦒⪲ 䞮㡂 Ṳ⹲♮㠞₆ ➢ⶎ㧊 Ⳇ, 㧊⩂䞲 ₢╃㠦 DVM 㦮 ⳾✶ ㏢㓺䆪✲⓪ 㞚䕢䂮

⧒㧊㍶㓺 ′㩫㦚 ⹪䌫㦒⪲ ὋṲ♮㠊 㧞┺. ⁎⩒㠦☚

⿞ῂ䞮ἶ ⳾⹪㧒 䢮ἓ㧊⧒⓪ 䔏㎇㌗ DVM 㦖 Zygote 㦮 ㌂㣿㧊⋮ DEX 䕢㧒㦮 ㌂㣿 ❇ Ⱔ㦖 ⿖⿚㠦㍲ ☛ 㺓㎇㦚 ⽊㧊ἶ 㧞┺.

Acknowledgement

⽎㡆ῂ⓪ᾦ㥷ὒ䞯₆㑶⿖/䞲ῃὒ䞯㨂┾㤆㑮㡆ῂ㎒䎆 㥷㎇㌂㠛(ὒ㩲⻞䢎 2012-0000470), 2011 ⎚☚㩫⿖(ᾦ㥷 ὒ䞯₆㑶⿖)㦮㨂㤦㦒⪲䞲ῃὒ䞯㨂┾㦮ῃṖ㰖㩫㡆ῂ㔺

㌂㠛(No.2011-0018609)⹥ IDEC 㦮㰖㤦㦚⹱㞚㑮䟟♮㠞 㔋┞┺.

焾処怾竒 [1] Gartner, Inc

[2] http://developer.android.com/guide/basics/what-is- android.html

[3] http://harmony.apache.org/

제37회 한국정보처리학회 춘계학술대회 논문집 제19권 1호 (2012. 4)

- 46 -

참조

관련 문서

The Code under Part 2 of the Regulations requires retailers not charge a standing offer customer more than the DMO price for their distribution zone and tariff type (based on

ABSTRACT⎯We present a relevance feedback approach based on multi-class support vector machine (SVM) learning and cluster-merging which can significantly improve the

Unlike classification method based on traditional machine learning depending on feature extraction artificially, classification based on deep learning enables the neural

In the aforementioned machine learning‐based color image compression methods, luminance component Y was stored whereas the two chrominance components, Cb and Cr, were

Original and Refactored Versions of Snake Game Another example application is Bitmap Plasma which is based on JNI to call C functions from Java methods..

Each virtualized router of a virtual network platform can connect with another virtual network based on the required service, and can create multiple virtual

수성 버프연마가능 버프연마가능 버프연마가능 버프연마가능 바닥 바닥 바닥 바닥 마감재 마감재 마감재 마감재((((Water Water Water Water- - - -Based Based

The improved performance, shown by SDM6A, may be explained as follows: (1) because previous feature extraction methods were rela- tively simple, we systematically