|
ABSTRACT
We propose a dynamic aspect-oriented system for operating system (OS) kernels written in the C language. Unlike other similar systems, our system named KLASY allows the users to pointcut not only function calls but also member accesses to structures. This feature helps the developers who want to use aspects for profiling or debugging an OS kernel. To enable this, KLASY uses a modified C compiler for compiling an OS kernel. The modified compiler produces extended symbol information, which enables a dynamic weaver to find the memory addresses of join point shadows during runtime. Since a normal C compiler produces only limited symbol information, other dynamic aspect-oriented systems for C have been able to pointcut only function calls. We have implemented KLASY for Linux with the GNU C compiler. Our experiments revealed that KLASY achieves sufficient execution performance for practical use. Our case studies disclosed that KLASY is useful for real applications.
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
|
Unixbench. http://www.tux.org/pub/tux/niemi/unixbench/.
|
| |
2
|
S. Almajali and T. Elrad. Coupling availability and efficiency for aspect oriented runtime weaving systems. In Proceedings of the Second Dynamic Aspects Workshop (DAW05), march 2005.
|
| |
3
|
Apache HTTP Server Project. Apache HTTP server benchmarking tool. http://httpd.apache.org/.
|
| |
4
|
Apache Software Foundation. Apache Tomcat. http://tomcat.apache.org/.
|
 |
5
|
Christoph Bockisch , Michael Haupt , Mira Mezini , Klaus Ostermann, Virtual machine support for dynamic join points, Proceedings of the 3rd international conference on Aspect-oriented software development, p.83-92, March 22-24, 2004, Lancaster, UK
[doi> 10.1145/976270.976282]
|
| |
6
|
B. M. Cantrill, M. W. Shapiro, and A. H. Leventhal. Dynamic instrumentation of production systems. In Proceedings of the USENIX Annual Technical Conference, pages 15--28. USENIX Association, June 2004.
|
 |
7
|
|
 |
8
|
|
 |
9
|
|
 |
10
|
Rémi Douence , Thomas Fritz , Nicolas Loriant , Jean-Marc Menaud , Marc Ségura-Devillechaise , Mario Südholt, An expressive aspect language for system applications with Arachne, Proceedings of the 4th international conference on Aspect-oriented software development, p.27-38, March 14-18, 2005, Chicago, Illinois
[doi> 10.1145/1052898.1052901]
|
 |
11
|
|
| |
12
|
M. Engel and B. Freisleben. Using a low-level virtual machine to improve dynamic aspect support in operating system kernels. In Proceedings of the Fourth AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software, march 2005.
|
| |
13
|
K. Fraser and F. Chang. Operating system i/o speculation: How two invocations are faster than one. In Proceedings of the USENIX Annual Technical Conference (General Track), pages 325--338. USENIX Association, June 2003.
|
| |
14
|
D. P. Ghormley, D. Petrou, S. H. Rodrigues, and T. E. Anderson. SLIC: An extensibility system for commodity operating systems. In Proceedings of the USENIX Annual Technical Conference (NO 98), june 1998.
|
 |
15
|
Michael Haupt , Mira Mezini , Christoph Bockisch , Tom Dinkelaker , Michael Eichberg , Michael Krebs, An execution layer for aspect-oriented programming languages, Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments, June 11-12, 2005, Chicago, IL, USA
[doi> 10.1145/1064979.1065000]
|
| |
16
|
H. Hibino, K. Kourai, and S. Chiba. Difference of degradation schemes among operating systems. In Proceedings of Workshop on Dependable Software - Tools and Methods, Dependable Systems and Networks (DSN-2005), pages 172--179, June 2005.
|
| |
17
|
Hitachi, Ltd. and Fujitsu, Ltd. Linux kernel state tracer, 2001, 2005. http://lkst.sourceforge.net/.
|
| |
18
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
| |
19
|
|
| |
20
|
H. Masuhara, G. Kiczales, and C. Dutchyn. Compilation semantics of aspect-oriented programs. In Proc. of Foundations of Aspect-Oriented Languages Workshop, AOSD 2002, pages 17--26, 2002.
|
| |
21
|
|
| |
22
|
|
| |
23
|
V. Prasad, W. Cohen, F. C. Eigler, M. Hunt, J. Keniston, and B. Chen. Locating system problems using dynamic instrumentation. In Proceedings of the Linux Symposium, volume 2, pages 49--64, july 2005.
|
| |
24
|
Red Hat, Inc. Red hat content accelerator (tux), 2001, 2002. http://www.redhat.com/docs/manuals/tux/.
|
| |
25
|
J. Roberson. Ule: A modern scheduler for FreeBSD. In Proceedings of BSDCon '03, pages 17--28. USENIX Association, September 2003.
|
 |
26
|
Marc Ségura-Devillechaise , Jean-Marc Menaud , Gilles Muller , Julia L. Lawall, Web cache prefetching as an aspect: towards a dynamic-weaving based solution, Proceedings of the 2nd international conference on Aspect-oriented software development, p.110-119, March 17-21, 2003, Boston, Massachusetts
[doi> 10.1145/643603.643615]
|
| |
27
|
|
| |
28
|
|
| |
29
|
K. Yaghmour and M. R. Dagenais. Measuring and characterizing system behavior using kernel-level event logging. In Proceedings of the USENIX Annual Technical Conference, pages 13--26, june 2000.
|
| |
30
|
Shuji Yamamura , Akira Hirai , Mitsuru Sato , Masao Yamamoto , Akira Naruse , Kouichi Kumon, Speeding Up Kernel Scheduler by Reducing Cache Misses, Proceedings of the FREENIX Track: 2002 USENIX Annual Technical Conference, p.275-285, June 10-15, 2002
|
| |
31
|
C. Zhang. TinyC2: Towards building a dynamic weaving aspect language for c. In FOAL 2003 Proceedings Foundation of Aspect-Oriented Languages Workshop at AOSD 2003, march 2003.
|
CITED BY
|
Daniel Lohmann , Jochen Streicher , Olaf Spinczyk , Wolfgang Schröder-Preikschat, Interrupt synchronization in the CiAO operating system: experiences from implementing low-level system policies by AOP, Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software, p.6-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|