为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > DMM虚拟机的动态内存映射模型

DMM虚拟机的动态内存映射模型

2018-02-27 24页 doc 152KB 27阅读

用户头像

is_447713

暂无简介

举报
DMM虚拟机的动态内存映射模型DMM虚拟机的动态内存映射模型 2012-07-13################2012-07-13#######2#012-07-13######## DMM: HH ??*???*?, J%Mc, , , , •? c4 ? , 100871 4 ? Departmen of Computer Science, Michigan Technological University, Houghton MI 49931, USA t * W11.. E-mail: wxl@pku.edu.cn, lyw@pku.e...
DMM虚拟机的动态内存映射模型
DMM虚拟机的动态内存映射模型 2012-07-13################2012-07-13#######2#012-07-13######## DMM: HH ??*???*?, J%Mc, , , , •? c4 ? , 100871 4 ? Departmen of Computer Science, Michigan Technological University, Houghton MI 49931, USA t * W11.. E-mail: wxl@pku.edu.cn, lyw@pku.edu.cn L&HM: 2009–02–01; HM: 2010–01–15 (‘: 2007CB310900) (‘: 90718028, 60873052) : 4 : (‘: 2008AA01Z112) - (‘: MOE-INTEL-08-09, MOE-INTEL-10-06) : *W 1 *4 : * - . 7 VMM T -1 :: (VM) , E:*,:1 VMM T , E: . 5 )1 DMM, VMM Ballooning Xen copy-on-write t,, 1 . E: , -1 , hL , . 7 , )1, 7 #i775 J1 . , (KVM) t, : , - 7 :. , :Jh , , . 1 * iH , . , (virtual W machinemonitor, VMM) T ci. FJFJ, VMM J . VMM , , . FJ, J J e b FJ, , 1- i , 1 . T1 VMM , VMM , 1] 1 [1] , i . ‘f , 9 VMM T J : T : , 9EJ*, E**, . DMM: i . 1 4 : 1 4 , 2010, 40: 1543–1558 2012-07-13################2012-07-13#######2#012-07-13######## (1) . , VMM , 1 J J J . . (2) . VMM , J J . Guest OS , thVMM ― ‖. J { 1 N (3) . VMM FJ , 1 . copy-on-write . VMM [2?4] . Xen Ballooning , T T P VMM , ; VMWare L Jj1 1 WJ [5] VMWare Workstation , T P (host OS) ; VMWare ESX Server 1JL1 1 T [1] . , , VMM { b 1 J : T , 9. M , VMM FJ , IAT FJ , H 1 , e T . ‘f [6] , Ballooning , Xen Gran Table , T IATt { , . 1 A J ,, N . VMM j . 1P1 , . b , J tFFJ11, J . ‘ f VMWare ESX Server 1, [1] FJ . , VMM 1 11]EE , . ,, . VMM 1 J J , i . 1 1] , . , L1 1i . {g fM . VMM T T 1 , . , W (dynamic memory mapping, DMM) . DMM VMM *T TT i , VMM , i , 1 VMM , T . 1 DMM . T i , . DMM { T T : , ; , . , DMM W T. , 2 ’, T t,1 ,5 * , DMM , J t TT i T , . 3 TT ,T T DMM KVM , T tP ‘f A ; W 1 15442012-07-13################2012-07-13#2#0#1#2#-#0#7#-13######## I 1 DMM I 2 HIi1IILIInIIt HII . 4 . T J L J L , 2 n VMM . , VMM W 9 , ( -map ), ― ‖ f1 J 0 . ’, E E 3 EJ *,1] 5i J * -map , , t 1f Ti J t1] i i 1 , T . 2.1 wr-’’L W , VMM T , VMM f -map , e FJ . , Guest OS , 3 : (1){ b *. 1 E (machine address), , ; (2) E E EP E T E1 (guest physical address), VMM ; (3) (guest E F EE Evirtual address), Guest OS . E 1 EJ , VMM W f -map T ― E‖ ― E‖ , 1] EY f ; FJ , Guest OS ― E‖ ― E‖ , 1] EY g, E E E 2 . T,T, E 1 E. T ― E‖ ― E‖ , 9 : b VMM f g ?g , (memory managemen unit, MMU). f 1 t : (1)VMM f ; (2)VMM Guest OS , 9 1545 2012-07-13################2012-07-13####2#0#1#2#-07-13######## MMU ’ Guest OS , g; (3) ? g J 1 f . , VMM FJ . * { T 2.1.1 MMU J H (MMU para-virtualization) E VMM F FJ, [7] VMM *. , FJ . MMU , VMM f ? g A Guest OS 1, g. T t Guest OS 1 , Guest OS . Xen , 11 kJ [2?4] VMM . 2.1.2 (shadow page f table) FJ, Guest OS ― ‖, t f ? g A ― ‖ 1, 1 Guest OS . t, VMM MMU E . b Guest OS J VMM 1 , 1 Guest OS th{ , L1 ( Microsoft Windows) . VMWare [1,5,8] Workstation VMWare ESX Server KVM 1 T . 2.1.3 14f H (EPT NPT) [9] , Intel AMD (extended page tables, EPT) (nested TT 1A [10] page tables, NPT) , VMM g MMU, ] f b b i , VMM . E 1 T {b 1 L1, 1 . T E L, W t f ?g (translation look-asidebuffer, TLB) 1. MMU 3 . i b *,1 i , 3 . 2.2 HH -map . f E E , : 1]J T P : ; Z : ; M : VMM . M Z . f : P M , P EJ p ? P , m ? M , - f M . 4 . , f VMM f -map . : , 1] (W ) f , E , 1 E FJ . ’J f -map , Guest OS (guest frame number, GFN) 1 TT , (machine frame number, MFN), . , L M . 15462012-07-13################2012-07-13#2#0#1#2#-#0#7#-13######## 3 IJ H L f 14f H I 4 HH { , 1 , . : , J M f 1 ; ,, J , ; , J Pf J , f . J [8] e , b , 1 J VMM , ‘f KVM . 2.3 L 1]1 EY P , M t, t, . . . , t, 0 1 h t , VMM M, f P M , P i i i i EJ p ? P , f(p) = ? f (p) = {m}, m ? M, - T : i i i (1) ? 0, 1, . . . ,h ? 1, /= , M/= M;i {}1 ff. +1 +1 i iii (2) f(p) = ?, p A VMM; i (3), FJ p, p? P , (p) (p), p f - EJ f= f. 1 2 1 2 1 iii p VMM; A 2 1] J F = f, f, . . . , f P i . 0 1 h i J 1, (1) T1 f -map f M J i i , VMM , 1] i N 1 .i N ; (2) J , 1- VMM (), ; (3) TA J i* J FJ , VMM , . 5 1- TA J T i 11 . J J 1, P . , M1 L1 1547 2012-07-13################2012-07-13####2#0#1#2#-07-13######## I 5 HH 6 I HH Guest OS J JW J , 1] VMM F , . T, , . i J 1 { M 1] M . 6 , VMM t i , t L 0 h F i1 , 3 J M T . 1 CPU VMM Guest OS() . LE, i* VMM 1 . ! , CPU VMM 1 , [t, t), VMM f -map , { i b Guest OS 1, M f -map Guest OS ; W , CPU ! Guest OS 1 , (t, t], b f -map Guest OS , M i?1 f -map J . , f -map CPU Guest OS , (, ) . , P J 1 tt 1] ?1 ii t, t, . . . , t f M . 0 1 h 2.4 *, 2.3 J, T i J , i . 1-, 1] T i J . 2.4.1 (demand paging) , VMM , E 1548 2012-07-13################2012-07-13####2#0#1#2#-07-13######## i . i T, T : (1)VMM E M= ?, - EJ p ? P , f(p) = ?, i ; 0 0 (2) t, T p, - f(p) = ?, (2), 1), i i A VMM; m, ? m, p m, ‘[(3)VMM M=M{} f()={} t +1 +1 iii ; (4) (2) (3), J . 2.4.2 H 1 (virtual memory) L1 1IL, P 1 [11] J J . VMM J : Ballooning, T 1] . 2.4.2.1 [11] (swapping) L1 11M1 , L1 i J ― J ‖ (W ). L1 [12] J IL , . i T, T : (1)VMM E M= ?, - EJ p ? P , f(p) = ?, i ; 0 0 (2) , p, (p) ?, (2), , t T -f= 1) ii A VMM; (3)VMM ) , , VMM m, M=i+1 M? {m}, f(p) = {m}, t (5); i i+1 (4) , VMM . VMM ( LRU) M J T 1 i S, s ? S, M= M? {s}, FJ , x ? P (x) = s, J EJ - f i+1 i i (x) = ?, s . (3);1] f A J t i+1 (5)VMM ’ p J 1, , J 1 p A m; (6) ‘[ , (2), J . 2.4.2.2 Ballooning [1] Ballooning(n ) 1 . * 9 : L Jj1 , 1 . T L , VMM Guest OS *1 H L , J1 ―balloon driver‖. Ballooning W i* : VMM ― (balloon inflating)‖ , ― W n LJ 1W n L (balloon deflating)‖ ’. , Ballooning L i T T , T , 1] . 1. (balloon inflating) ! ! ! (1)VMM VM VM E M M , f f , i . 1 0 0 0 0 ! ] M M J, - p ? P , f(p) = ?;0 0 0 1549 2012-07-13################2012-07-13#2#0#1#2#-#0#7#-13######## (2) t, VM p, (p) = ?, (2), ,T - f 1)i i A VMM; (3)VMM M m, m ? M? (P ). , VMM )1 j f Pf iiii (p) m, MM, (6);f= {} = t +1 +1 iii ! (4) , VMM W VM balloon driver T ―n ‖ , balloon driver ! ! ! !!! ! M 1 J S, EJ s? S, M = M ? {s}, FJ +1 iii! ! !!!! !, x? P (x) s, (x) ?; - f= 1] f= +1 ii !(5)VMM VM M= M? S. t (3);i i (6) ‘[ , (2), .J 2. (balloon deflating) Li ! !! !(1) ―‖ (4), t t, p? P , (p) = ?; b n t -fi j j ! !! !(2) ( ), VM p, (p) ?, (2), tj>i T -f= j j 1), A VMM; ! ! !! ! ! !(3)VMM ) M 1 j f m, P m? M ? f (P ). , VMM j j j j ! !!!! f(p ) = {m }, M= M, (6); t +1 +1 jjj! (4) , VMM VM balloon driver T ―n L ‖ , b balloon driver 1 !! ! ―n ‖ 1 J S, EJ s? S, VMM VM J ! !m, s m 1, M= M? {m} ? {s}, FJ , x ? P - f(x) = +1 jjj!s, 1] f(x) = m; j+1 ! ! ! ! (5)VMM VM M M ? S. (3);= t j j (6) ‘[, (2), . (4) , VMM J 1 VM J m, VMM W n , . 2.4.3 -Ft copy-on-write E VMM FJ . . ‘f , FJ J FJ I Guest OS ‘,f . FJ , . AT FJ . T, [13] FJ . , VMM FJ FJ . , T W , , T L11] , . copy-on-write(COW). COW J* Unix , , , FJ L1 J 1] 1 [14] I T, . copy-on-wirte 11 7 . copy-on-write i . b * , T , 1] i J T:EY VMM V , 1 v ? V P. v J P = {(v, p)|v ? V ? p ? P}, . t , VMM v i M. P M, 2.3 f - J, T iii 3 . 1550 2012-07-13################2012-07-13#2#0#1#2#-#0#7#-13######## 7 copy-on-write 8 I iH nIJ L J T, copy-on-write T T: (1)VMM E M= {s}, EJ (v, p) ? P , f((v, p)) = {s}, t 0 0 i ; !!!!(2) t, v A (v, p). (v, p) ? P, (v, p) /= (v, p), { f((v, p)) = i i !!f((v, p)), (3), 1), A VMM;i (3)VMM m, ((v, p)) m . , VMM f 1 t i MM? m, ((v, p)) m, ‘[ ; = {} f= {} +1 +1 iii (4) (2) (3), J . 1, E FJ , J ] copy-on-write ) . , { , VMM W . 1] , i , 9 . J FJ, { 9 : -map ‘f , VMM ‘f , . fA b TA . ‘f, (2) ‘f, i A1 COW (3) ‘f A . 8 T J * . 3 H [8] *, L VMM——KVM(kernel-based virtual machine) . , FJ J 1] J i T .1 J , i T : (1) M , M -1 ? (2) P M f , -1 f ? (3) f -map ‘f , VMM ? T (1), 1] TT ― tP‖ , M ; (2), , tPtF T 1] T J T T FJ11 ; T (3), 1]i T KVM 1 , f (reversemapping) T L , f -map ‘f , Guest OS b VMM. 1 A 15512012-07-13################2012-07-13#2#0#1#2#-#0#7#-13######## 9 I c - 3.1 c -! tP (page pool) VMM , , b 1 J 1i . , tP M , 2.4 J, , M T L1: (1)M= M? {m}; i+1 i (2)M= M? {m}. i+1 i tP . i 3.1.1 c - tP b : J tP (free pool) itP (active pool). 9 TT tP N . tP, tP J i T { j 1 1 i i T . , itP1 f (P ), 1J tP1 M ? (P ). : f1]]J (1) L7 tP -map;i1 f (2)VMM tP J , L7 J tP1 , . J tP1 T . , tP i TL1: • (alloc): J tP A itP, - f -map. • (return): tPtP, -i J T f map. • (expand): J A tP J tP1, T 1 ( M ) J. • L (shrink): J tP J tP1 , JJT 1 ( M ) J. tP , 1 VMM f (P ) M ? f (P ), - O(1) ) Guest OS f -map . FJ , b L1 1552 2012-07-13################2012-07-13####2#0#1#2#-07-13######## M= M? {m} M= M? {m} tP, -map L1 J 1 1 E fLi+1 i i+1 i 1, 1 T . 1] 3.2 J,1, f -map . 3.1.2 c tP. : free list active list, 1]1 1] J 3.1.1 J,1 J tP itP; IL , 1] : free count active count, (P ) M ? (P ) . f f J 1 ― T ‖, tP. : (1) -map , T 1 i*fI , ; (2) , P J J T { tP; (3) , KVM , host Linux page i E 1]) 1 E * ; (4) . , 32 20 , 64 T , 40 ,. J 4 KB, T L 0.005(32 )?0.010(64 ). b T , . ‘f, 2 GB J L 32 , 10 MB.L 3.1.3 c 1] J |P | phys mem[ ](P ) f , phys mem[ ] : J T p ? P , (1) f(p) = ?, phys mem[p]= NULL; i (2) f(p) = {m}, phys mem[p] = page desc(m), 1, page desc(m) m i T E . , f(p) /= ?, VMM phys mem[p]?page page , L i . 1 phys mem[p] NULL , VMM Guest OS p T f -map ‘.f b 1] phys mem[] 1 T E , KVM 1 Host Linux E , J L FJ . 3.2 ‘1JJA1H 2.3 , : Guest OS -map ‘f J, i 11 f A VMM, VMM t, f -map. *, A, KVM 1 A . 3.2.1 L iH n 3.1.3 , VMM ’ phys mem[ ] Guest OS J,11] W J ) T f -map ‘.f { , 1 Guest OS ’J phys mem[ ] (? ), Guest OS ‘f VMM JJ 1 A ?? . 1, , , f -map 1, MMU , ‘f A VMM. 15532012-07-13################2012-07-13#2#0#1#2#-#0#7#-13######## 2.1 , ? g. , , VMM bJ, T f T : (1) (p) = ?, v, g(v) = p ?g (v) = ?; f EJ E f (2) FJ p, p? P , (p) = (p), v, g(v) = p EJ ff EJ E 1 2 1 2 1 g(v) = p, f ?g (v) . 2 2.3 . x86 , (1) J, J T W * P(present) , 1 (2) W * W(writable) . 3.2.2 1 2.4 J,1 {, Ballooning copy-on-write 1, 1] J m, f T m X , X 1 x f -map . ?1 X m f X = f (m). f (reverse mapping) . b , ‘ fA 1, VMM T ?1 m , V = ( ?g )(m), reversemapping . *P f1 W [8] KVM reversemapping , Guest1 T T OS A, TA Guest OS A VMM . { , T i , 1] reverse mapping, 1 , KVM . , KVM , f J L . 1] 3.3 J, L . Ti 3.2.3 in VMM -map ‘.f A f *11 b (page fault handler) . VMM -map 1 f f , tP copy-on-write . , 11 VMM , VMM JMA , FJ FJ . *J,1, 1] tP VMM .f 1 KVM 1, A : Guest OS 1 T . , VMM : (1) v; (2) J e] A 1 i*E (‘f‘).f , VMM , e { T i . J1 i*: (1) . W ’J CPU 1 . (2) E v E p e. W MMU ’J Guest OS . (3) E v E . W ’J KVM 1 Guest OS Hash . (4) E p T page desc(m). 3.1.3 J, , W ’J phys mem[ ] . 1554 2012-07-13################2012-07-13#2#0#1#2#-#0#7#-13######## 10 I in Ti t, J 11 10 . 1 i , T 1] . 5’, KVM E v, Guest OS . FJ , KVM ’f , , . , b 1 , , . T t , KVM Guest OS . * Guest OS , . e , Guest OS . KVM W VT 1) A , Guest OS . , { VMM . J i*: (1) -map , . f1 { * E (2) (p) ?, : p f= i* j T balloon driver 1 . (3) Guest OS A , 1 1T . T ref count ). (4) Guest OS , . A 1 1- 1 , W ’J Hash . (1), VMM (p) g(v) . f*P (2), VMM ’ , t . , ’ m. m tP, * T 1] J 1 T{ 1555 2012-07-13################2012-07-13####2#0#1#2#-07-13######## J tP1 , ―n L ‖ , J tP. 1, 1] J L I (ref count), f , J tP E . m, (p), m , * T 1] f I t f (p) g(v) *. (3), VMM copy-on-write , J*, t , - . 1 , 1] 1, 1, . I J 1 1 1 1, , . f 1 (4), VMM L1, t , t 1 . . T t, VMM ‘[ Guest OS . Guest OS , T A , N Guest OS th{ . , * Accessed Dirty i T Guest OS , 4 MB E (PAE) , * FJ f , . J11 , { *T J , . 3.3 , , DMM , KVM .*,11] W 1 AT t J L *T DMM , W . DMM , J, FJ KVM *.. 1] L1 J i . W IA t , 1] {i VMM 1 . 9 , FJ , Cen OS Linux, 1 11] T HTt *Y* 2.6.9. 1] t KVM , 2.6.20 Y* Linux *. ,. 11(a) . T, t 138 s, T T 2.9%. T J L , 1] T tP f 3 J . , f T 1 86%, T J 1 ( 11(b)). 1 L i*: JE ) page JE tP . f g : KVM 1, f , Guest OS 1 , *1 e, 1TA Guest OS . 3.2 , , L1{ J, IATi t1] i* , , . f *1 Tf . T tf , 1] t f T1 . 11(c) , 1 f , 13 T * 1f i 100 1 . T, t KVM 1 T, T 1600 15562012-07-13################2012-07-13#2#0#1#2#-#0#7#-13######## I 11 f , ’ T 1/4, , L. , , . { f i L 1 , 2.9% . , i T 1] , . 1 { i 4 ,L DMM, FJ , DMM :*T TTi T • . DMM F T , e , .e J • W . DMM, VMM Ballooning copy-on-write . W DMM J .• . {, DMM VMM J L 5% , 1 1 f L f . • . DMM , b FJ , , , 1- tFFJ11. VMM . 1557 2012-07-13################2012-07-13####2#0#1#2#-07-13######## • . DMM , VMM , b V N 1 N 1 . FJ , b W FJ , VMM 1 e ’. , VMM , ( Guest OS) , N 1 i* (Ballooning) copy-on-write ; 1 FJ, i* (Xen) (VMware, KVM) i (NPT, EPT) . VMM 1, FJ , J , 1 VMM , , e . 1 DMM T , , { T . DMM T : , ; W , . , DMM J, . T 1 Waldspurger C A. Memory resource management in VMware ESX server. In: Proceedings of 5th Symposium on Operating Systems Design and Implementation (OSDI). New York: ACM, 2002. 181–194 2 GoldBerg R P. Survey of virtual machine research. IEEE Comput Mag, 1974, 7: 34–45 Pratt I, Fraser K, Hand S, et al. Xen 3.0 and the art of virtualization. In: Proceedings of the Linux Symposium 2005. 3 Linux Symposium, 2005. 65–77 4 Barham P, Dragovic B, Fraser K, et al. Xen and the art of virtualization. In: Proceedingsof the 19th ACM Symposium on Operating Systems Principles. New York: ACM, 2003. 164–177 Sugerman J, Venkitachalam G, Lim B H. Virtualizing I/O device on VMware workstation’s hosted virtual machine 5 monitor. In: Proceddings of the 2001 USENIX Annual Technical Conference. Berkeley: USENIX Association, 2001. 1–14 6 Fraser K, Hand S, Neugebauer R, et al. Safe hardware accesswith the Xen virtual machine monitor. In: Proceedings of the 1st Workshop on Operating System and Architectural Support for the on Demand IT InfraStructure (OASIS). 2004. 1–10 7 Whitaker A, Shaw M, Gribble S D. Denali: Lightweight Virtual Machines for Distributed and Networked Applications. Technical Report 02-02-01. 2002 Kivity A, Kamay Y, Laor D, et al. KVM: the Linux virtual machine monitor. In: Proceedings of the Linux Symposium 8 2007. Linux Symposium, 2007. 255–230 9 Neiger G, Santoni A, Leung F, et al. Intel virtualization technology: hardware support for efficient processor virtual- ization. Intel Technol J, 2006, 10: 167–178 10 Bhargava R, Serebrin B, Spadini F, et al. Accelerating wo-dimensional page walks for virtualized systems. In: t Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XIII. New York: ACM, 2008. 26–35 11 Tanenbaum A S. Modern Operating Systems (in Chinese). Beijing: Prentice Hall and China Machine Press, 1999. 52–100 Govil K, Teodosiu D, Huang Y, et al. Cellular disco: resource management using virtual clusters on shared-memory 12 multiprocessors. ACM Trans Comput Syst, 2000, 18: 229–262 Bugnion E, Devine S, Govil K, et al. Disco: running commodity operationg systems on scalable multiprocessors. ACM 13 Trans Comput Syst, 1997, 15: 412–447 14 Ford B, Hibler M, Lepreau J, et al. Microkernels meet recursive virtual machines. In: Proceedings of the 2nd USENIX Symposium on Operating Systems Design and Implementation (OSDI’96). New York: ACM, 1996. 137–151 1558 2012-07-13################2012-07-13#2#0#1#2#-#0#7#-13######## Your requestcould not be processed becauseof a configurationerror: "Could not connect to LDAPserver." For assistance,contact your network support team.
/
本文档为【DMM虚拟机的动态内存映射模型】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索