{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:14:13Z","timestamp":1750306453057,"version":"3.41.0"},"reference-count":43,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2015,10,20]],"date-time":"2015-10-20T00:00:00Z","timestamp":1445299200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2015,12,8]]},"abstract":"<jats:p>\n            The performance and characteristics of the storage devices used in embedded systems can have a great influence on the overall end user experience. When building embedded systems or designing new storage device components, it is important for the designers to be able to evaluate how storage devices of different characteristics will affect the overall system performance. Storage device emulation enables a system's performance to be evaluated with simulated storage devices that are not yet available. In storage device emulation, the emulated storage device appears to the operating system (OS) as a real storage device and its service timings are determined by a disk model, which simulates the behavior of the target storage device. In the conventional storage device emulators, because the OS is running continuously in the real-time domain, the amount of time that the emulators can spend on processing each I\/O request is limited by the service time of each corresponding I\/O request. This timing constraint can make emulating high-speed storage devices a challenge for the conventional storage device emulators. In this article, we propose an OS state pausing approach to storage device emulation that can overcome the timing constraints faced by the conventional storage device emulators. By pausing the state of the OS while the storage device emulator is busy, the proposed emulator can spend as much time as it needs for processing each I\/O request without affecting the performance of the emulated storage device as perceived by the OS. This allows the proposed storage device emulator to emulate storage devices that would otherwise be challenging or even impossible for the conventional storage device emulators. In addition, the main task of storage device emulation is offloaded to an external computer to minimize the impact of the emulation workload on the target machine. The proposed storage device emulator is implemented with the Linux OS\n            <jats:sup>1<\/jats:sup>\n            on an embedded system development board. Experimental results show that the full-system performance benchmarks measured with the proposed storage device emulator are within 2% differences compared to the results of the reference system.\n          <\/jats:p>","DOI":"10.1145\/2785969","type":"journal-article","created":{"date-parts":[[2015,10,24]],"date-time":"2015-10-24T18:27:12Z","timestamp":1445711232000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["A Storage Device Emulator for System Performance Evaluation"],"prefix":"10.1145","volume":"14","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-8059-9257","authenticated-orcid":false,"given":"Ming-Ju","family":"Wu","sequence":"first","affiliation":[{"name":"National Chiao Tung University, Hsinchu, Taiwan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Chun-Jen","family":"Tsai","sequence":"additional","affiliation":[{"name":"National Chiao Tung University, Hsinchu, Taiwan"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2015,10,20]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/2078861.2078862"},{"key":"e_1_2_1_2_1","volume-title":"Ganger","author":"Bucy John S.","year":"2008","unstructured":"John S. Bucy, Jiri Schindler, Steven W. Schlosser, and Gregory R. Ganger. 2008. The DiskSim Simulation Environment Version 4.0 Reference Manual. CMU-PDL-08-101, Parallel Data Laboratory, Carnegie Mellon University."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/358818.358821"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2010.14"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2146417.2146426"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1289927.1289955"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPP.2011.15"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/12.689646"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/378995.379000"},{"key":"e_1_2_1_10_1","volume-title":"Retrieved","author":"Gleixner Thomas","year":"2006","unstructured":"Thomas Gleixner and Ingo Molnar. 2006. Hrtimers - subsystem for high-resolution kernel timers. (Jan. 2006). Retrieved July 10, 2013 from https:\/\/www.kernel.org\/doc\/Documentation\/timers\/hrtimers.txt."},{"key":"e_1_2_1_11_1","volume-title":"Proceedings of the Linux Symposium. 333--346","author":"Gleixner Thomas","year":"2006","unstructured":"Thomas Gleixner and Douglas Niehaus. 2006. Hrtimers and beyond: Transforming the Linux time subsystems. In Proceedings of the Linux Symposium. 333--346."},{"key":"e_1_2_1_12_1","volume-title":"Retrieved","author":"Gleixner Thomas","year":"2007","unstructured":"Thomas Gleixner. 2007. High resolution timers and dynamic ticks design notes. Retrieved July 10, 2013 from https:\/\/www.kernel.org\/doc\/Documentation\/timers\/highres.txt."},{"volume-title":"Intel 64 and IA-32 architectures software developer's manual. Order Number: 325462-048US","key":"e_1_2_1_13_1","unstructured":"Intel. 2013. Intel 64 and IA-32 architectures software developer's manual. Order Number: 325462-048US. Intel Corporation."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISPASS.2014.6844457"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/502059.502046"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/345063.339354"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.5555\/1973333.1973339"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.5555\/1267680.1267687"},{"volume-title":"Open source audio and video processing tools. Retrieved","year":"2014","key":"e_1_2_1_19_1","unstructured":"Libav. 2014. Open source audio and video processing tools. Retrieved June 2014 from http:\/\/libav.org\/."},{"key":"e_1_2_1_20_1","unstructured":"Linux Kernel. 2013a. Mainline Linux kernel source code. Retrieved from https:\/\/www.kernel.org\/."},{"key":"e_1_2_1_21_1","unstructured":"Linux Kernel. 2013b. Linux kernel archive version 3.10. Retrieved from https:\/\/www.kernel.org\/pub\/linux\/kernel\/v3.0\/linux-3.10.tar.bz2."},{"key":"e_1_2_1_22_1","unstructured":"Linux Kernel. 2014. ftrace - Function Tracer. Retrieved from https:\/\/www.kernel.org\/doc\/Documentation\/trace\/ftrace.txt."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2385603.2385607"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/LES.2012.2213795"},{"key":"e_1_2_1_25_1","unstructured":"Linaro. 2014. Linaro 13.11 nano build. Retrieved from http:\/\/www.linaro.org\/downloads\/1311."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1712605.1712611"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/88.473612"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/244804.244807"},{"key":"e_1_2_1_29_1","volume-title":"Proceedings of the Linux Symposium. 219--232","author":"Stultz John","year":"2005","unstructured":"John Stultz, Nishanth Aravamudan, and Darren Hart. 2005. We are not getting any younger: A new approach to time and timers. In Proceedings of the Linux Symposium. 219--232."},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380241102"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1367829.1367831"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.simpat.2006.09.013"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/233008.233025"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.5555\/1247360.1247413"},{"key":"e_1_2_1_35_1","volume-title":"Wright and Erez Zadok","author":"Charles","year":"2007","unstructured":"Charles P. Wright and Erez Zadok. 2007. The Auto-pilot Benchmarking Suite Version 2.4. Retrieved from http:\/\/www.filesystems.org\/project-autopilot.html."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1721695.1721697"},{"key":"e_1_2_1_37_1","unstructured":"Wikipedia. 2014a. Apple A7. Retrieved from http:\/\/en.wikipedia.org\/wiki\/Apple_A7."},{"key":"e_1_2_1_38_1","unstructured":"Wikipedia. 2014b. Noop scheduler. Retrieved from http:\/\/en.wikipedia.org\/wiki\/Noop_scheduler."},{"key":"e_1_2_1_39_1","unstructured":"Xilinx. 2013. Zynq-7000 All Programmable SoC Technical Reference Manual UG585 (v1.6.1). Xilinx."},{"key":"e_1_2_1_40_1","unstructured":"Xilinx. 2014. The official Linux kernel from Xilinx. Retrieved from https:\/\/github.com\/xilinx."},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/MSST.2013.6558443"},{"key":"e_1_2_1_42_1","unstructured":"ZedBoard. 2014. ZedBoard Documentations. Retrieved from http:\/\/www.zedboard.org\/product\/zedboard."},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/2480741.2480746"}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2785969","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2785969","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T05:43:14Z","timestamp":1750225394000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2785969"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015,10,20]]},"references-count":43,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2015,12,8]]}},"alternative-id":["10.1145\/2785969"],"URL":"https:\/\/doi.org\/10.1145\/2785969","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"type":"print","value":"1539-9087"},{"type":"electronic","value":"1558-3465"}],"subject":[],"published":{"date-parts":[[2015,10,20]]},"assertion":[{"value":"2014-02-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2015-05-01","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2015-10-20","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}