|
ABSTRACT
Prior to their deployment on an embedded system, operating systems are commonly tailored to reduce code size and improve runtime performance. Program specialization is a promising match for this process: it is predictable and modules, and it allows the reuse of previously implemented specializations. A specialization engine for embedded systems must overcome three main obstacles: (i) Reusing existing compilers for embedded systems, (ii) supporting specialization on a resource-limited system and (iii) coping with dynamic applications by supporting specialization on demand. In this article, we describe a runtime specialization infrastructure that addresses these problems. Our solution proposes: (i) Specialization in two phases of which the former generates specialized C templates and the latter uses a dedicated compiler to generate efficient native code. (ii) A virtualization mechanism that facilitates specialization of code at a remote location. (iii) An API and supporting OS extensions that allow applications to produce, manage and dispose of specialized code. We evaluate our work through two case studies: (i) The TCP/IP implementation of Linux and (ii) The TUX embedded web server. We report appreciable improvements in code size and performance. We also quantify the overhead of specialization and argue that a specialization server can scale to support a sizable workload.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Stephen Adams , Thomas Ball , Manuvir Das , Sorin Lerner , Sriram K. Rajamani , Mark Seigle , Westley Weimer, Speeding Up Dataflow Analysis Using Flow-Insensitive Pointer Analysis, Proceedings of the 9th International Symposium on Static Analysis, p.230-246, September 17-20, 2002
|
 |
2
|
B. N. Bershad , S. Savage , P. Pardyak , E. G. Sirer , M. E. Fiuczynski , D. Becker , C. Chambers , S. Eggers, Extensibility safety and performance in the SPIN operating system, Proceedings of the fifteenth ACM symposium on Operating systems principles, p.267-283, December 03-06, 1995, Copper Mountain, Colorado, United States
|
| |
3
|
|
 |
4
|
|
| |
5
|
|
| |
6
|
|
 |
7
|
|
 |
8
|
|
 |
9
|
D. R. Engler , M. F. Kaashoek , J. O'Toole, Jr., Exokernel: an operating system architecture for application-level resource management, Proceedings of the fifteenth ACM symposium on Operating systems principles, p.251-266, December 03-06, 1995, Copper Mountain, Colorado, United States
|
| |
10
|
Evans Data Corporation. 2003. Embedded systems development survey.
|
 |
11
|
Bryan Ford , Godmar Back , Greg Benson , Jay Lepreau , Albert Lin , Olin Shivers, The Flux OSKit: a substrate for kernel and language research, Proceedings of the sixteenth ACM symposium on Operating systems principles, p.38-51, October 05-08, 1997, Saint Malo, France
|
| |
12
|
Hewlett-Packard. 1996. Netperf: A network performance benchmark.
|
| |
13
|
|
| |
14
|
|
 |
15
|
|
| |
16
|
|
| |
17
|
Lee, H. B., Diwan, A., and Moss, J. E. B. 2004. Design, implementation, and evaluation of a compilation server. Technical rep. CU-CS-978-04, University of California at Boulder.
|
| |
18
|
Linux Devices Magazine. 2003. Wind river's bruggeman defines Device Software Optimization (DSO).
|
| |
19
|
Linux Devices Magazine. 2003. New linksys wireless ap runs 3rd-party embedded linux. http://www.linuxdevices.com/news/NS3238024255.html.
|
| |
20
|
LXR. The LXR source-code cross-referencing system for Linux. URL: http://lxr.linux.no/.
|
| |
21
|
|
 |
22
|
Dylan McNamee , Jonathan Walpole , Calton Pu , Crispin Cowan , Charles Krasic , Ashvin Goel , Perry Wagle , Charles Consel , Gilles Muller , Renauld Marlet, Specialization tools and techniques for systematic optimization of system software, ACM Transactions on Computer Systems (TOCS), v.19 n.2, p.217-251, May 2001
[doi> 10.1145/377769.377778]
|
| |
23
|
G. Muller , R. Marlet , E.-N. Volanschi , C. Consel , C. Pu , A. Goel, Fast, Optimized Sun RPC Using Automatic Program Specialization, Proceedings of the The 18th International Conference on Distributed Computing Systems, p.240, May 26-29, 1998
|
| |
24
|
|
| |
25
|
|
| |
26
|
Owens, K. 2006. kbuild. URL: http://kbuild.sourceforge.net/.
|
| |
27
|
PicoFreeBSD. Pico freebsd. URL: http://people.freebsd.org/picobsd/.
|
 |
28
|
C. Pu , T. Autrey , A. Black , C. Consel , C. Cowan , J. Inouye , L. Kethana , J. Walpole , K. Zhang, Optimistic incremental specialization: streamlining a commercial operating system, Proceedings of the fifteenth ACM symposium on Operating systems principles, p.314-321, December 03-06, 1995, Copper Mountain, Colorado, United States
|
 |
29
|
Margo I. Seltzer , Yasuhiro Endo , Christopher Small , Keith A. Smith, Dealing with disaster: surviving misbehaved kernel extensions, Proceedings of the second USENIX symposium on Operating systems design and implementation, p.213-227, October 29-November 01, 1996, Seattle, Washington, United States
|
| |
30
|
TinyLinux. Tinylinux. URL: http://tiny.seul.org/en/.
|
| |
31
|
|
 |
32
|
|
|