研究生: |
洪濠承 Hung, Hao-Cheng |
---|---|
論文名稱: |
安卓系統之低耗能世代記憶體資源回收機制 Power Efficient Generational Garbage Collection on Android |
指導教授: |
金仲達
King, Chung-Ta |
口試委員: |
梁柏嵩
曾紹崟 |
學位類別: |
碩士 Master |
系所名稱: |
電機資訊學院 - 資訊工程學系 Computer Science |
論文出版年: | 2011 |
畢業學年度: | 99 |
語文別: | 英文 |
論文頁數: | 42 |
中文關鍵詞: | 記憶資源回收機制 、安卓 、省電 |
外文關鍵詞: | garbage collection, android, power efficiency |
相關次數: | 點閱:1 下載:0 |
分享至: |
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
安卓系統是目前最熱門的作業系統,而安卓系統是以執行JAVA程式為主的作業系統。在安卓系統中有記憶體資源回收機制來自動回收不再被使用的物件,並釋放物件所占有的記憶體空間。JAVA 程式的執行效率和耗電量往往跟記憶體資源回收機制有強烈的正相關關係。目前在安卓系統中所實作的記憶體回收機制,是採用標記清除法的記憶體回收機制。由前人的研究發現,標記清除法在標誌時期為了找出所有不再被使用的物件,會造成汙染快取記憶體以及大量存取記憶體的缺點。這些缺點會造成拖慢JAVA程式的執行時間和耗電量。以採用安桌系統的智慧型手機來說,耗電量是非常重要的考量。因此解決這個耗電缺點就是當務之急。
為了節省安卓系統的耗電量,本論文討論如何改進安卓系統上的記憶體回收機制。我們將世代記憶體機制實作在原本的安卓系統上,這個新機制能夠使記憶體回收機制有效率的只針對含有不被使用的物件所在記憶體來回收記憶體,以減少快取記憶體的汙染及記憶體的存取。在安卓系統上實做世代記憶體回收機制時,我們也新增兩種tables來克服安卓系統所採取的copy-on-write機制所帶來的問題。我們的實驗顯示,我們的世代記憶體回收機制比原本的安卓系統所採取的記憶體回收機制來的省時和省電。
Android is a java-based smart phone operating system. Java relies on a memory management mechanism named garbage collection to automatically deallocate program objects. Performance and power consumption of a Java application highly depend on the design of garbage collection. Currently, Android uses the mark-and-sweep garbage collection method. It is well known that mark-and-sweep garbage collection can pollute the cache and suspend the java application during the marking phase, because it has to traverse the whole heap to find unused objects. This not only reduces the responsiveness of the Android system, but also consumes energy, which is very undesirable for handheld devices that Android is targeting at.
A general strategy to solving the problem due to mark-and sweep is to use generational garbage collection, which only traverses part of the heap to find garbage. However, the copy-on-write feature in Android poses special problem for recording objects age in generational garbage collection in Android. To overcome the problem, in this thesis, we design a new generational garbage collection in Android, called table-based generational garbage collection (TGGC). The basic idea is to set aside the management structure of objects so that the management operations, such as age recording, do not disturb the memory space of the objects, causing copy-on-write. Our evaluation shows that TGGC can lower program pause time and reduce power consumption during garbage collection, when compared to the mark-and-sweep garbage collection.
[1]. Richard Jones and Rafael Lins, Garbage Collection: Algorithms for Automatic Dynamic Memory Management, John Wiley and Sons, 1996, pp. 19-36, 75-92, 143-181.
[2]. Stephen M. Blackburn and Kathryn S. McKinley, “Immix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance”, Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation (PLDI 2008), pp. 22-32, 2008.
[3]. Tomoharu Ugawa, Hideya Iwasaki, and Taiichi Yuasa, “Improved Replication-Based Incremental Garbage Collection for Embedded Systems”, Proceedings of the 9th International Symposium on Memory Management (ISMM 2010), pp. 73-82, 2010.
[4]. Sunil Soman, and Chandra Krintz, “Application-Specific Garbage Collection”, Journal of Systems and Software, vol. 80, no. 7, pp. 1037-1056, 2007.
[5]. Jose M. Velasco, David Atienza, Katazalin Olcoz, Francky Catthoor, Francisco Tirado, and J.M. Mendias, “Energy Characterization of Garbage Collectors for Dynamic Applications on Embedded Systems”, Proceedings of Integrated Circuit and System Design, Power and Timing Modeling, Optimization and Simulation, 15th International Workshop (PATMOS 2005), pp. 908, 2005.
[6]. Jose Manuel Velasco, David Atienza, and Katzalin Olcoz, “Exploration of Memory Hierarchy Configurations for Efficient Garbage Collection on High-Performance Embedded Systems”, Proceedings of the 19th ACM Great Lakes Symposium on VLSI 2009 (GLSVLSI 2009), pp.3-8, 2009.
[7]. Paul Griffin, Witawas Srisa-An, and J. Morris Chang, “On Designing a Low-Power Garbage Collector for Java Embedded Devices: A Case Study”, Proceedings of the 2005 ACM Symposium on Applied Computing (SAC), pp. 868-873, 2005.
[8]. Gilberto Contreras, and Margaret Martonosi, “Techniques for Real-System Characterization of Java Virtual Machine Energy and Power Behavior”, Proceedings of the 2006 IEEE International Symposium on Workload Characterization (IISWC 2006), pp. 29-38, 2006.
[9]. Sebastien Lafond, and Johan Lilius, “Energy Consumption Analysis for Two Embedded Java Virtual Machines”, Journal of Systems Architecture, vol. 53, no. 5-6, pp. 328-337, 2007.
[10]. S. Tomar, S. Kim, N. Vijaykrishnan, M. Kandemir and M. J. Irwin, “Use of Local Memory for Efficient Java Execution”, Proceedings of 19th International Conference on Computer Design (ICCD 2001), pp. 468-473, 2001.
[11]. G. Chen, M. Kandemir, N. Vijaykrishnan, and M. J. Irwin, “Adaptive Garbage Collection for Battery-Operated Environments”, Proceedings of the 2nd Java Virtual Machine Research and Technology Symposium (JVM’02), pp. 1-12. 2002.
[12]. Paul Griffin, Witawas Srisa-an, and J. Morris Chang, “An Energy Efficient Garbage Collector for Java Embedded Devices”, Proceedings of the 2005 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES’05), pp. 230-238, 2005.
[13]. comScore. (2011, June 3). Reports April 2011 U.S. Mobile Subscriber Market Share. Available: http://www.comscore.com/Press_Events/Press_Releases/2011/6/comScore_Reports_April_2011_U.S._Mobile_Subscriber_Market_Share
[14]. Mark Brownlow. (2011, Aug). Smartphone Statistic and Market share. Available: http://www.google.com.tw/search?sourceid=chrome&ie=UTF-8&q=sales+of+smartphone
[15]. Google. (2011, June). Android. Available: http://www.Android.com
[16]. Wikipedia. (2011, June).Wiki. Available: http://en.wikipedia.org
[17]. Wikipedia. (2011, June). Garbage Collection. Available: http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)
[18]. Wikipedia. (2011, June). Android. Available: http://en.wikipedia.org/wiki/Android_(operating_system)
[19]. Google. (2011, June). Android Emulator. Available: http://developer.android.com/guide/developing/devices/emulator.html
[20]. Wikipedia. (2011, June). QEMU. Available: http://wiki.qemu.org/Main_Page
[21]. Wikipedia. (2011, June). Beagleboard. Available: http://en.wikipedia.org/wiki/Beagleboard
[22]. PADS Lab NTHU. (2011, June). Aneprof. Available: http://pads1.cs.nthu.edu.tw/wiki/index.php/Main_Page
[23]. Wikipedia. (2001, June). 0xbench. Available: http://code.google.com/p/0xbench/wiki/Benchmarks