請用此 Handle URI 來引用此文件:
http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/1247
完整後設資料紀錄
DC 欄位 | 值 | 語言 |
---|---|---|
dc.contributor.advisor | 施吉昇(Chi-Sheng Shih) | |
dc.contributor.author | Niels Reijers | en |
dc.contributor.author | 雷理生 | zh_TW |
dc.date.accessioned | 2021-05-12T09:34:52Z | - |
dc.date.available | 2018-05-17 | |
dc.date.available | 2021-05-12T09:34:52Z | - |
dc.date.copyright | 2018-05-17 | |
dc.date.issued | 2018 | |
dc.date.submitted | 2018-05-07 | |
dc.identifier.citation | [1] B.Alpern, C.R.Attanasio, A.Cocchi, D.Lieber, S.Smith, T.Ngo, J.J.Barton, S.F. Hummel, J. C. Sheperd, and M. Mergen. Implementing Jalapeño in Java. OOP- SLA ’99: Proceedings of the Fourteenth ACM SIGPLAN Conference on Object- Oriented Programming, Systems, Languages, and Applications, Nov. 1999.
[2] Anon. Python-on-a-chip. http://code.google.com/p/ python-on-a-chip, 2011. [3] Anon. Heap sort at Rosetta Code. https://rosettacode.org/mw/ index.php?title=Sorting_algorithms/Heapsort&oldid= 214878#C, 2015. [4] ARM. Cortex M0 Technical Reference Manual Revision r0p0. 2009. [5] A. Arora, P. Dutta, S. Bapat, V. Kulathumani, H. Zhang, V. Naik, V. Mittal, H. Cao, M. Demirbas, M. Gouda, Y. Choi, T. Herman, S. Kulkarni, U. Arumugam, M. Nesterenko, A. Vora, and M. Miyashita. A Line in the Sand: A Wireless Sen- sor Network for Target Detection, Classification, and Tracking. Elsevier Computer Networks, 46(5), Dec. 2004. [6] F. Aslam. TakaTuka source code. http://sourceforge.net/p/ takatuka. [7] F. Aslam. Challenges and Solutions in the Design of a Java Virtual Machine for Resource Constrained Microcontrollers. PhD thesis, University of Freiburg, 2011. [8] F. Aslam, C. Schindelhauer, G. Ernst, D. Spyra, J. Meyer, and M. Zalloom. Poster Abstract: Introducing TakaTuka - A Java Virtual Machine for Motes. SenSys ’08: Proceedings of the Sixth International Conference on Embedded Networked Sensor Systems, Nov. 2008. [9] R. Balani, C.-C. Han, R. K. Rengaswamy, I. Tsigkogiannis, and M. Srivastava. Multi-level Software Reconfiguration for Sensor Networks. EMSOFT ’06: Pro- ceedings of the 6th ACM & IEEE International Conference on Embedded Software, Oct. 2006. [10] K. C. Barr and K. Asanović. Energy-Aware Lossless Data Compression. ACM Transactions on Computer Systems, 24(3), Aug. 2006. [11] D. Braginsky and D. Estrin. Rumor Routing Algorithm For Sensor Networks. WSNA ’02: Proceedings of the First ACM International Workshop on Wireless Sen- sor Networks and Applications, Sept. 2002. [12] N. Brouwers. Darjeeling source code. https://sourceforge.net/ projects/darjeeling. rev. 398. [13] N. Brouwers, K. Langendoen, and P. Corke. Darjeeling, A Feature-rich VM for the Resource Poor. SenSys ’09: Proceedings of the Seventh International Conference on Embedded Networked Sensor Systems, Nov. 2009. [14] A. Caracas, T. Kramp, M. Baentsch, M. Oestreicher, T. Eirich, and I. Romanov. Mote Runner: A Multi-language Virtual Machine for Small Embedded Devices. SENSORCOMM ’09: Proceedings of the Third International Conference on Sensor Technologies and Applications, July 2009. [15] M. Chang and P. Bonnet. Meeting ecologists’ requirements with adaptive data acquisition. SenSys ’10: Proceedings of the Eighth International Conference on Embedded Networked Sensor Systems, Nov. 2010. [16] Chipcon. CC2420 2.4 GHz IEEE 802.15.4 / ZigBee-ready RF Transceiver. 2004. [17] J.-D. Choi, M. Gupta, M. Serrano, V. C. Sreedhar, and S. Midkiff. Escape Anal- ysis for Java. OOPSLA ’99: Proceedings of the Fourteenth ACM SIGPLAN Con- ference on Object-Oriented Programming, Systems, Languages, and Applications, Nov. 1999. [18] J. Condit, M. Harren, Z. Anderson, D. Gay, and G. C. Necula. Dependent Types for Low-Level Programming. ESOP’07: Proceedings of the Sixteenth European Symposium on Programming, Mar. 2007. [19] N. Cooprider, W. Archer, E. Eide, D. Gay, and J. Regehr. Efficient memory safety for TinyOS. SenSys ’07: Proceedings of the Fifth International Conference on Embedded Networked Sensor Systems, Nov. 2007. [20] A.Courbot,G.Grimaud,andJ.-J.Vandewalle.EfficientOff-boardDeploymentand Customization of Virtual Machine-based Embedded Systems. ACM Transactions on Embedded Computing Systems, 9(3), Feb. 2010. [21] Crossbow Technology. MICAz Wireless Measurement System datasheet. [22] S. Dawson-Haggerty, X. Jiang, G. Tolle, J. Ortiz, and D. Culler. sMAP: a sim- ple measurement and actuation profile for physical information. SenSys ’10: Pro- ceedings of the Eighth International Conference on Embedded Networked Sensor Systems, Nov. 2010. [23] J. Dean, G. DeFouw, D. Grove, V. Litvinov, and C. Chambers. Vortex: An Opti- mizing Compiler for Object-Oriented Languages. OOPSLA ’96: Proceedings of the Eleventh ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Oct. 1996. [24] J. Ellul. Run-time Compilation Techniques for Wireless Sensor Networks. PhD thesis, University of Southampton, 2012. [25] J. Ellul and K. Martinez. Run-Time Compilation of Bytecode in Sensor Networks. SENSORCOMM ’10: Proceedings of the Fourth International Conference on Sen- sor Technologies and Applications, July 2010. [26] M.A.Ertl.StackCachingforInterpreters.PLDI’95:ProceedingsoftheACMSIG- PLAN Conference on Programming Language Design and Implementation, June 1995. [27] L. Evers. Concise and Flexible Programming of Wireless Sensor Networks. PhD thesis, University of Twente, 2010. [28] C.-L. Fok, G.-C. Roman, and C. Lu. Rapid Development and Flexible Deployment of Adaptive Wireless Sensor Network Applications. ICDCS ’05: Proceedings of the Twenty-Fifth IEEE International Conference on Distributed Computing Systems, June 2005. [29] A. Gal, C. W. Probst, and M. Franz. HotpathVM: An Effective JIT Compiler for Resource-constrained Devices. VEE ’06: Proceedings of the Second International Conference on Virtual Execution Environments, June 2006. [30] D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, and D. Culler. The nesC Language:A Holistic Approach to Networked Embedded Systems. PLDI ’03: Pro- ceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, June 2003. [31] D. George. Micropython. http://www.micropython.org, 2017. [32] B. Goetz. Java theory and practice: Urban performance legends, revisited. IBM developerWorks, Sept. 2005. https://www.ibm.com/developerworks/ library/j-jtp09275/j-jtp09275-pdf.pdf. [33] J. Gosling, B. Joy, G. Steele, G. Bracha, and A. Buckley. The Java® Language Specification, Java SE 8 Edition. Feb. 2015. [34] L. Gu and J. A. Stankovic. t-kernel: A Translative OS Kernel for Wireless Sensor Networks. Technical Report UVA CS TR CS-2005-09, University of Virginia, June 2005. [35] L. Gu and J. A. Stankovic. t-kernel: providing reliable OS support to wireless sensor networks. SenSys ’06: Proceedings of the Fourth International Conference on Embedded Networked Sensor Systems, Nov. 2006. [36] Guard Square. ProGuard 5.3.2. https://sourceforge.net/projects/ proguard, Dec. 2016. [37] C.-C.Han,R.Kumar,R.Shea,E.Kohler,andM.Srivastava.ADynamicOperating System for Sensor Nodes. MobiSys ’05: Proceedings of the Third International Conference on Mobile Systems, Applications, and Services, June 2005. [38] T. Harbaum. NanoVM. http://harbaum.org/till/nanovm/index. shtml, June 2006. [39] T. Hardin, J. Hester, P. Proctor, J. Sorber, and D. Kotz. Poster: Memory Protection in Ultra-Low-Power Multi-Application Wearables . MobiSys ’17: Proceedings of the Fifteenth International Conference on Mobile Systems, Applications, and Ser- vices. [40] J. Hester, T. Peters, T. Yun, R. Peterson, J. Skinner, B. Golla, K. Storer, S. Hearn- don, K. Freeman, S. Lord, R. Halter, D. Kotz, and J. Sorber. Amulet: An Energy- Efficient, Multi-Application Wearable Platform. SenSys ’16: Proceedings of the Fourteenth International Conference on Embedded Networked Sensor Systems, Nov. 2016. [41] K. Hong, J. Park, T. Kim, S. Kim, H. Kim, Y. Ko, J. Park, B. Burgstaller, and B. Scholz. TinyVM: An Energy-Efficient Execution Infrastructure for Sensor Net- works. Technical report, Department of Computer Science, Yonsei University, 2009. [42] C.-H. A. Hsieh, J. C. Gyllenhaal, and W.-M. W. Hwu. Java Bytecode to Native Code Translation: The Caffeine Prototype and Preliminary Results. MICRO-29: Proceedings of the Twenty-Ninth Annual IEEE/ACM International Symposium on Microarchitecture, Dec. 1996. [43] D. Hughes, K. Thoelen, J. Maerien, N. Matthys, W. Horre, J. Del Cid, C. Huygens, S. Michiels, and W. Joosen. LooCI: The Loosely-coupled Component Infrastruc- ture. NCA ’12: Proceedings of the Eleventh IEEE International Symposium on Network Computing and Applications, Aug. 2012. [44] C. Intanogonwiwat, R. Govindan, and D. Estrin. Directed Diffusion: A Scalable and Robust Communication Paradigm for Sensor Networks. MobiCom ’00 Pro- ceedings of the Sixth Annual International Conference on Mobile Computing and Networking, Aug. 2000. [45] K. Ishizaki, M. Kawahito, T. Yasue, H. Komatsu, and T. Nakatani. A Study of Devirtualization Techniques for a JavaTM Just-In-Time Compiler. OOPSLA ’00: Proceedings of the Fifteenth ACM SIGPLAN Conference on Object-Oriented Pro- gramming, Systems, Languages, and Applications, Oct. 2000. [46] Y. Kishino, Y. Yanagisawa, T. Terada, M. Tsukamoto, and T. Suyama. CILIX: a Small CIL Virtual Machine for Wireless Sensor Devices. Pervasive ’10: Proceed- ings of the Eighth International Conference on Pervasive Computing, May 2010. [47] J. Koshy and R. Pandey. VM*: Synthesizing Scalable Runtime Environments for Sensor Networks. SenSys ’05: Proceedings of the Third International Conference on Embedded Networked Sensor Systems, Nov. 2005. [48] A. Krall. Efficient JavaVM Just-in-Time Compilation. PACT ’98: Proceedings of the 1998 International Conference on Parallel Architectures and Compilation Techniques, Oct. 1998. [49] R. Kumar, E. Kohler, and M. Srivastava. Harbor: software-based memory protec- tion for sensor nodes. IPSN ’07: Proceedings of the Sixth International Symposium on Information Processing in Sensor Networks, Apr. 2007. [50] K. Langendoen, A. Baggio, and O. Visser. Murphy Loves Potatoes: Experi- ences from a Pilot Sensor Network Deployment in Precision Agriculture. IPDPS ’06: Twentieth International Parallel and Distributed Processing Symposium, Apr. 2006. [51] B. Latré, P. De Mil, I. Moerman, B. Dhoedt, P. Demeester, and N. Van Dierdonck. Throughput and Delay Analysis of Unslotted IEEE 802.15.4. Academy Publisher Journal of Networks, 1(1), May 2006. [52] P. Levis and D. Culler. Maté: A Tiny Virtual Machine for Sensor Networks. AS- PLOS X: Proceedings of the Tenth International Conference on Architectural Sup- port for Programming Languages and Operating Systems, Oct. 2002. [53] P. Levis, D. Gay, and D. Culler. Active Sensor Networks. NSDI ’05: Proceedings of the Second conference on Symposium on Networked Systems Design & Imple- mentation, May 2005. [54] P. Levis, S. Madden, J. Polastre, R. Szewczyk, K. Whitehouse, A. Woo, D. Gay, J. Hill, M. Welsh, E. Brewer, and D. Culler. TinyOS: An Operating System for Sensor Networks. Springer Verlag Ambient Intelligence, 2005. [55] K.-J. Lin, N. Reijers, Y.-C. Wang, C.-S. Shih, and J. Y. Hsu. Building Smart M2M Applications Using the WuKong Profile Framework. iThings ’13: Proceedings of the IEEE International Conference on Internet of Things, Aug. 2013. [56] T. Lindholm, F. Yellin, G. Bracha, and A. Buckley. The Java® Virtual Machine Specification Java SE 9 Edition. Aug. 2017. [57] H. Liu, T. Roeder, K. Walsh, R. Barr, and E. G. Sirer. Design and Implementa- tion of a Single System Image Operating System for Ad Hoc Networks. MobiSys ’05: Proceedings of the Third International Conference on Mobile Systems, Appli- cations, and Services, June 2005. [58] K. Lorincz, B.-r. Chen, G. W. Challen, A. R. Chowdhury, S. Patel, P. Bonato, and M. Welsh. Mercury: A Wearable Sensor Network Platform for High-Fidelity Mo- tion Analysis. SenSys ’09: Proceedings of the Seventh International Conference on Embedded Networked Sensor Systems, Nov. 2009. [59] K. Lorincz and M. Welsh. MoteTrack: A Robust, Decentralized Approach to RF- Based Location Tracking. http://www.eecs.harvard.edu/~konrad/ projects/motetrack, 2006. [60] K.LorinczandM.Welsh.MoteTrack:arobust,decentralizedapproachtoRF-based location tracking. Springer Personal and Ubiquitous Computing, 11(6), Aug. 2007. [61] S. R. Madden, M. J. Franklin, J. M. Hellerstein, and W. Hong. TinyDB: An Ac- quisitional Query Processing System for Sensor Networks. ACM Transactions on Database Systems, 30(1), Mar. 2005. [62] A. Mainwaring, J. Polastre, R. Szewczyk, D. Culler, and J. Anderson. Wireless Sensor Networks for Habitat Monitoring. WSNA ’02: Proceedings of the First ACM International Workshop on Wireless Sensor Networks and Applications, Sept. 2002. [63] F. Marcelloni and M. Vecchio. An Efficient Lossless Compression Algorithm for Tiny Nodes of Monitoring Wireless Sensor Networks. The Computer Journal, 52(8), Nov. 2009. [64] Microchip Technology. AVR Instruction Set Manual. 1997. [65] Microchip Technology. 8-bit Atmel Microcontroller with 128KBytes In-System Programmable Flash ATmega128 ATmega128L. 2011. [66] G. Muller, B. Moura, F. Bellard, and C. Consel. Harissa: A Flexible and Efficient Java Environment Mixing Bytecode and Compiled Code. COOTS ’97: Proceed- ings of the Third USENIX Conference on Object-Oriented Technologies, June 1997. [67] R. Müller, G. Alonso, and D. Kossmann. A Virtual Machine for Sensor Networks. EuroSys ’07: Proceedings of the Second ACM SIGOPS/EuroSys European Confer- ence on Computer Systems, Mar. 2007. [68] D. Niculescu and B. Nath. Ad hoc positioning system (APS). GLOBECOM ’01: IEEE Global Telecommunications Conference, Nov. 2001. [69] Oracle. Connected Limited Device Configuration (CLDC); JSR 139. http: //www.oracle.com/technetwork/java/cldc-141990.html, Feb. 2005. [70] Oracle. Java Card 3 Platform Virtual Machine Specification, Classic Edition Ver- sion 3.0.5. May 2015. [71] PhysioNet. PTB Diagnostic ECG Database (ptbdb). https://www. physionet.org/cgi-bin/atm/ATM. First 256 samples from the follow- ing dataset. Database: PTB Diagnostic ECG Database (ptbdb), Record: pa- tient001/s0010_re, Signals: i, Length: 10s, Time format: samples, Data format: raw ADC units. [72] K. Pister. On the Limits and Applications of MEMS Sensor Networks. UC Berke- ley, 2001. [73] J. Polastre, R. Szewczyk, and D. Culler. Telos: Enabling Ultra-Low Power Wire- less Research. IPSN ’05: Proceedings of the Fourth International Symposium on Information Processing in Sensor Networks, Apr. 2005. [74] T. A. Proebsting, G. Townsend, P. Bridges, J. H. Hartman, T. Newsham, and S. A. Watterson. Toba: Java For Applications A Way Ahead of Time (WAT) Compiler. COOTS ’97: Proceedings of the Third USENIX Conference on Object-Oriented Technologies, June 1997. [75] A. S. A. Quadri and B. Othman Sidek. An Introduction to Over-the-Air Program- ming in Wireless Sensor Networks. International Journal of Computer Science & Network Solutions, 2(2), Feb. 2014. [76] N. Reijers. CapeVM source code. https://github.com/NEWSLabNTU/ capevm. [77] N. Reijers and K. Langendoen. Efficient Code Distribution in Wireless Sensor Networks. WSNA ’03: Proceedings of the Second ACM International Workshop on Wireless Sensor Networks and Applications, Sept. 2003. [78] N. Reijers, K. J. Lin, Y. C. Wang, C. S. Shih, and J. Y. Hsu. Design of an Intelligent Middleware for Flexible Sensor Configuration in M2M Systems. SENSORNETS ’13: Second International Conference on Sensor Networks, Feb. 2013. [79] C. Savarese, J. Rabaey, and K. Langendoen. Robust Positioning Algorithms for Distributed Ad-Hoc Wireless Sensor Networks. USENIX Annual Technical Con- ference, Apr. 2002. [80] A. Savvides, H. Park, and M. B. Srivastava. The Bits and Flops of the N-hop Mul- tilateration Primitive For Node Localization Problems. WSNA ’02: Proceedings of the First ACM International Workshop on Wireless Sensor Networks and Applica- tions, Sept. 2002. [81] N. Shaylor, D. N. Simon, and W. R. Bush. A Java Virtual Machine Architecture for Very Small Devices. LCTES ’03: Proceedings of the ACM SIGPLAN Conference on Language, Compiler, and Tool for Embedded Systems, June 2003. [82] N. A. Simakov, M. D. Innus, M. D. Jones, J. P. White, S. M. Gallo, R. L. DeLeon, and T. R. Furlani. Effect of Meltdown and Spectre Patches on the Performance of HPC Applications. Jan. 2018. arXiv:1801.04329. [83] D.Simon,C.Cifuentes,D.Cleal,J.Daniels,andD.White.JavaTMonthebaremetal of wireless sensor devices: the squawk Java virtual machine. VEE ’06: Proceedings of the Second International Conference on Virtual Execution Environments, June 2006. [84] P. H. Su, J. Y.-J. Hsu, K.-J. Lin, Y.-C. Wang, and C.-S. Shih. Decentralized Fault Tolerance Mechanism for Intelligent IoT/M2M Middleware. IEEE World Forum for Internet of Things, Mar. 2014. [85] T. Suganuma, T. Ogasawara, M. Takeuchi, T. Yasue, M. Kawahito, K. Ishizaki, and T. Nakatani. Overview of the IBM Java Just-in-Time Compiler. IBM Systems Journal, 39(1), Jan. 2000. [86] Team libtom. LibTomCrypt. http://www.libtom.net/LibTomCrypt, 2017. [87] Texas Instruments. MSP430x1xx Family User’s Guide (slau049f). 2006. [88] Texas Instruments. MSP430F15x, MSP430F16x, MSP430F161x MIXED SIG- NAL MICROCONTROLLER (SLAS368G). 2011. [89] The Embedded Microprocessor Benchmark Consortium. CoreMark 1.0. http: //www.eembc.org/coremark, 2009. [90] B. L. Titzer. Virgil: Objects on the Head of a Pin. OOPSLA ’06: Proceedings of the Twenty-First ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Oct. 2006. [91] B. L. Titzer, D. K. Lee, and J. Palsberg. Avrora: Scalable Sensor Network Sim- ulation with Precise Timing. IPSN ’05: Proceedings of the Fourth International Symposium on Information Processing in Sensor Networks, Apr. 2005. [92] D. M. Tung, N. V. Toan, and J.-G. Lee. Exploring the Current Consumption of an Intel Edison Module for IoT Applications. I2MTC ’17: Proceedings of the IEEE In- ternational Instrumentation and Measurement Technology Conference, May 2017. [93] P. Tyma. Why are we using Java again? Communications of the ACM, 41(6), June 1998. [94] UCLA Networked & Embedded Systems Laboratory. SOS operating system. https://github.com/nesl/sos-2x, 2009. [95] T. van Dam and K. Langendoen. An Adaptive Energy-Efficient MAC Protocol for Wireless Sensor Networks. SenSys ’03: Proceedings of the First International Conference on Embedded Networked Sensor Systems, Nov. 2003. [96] R. Wahbe, S. Lucco, T. E. Anderson, and S. L. Graham. Efficient software-based fault isolation. SOSP ’93: Proceedings of the Fourteenth ACM Symposium on Operating Systems Principles, Dec. 1993. [97] A. Wang, Y.-T. Huang, C.-T. Lee, H.-P. Hsu, and P. H. Chou. EcoBT: Miniature, Versatile Mote Platform Based on Bluetooth Low Energy Technology. iThings ’14: Proceedings of the IEEE International Conference on Internet of Things, Sept. 2014. [98] B.Warneke,M.Last,B.Liebowitz,andK.S.J.Pister.SmartDust:Communicating with a Cubic-Millimeter Computer. IEEE Computer, 34(1), Jan. 2001. [99] N. Weerasinghe and G. Coulson. Lightweight module isolation for sensor nodes. MobiVirt ’08: Proceedings of the First Workshop on Virtualization in Mobile Com- puting, June 2008. [100] M. Weiser. The Computer for the 21st Century. Scientific American, Sept. 1991. [101] G. Werner-Allen, K. Lorincz, J. Johnson, J. Lees, and M. Welsh. Fidelity and Yield in a Volcano Monitoring Sensor Network. OSDI ’06: Proceedings of the Seventh Symposium on Operating Systems Design and Implementation, Nov. 2006. [102] D. Wheeler and R. Needham. Correction to xtea. Technical report, Computer Laboratory, University of Cambridge, Oct. 1998. [103] I. Wirjawan, J. Koshy, R. Pandey, and Y. Ramin. Balancing Computation and Code Distribution Costs: The Case for Hybrid Execution in Sensor Networks. Elsevier Ad Hoc Networks, 6(8), Nov. 2008. [104] W. Ye, J. Heidemann, and D. Estrin. An Energy-Efficient MAC Protocol for Wire- lessSensor Networks. INFOCOM ’02: Twenty-First Annual Joint Conference of the IEEE Computer and Communications Societies, June 2002. [105] Y. Zhang, M. Yang, B. Zhou, Z. Yang, W. Zhang, and B. Zang. Swift: A Register- based JIT Compiler for Embedded JVMs. VEE ’12: Proceedings of the Eighth International Conference on Virtual Execution Environments, Mar. 2012. | |
dc.identifier.uri | http://tdr.lib.ntu.edu.tw/handle/123456789/1247 | - |
dc.description.abstract | 針對在資源受限的裝置上運行的虛擬機已被廣泛地研究,然而,在設計如何將衆多功能包裝進資源受限的裝置的過程,絕多數的虛擬機都難以同時滿足以下兩種關鍵特性:效能與安全的獨立執行環境,一方面由於幾乎現有的虛擬機皆爲直譯器,往往使得程式運行速度減慢數十至數百倍,另一方面因為受限於裝置上的資源,常常略過驗證位元組碼(bytecode)的步驟,讓虛擬機的防護脆弱且易受到攻擊。
在這篇論文中,我們提出CapeVM,此運行在物聯網裝置的虛擬機,目的就是要能同時兼顧高效能與獨立執行環境的特性,確保惡意程式無法損壞虛擬機的內部狀態,且無法執行尚未被虛擬機驗證的程序。 CapeVM採用提前式編譯器(Ahead-of-Time compilation)轉成機器碼(native code)來提昇效能,並引入一套優化程序來消除大部分的額外運算,目前用於物聯網裝置的提前式編譯器皆無法免除這些額外運算。至於安全的執行環境,一套執行時期與編譯時期的檢查能確保這項特性,因為虛擬機指令集的結構比機器碼更加明確,使虛擬機在轉譯位元組碼的時候,就能夠完成大部分的檢查,比起機器碼的方式省去了昂貴的執行時期檢查。 我們採用了12種具備不同特徵的效能基準來評估CapeVM,包括商用的CoreMark與實際運行在物聯網裝置的應用,儘管使用虛擬機本身與加入安全檢查的步驟會無可避免地增加額外運算,CapeVM的優化程序大幅度地減少這些額外運算,結果顯示其效能僅比缺少安全檢查的機器碼慢2倍,甚至優於具備安全檢查的機器碼,若省去CapeVM的安全檢查,額外運算會再降低至1.7倍,因此,CapeVM專爲資源受限的物聯網裝置整合了虛擬機對於安全與獨立執行環境的需求,並大幅提昇其運行的效能。 | zh_TW |
dc.description.abstract | Many virtual machines have been developed targeting resource-constrained sensor nodes. While packing an impressive set of features into a very limited space, most fall short in two key aspects: performance, and a safe, sandboxed execution environment. Since most existing VMs are interpreters, a slowdown of one to two orders of magnitude is common. Given the limited resources available, verification of the bytecode is typically omitted, leaving them vulnerable to a wide range of possible attacks.
In this dissertation we propose CapeVM, a sensor node virtual machine aimed at delivering both high performance and a sandboxed execution environment that guarantees malicious code cannot corrupt the VM's internal state or perform actions not allowed by the VM. CapeVM uses Ahead-of-Time compilation to native code to improve performance and introduces a set of optimisations to eliminate most of the overhead present in previous work on sensor node AOT compilers. A safe execution environment is guaranteed by a set of run-time and translation-time checks. The more structured nature of the VM's instruction set, compared to native code, allows the VM to perform most checks when the bytecode is translated, reducing the need for expensive run-time checks compared to native code approaches. We evaluate CapeVM using a set of 12 benchmarks with varying characteristic, including the commercial mybench{CoreMark} benchmark and real-world sensor node applications. While some overhead from using a VM and adding safety checks cannot be avoided, CapeVM's optimisations reduce this overhead dramatically. This results in a performance 2.0x slower than unsafe native code, which is comparable to or better than existing native solutions to provide safety. Without safety checks, the overhead drops to 1.7x. Thus, CapeVM combines the desirable properties of existing work on both safety and virtual machines for sensor nodes, with significantly improved performance. | en |
dc.description.provenance | Made available in DSpace on 2021-05-12T09:34:52Z (GMT). No. of bitstreams: 1 ntu-107-D00922039-1.pdf: 5664090 bytes, checksum: c2725b70d945cc8b62a1846ff325408a (MD5) Previous issue date: 2018 | en |
dc.description.tableofcontents | 口試委員會審定書 iii
Acknowledgements vii 摘要 ix Abstract xi 1 Introduction 1 1.1 Internet-of-Things 3 1.2 Virtual machines 4 1.2.1 Performance degradation 5 1.2.2 Safety 11 1.3 Scope 13 1.4 Research questions and contributions 16 1.5 Dissertation outline 17 1.6 List of publications 18 1.7 Naming 19 2 Background 21 2.1 Wireless Sensor Networks and the Internet of Things 21 2.1.1 High-end IoT devices 22 2.1.2 Resource-constrained sensor nodes 22 2.2 The Java virtual machine 24 2.2.1 JVM bytecode 25 2.2.2 Memory 26 2.2.3 Sandbox 27 2.2.4 WAT, AOT, and JIT compilation 28 3 State of the art 31 3.1 Programming WSN and IoT devices 31 3.2 WuKong 33 3.3 Sensor node virtual machines 35 3.4 Darjeeling 37 3.5 Performance 39 3.6 AOT compilation for sensor nodes 41 3.6.1 Peephole optimisation 42 3.6.2 Resulting performance 42 3.7 Safety 43 3.7.1 Source code approaches 44 3.7.2 Native code approaches 45 4 CapeVM 47 4.1 Goals 48 4.2 Compilation process 50 4.3 Translating bytecode to native code 51 4.3.1 Peephole optimisation 53 4.3.2 Branches 53 4.3.3 Safety checks 54 4.3.4 Bytecode modification 54 4.3.5 Separation of integers and references 55 4.4 Limitations 56 4.5 Target platforms 57 5 Performance and code size optimisations 59 5.1 Sources of overhead 59 5.1.1 Lack of optimisation in javac 60 5.1.2 AOT translation overhead 60 5.1.3 Methodcall overhead 62 5.1.4 Optimisations 63 5.2 Manually optimising the Java source code 64 5.3 AOT translation overhead 66 5.3.1 Improving the peephole optimiser 66 5.3.2 Stack caching 67 5.3.3 Popped value caching 70 5.3.4 Markloops 71 5.3.5 Instruction set modifications 74 5.4 Method calls 81 5.4.1 Lightweight methods 81 5.4.2 Creating lightweight methods 87 5.4.3 Overhead comparison 88 5.4.4 Limitations and trade-offs 90 6 Safety 93 6.1 Control flow safety 96 6.1.1 Simple instructions 97 6.1.2 Branch instructions 97 6.1.3 Method invocation instructions 98 6.1.4 Return instructions 99 6.2 Memory safety 101 6.2.1 The operand stack 102 6.2.2 STORE 104 6.2.3 PUTSTATIC 104 6.2.4 NEW, PUTFIELD and PUTARRAY 104 6.3 Comparison to other systems 107 6.3.1 SensorScheme 109 6.3.2 t-kernel 109 6.3.3 Harbor 111 7 Evaluation 113 7.1 Benchmarks and experimental setup 114 7.1.1 Implementation details 117 7.1.2 Experimental setup 121 7.2 CoreMark 122 7.2.1 Manual optimisations 123 7.2.2 Non-automatic optimisations 124 7.3 AOT translation: performance 127 7.4 AOT translation: codesize 132 7.4.1 VM code size and break-even point 133 7.4.2 VM memory consumption 134 7.5 Benchmark details 135 7.6 Constant arrays 141 7.7 Method invocation 142 7.8 The cost of safety 147 7.8.1 Run-time cost 147 7.8.2 Code-size cost 151 7.8.3 Comparison to native code alternatives 151 7.9 Expected performance on other platforms 154 7.9.1 Number of registers 155 7.9.2 Word size 156 7.10 Limitations and the cost of using a VM 158 8 Open issues in resource-constrained JVMs 161 8.1 A tailored standard library 162 8.2 Support for constant arrays 165 8.3 Support for nested data structures 165 8.4 Better language support for shorts and bytes 168 8.5 Simple type definitions 169 8.6 Explicit and efficient inlining 169 8.7 An optimising compiler 170 8.8 Allocating objects on the stack 171 8.9 Reconsidering advanced language features 173 8.9.1 Threads 173 8.9.2 Exceptions 174 8.9.3 Virtual methods 174 8.9.4 Garbage collection 174 8.10 Building better sensor node VMs 175 9 Conclusion 177 A LEC benchmark source code 181 B Outlier detection benchmark source code 185 C Heat detection benchmark source code 187 C.1 Calibration 187 C.2 Detection 188 Bibliography 195 | |
dc.language.iso | en | |
dc.title | CapeVM: 用於資源受限的物聯網裝置之快速安全虛擬機 | zh_TW |
dc.title | CapeVM: A Fast and Safe Virtual Machine for Resource-Constrained Internet-of-Things Devices | en |
dc.type | Thesis | |
dc.date.schoolyear | 106-2 | |
dc.description.degree | 博士 | |
dc.contributor.oralexamcommittee | 周百祥(Pai-Hsiang Chou),薛智文(Chih-Wen Hsueh),許永真(Yung-Jen Hsu),林桂傑(Kwei-Jay Lin) | |
dc.subject.keyword | 無線感測網路,物聯網,Java,虛擬機,提前式編譯器,軟體故障隔離, | zh_TW |
dc.subject.keyword | wireless sensor networks,Internet of Things,Java,virtual machines,ahead-of-time compilation,software fault isolation, | en |
dc.relation.page | 206 | |
dc.identifier.doi | 10.6342/NTU201800775 | |
dc.rights.note | 同意授權(全球公開) | |
dc.date.accepted | 2018-05-07 | |
dc.contributor.author-college | 電機資訊學院 | zh_TW |
dc.contributor.author-dept | 資訊工程學研究所 | zh_TW |
顯示於系所單位: | 資訊工程學系 |
文件中的檔案:
檔案 | 大小 | 格式 | |
---|---|---|---|
ntu-107-1.pdf | 5.53 MB | Adobe PDF | 檢視/開啟 |
系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。