Виртуализация исполнения машинного кода процессорной архитектуры ARM в Android-x86 окружении (1187396), страница 10
Текст из файла (страница 10)
В практической части былапоставлена задача реализации эмулятора, позволяющего осуществлять запускотдельных программ, скомпилированных под ARM на процессоре сархитектурой x86, на базе существующей системы полной эмуляцииаппаратного окружения. В ходе осуществления данного этапа была показанапринципиальная возможность используемого подхода.
Также был написанзагрузчик, необходимый для корректного запуска исполняемого файла, атакжедляегосвязывания(линковки)с внешними библиотеками.Выполнение этого этапа позволило рассмотреть работу эмулятора нареальных программах.65Былаосуществленареализациивозможностихостовую систему.сопровождениябиблиотек.полученнойперенаправлениясистемыбиблиотечныхпутемвызововвЭто позволило избавиться от необходимостигостевогоДаннаяоптимизацияисполняемогооптимизациятакжекодакопиями необходимыхдала значительный приростпроизводительности.
Как было показано в разделе, посвященном оценкепроизводительности,быстродействие программ, содержащих большоеколичество библиотечных вызовов, выполняемых данным эмуляторомотличается от их нативного исполнения менее, чем на порядок. Такимобразом в ходе выполнения данной работы была получена программнаясистема,выполняющаяпоставленныезадачи,атакжепоказанажизнеспособность предлагаемого решения. При дальнейших оптимизациях ивнедрении динамической трансляции, полученное решение стало возможнымиспользовать в существующей системе виртуализацииParallels ARMEmulator.Даже первоначальная реализация, которая не обладала всем наборомнеобходимых оптимизаций уже позволила достичь производительности,которая превосходила QEMU.
В дальнейшем велась работа по улучшениюпредложенного решения, а также его существенная оптимизация. Наиболеесущественный прирост быстродействия в данном случае был осуществлен засчет использования нативных x86 регистров, а также связывания блоковисполняемого кода в целях непрерывного исполнения. Все вместе, этопозволило создать систему виртуализации исполнения машинного кодаARM, которая по своей производительности приближается к скоростинативного исполнения кода и полностью решает поставленные перед нейзадачи.66Хотелось бы поблагодарить своего научного руководителя ТормасоваАлександра и руководителя проекта Корякина Алексея за неоценимуюпомощь в работе.10.
Список используемой литературы[1] Surhone, L.M. and Tennoe, M.T. and Henssonow, S.F. «Java NativeInterface» – VDM Publishing, 2010 – ISBN:9786134548700[2] Krajci, I. and Cummings, D. «Android on X86: An Introduction toOptimizing for Intel Architecture» – Apress, 2013 – ISBN:9781430261308[3] Hess, K. and Newman, A. «Practical Virtualization Solutions:VirtualizationfromtheTrenches»–PearsonEducation,2009–ISBN:9780137055005[4] Menken, I.
«Virtualization - The Complete Cornerstone Guide toVirtualization Best Practices Concepts, Terms, and Techniques for SuccessfullyPlanning, Implementing and Managing Enterprise IT Virtualization Technology» –Emereo Pty Limited, 2008 – ISBN:9781921523915[5] Wolf, C. and Halter, E.M. «Virtualization: From the Desktop to theEnterprise» – Apress, 2005 – ISBN:9781430200277[6] Wikipedia, S. and Books Llc «Free Virtualization Software: Qemu,Openjdk, Xen, Openvz, Free Java Implementations, Freebsd Jail, Chroot,Marionnet,CooperativeLinux»–GeneralBooksLLC,2010–ISBN:9781157247128[7] Surhone, L.M.
and Timpledon, M.T. and Marseken, S.F. «Qemu» – VDMPublishing, 2010 – ISBN:978613094893167[8] Seal, D. «ARM Architecture Reference Manual» – Addison-Wesley, 2001– ISBN:9780201737196[9] Gibson, J.R. «ARM Assembly Language: An Introduction» – Lulu.com,2007 – ISBN:9781847536969[10] Sloss, A. and Symes, D. and Wright, C. «ARM System Developer'sGuide: Designing and Optimizing System Software» – Elsevier Science, 2004 –ISBN:9780080490496[11] Love, R.
«Linux System Programming: Talking Directly to the Kerneland C Library» – O'Reilly Media, 2013 – ISBN:9781449341541[12] Kerrisk, M. «Linux System and Network Programming: A CompleteGuide» – Apress L. P, 2009 – ISBN:9781430224716[13] Intel Corporation «IA-32 Intel Architecture Software Reference Manual:Basic architecture, vol 1» – Intel Corporation, 2005[14] Intel Corporation «IA-32 Intel Architecture Software Reference Manual:Instruction set reference, vol 2A» – Intel Corporation, 2005[15] Intel Corporation «IA-32 Intel Architecture Software Reference Manual:Instruction set reference, vol 2B» – Intel Corporation, 2005[16] Теория и практика языков программирования.
Учебник для вузов.Стандарт 3-го поколения – Орлов Сергей Александрович – Издательский дом"Питер", 2012 – ISBN:9785496000321[17] Языки программирования и методы трансляции. Учебное пособие. –Опалева Э. – БХВ-Петербург, 2005 – ISBN:9785941573271[18] Современные операционные системы. 4-е изд. – Таненбаум ЭндрюС, Бос Херберт – Издательский дом "Питер", 2015 – ISBN:9785496013956[19] Cache and Memory Hierarchy Design: A Performance-directedApproach – Steven A.
Przybylski – Morgan Kaufmann –ISBN:9781558601369[20] The Cache Memory Book – Jim Handy – Morgan Kaufmann –ISBN:978012322980968[21] Processor Microarchitecture: An Implementation Perspective – AntonioGonzalez, Fernando Latorre, Grigorios Magklis – Morgan & Claypool Publishers,2010 – ISBN:9781608454525[22] Analysis of multi-megabyte secondary CPU cache memories – RichardEugeneKessler–UniversityofISBN:978081867094769Wisconsin–Madison,1991–.