Abstract
Developing new process-scheduling components for multiple OSes is challenging because of the tight interdependence between an OS and its scheduler and because of the stringent safety requirements that OS code must satisfy. In this context, a domain-specific language (DSL), designed by a scheduling expert, can encapsulate scheduling expertise and thus facilitate scheduler programming and verification. Nevertheless, designing a DSL that is target-independent and provides safety guarantees requires expertise not only in scheduling but also in the structure of various OSes. To address these issues, we propose the introduction of an OS expert into the DSL design process and the use of a type system to enable the OS expert to express relevant OS properties.
This paper instantiates our approach in the context of the Bossa process-scheduling framework and describes how the types provided by an OS expert are used to ensure that Bossa scheduling components are safe.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Åberg, R.A., Lawall, J.L., Südholt, M., Muller, G., Le Meur, A.-F.: On the automatic evolution of an os kernel using temporal logic and aop. In: Proceedings of the 18th IEEE International Conference on Automated Software Engineering (ASE 2003), Montreal, Canada, October 2003, pp. 196–204. IEEE Computer Society Press, Los Alamitos (2003)
Ball, T., Rajamani, S.K.: Automatically validating temporal safety properties of interfaces. In: Dwyer, M.B. (ed.) SPIN 2001. LNCS, vol. 2057, pp. 103–122. Springer, Heidelberg (2001)
Basu, M., Hayden, G.: Morrisett, and T. von Eicken. A language-based approach to protocol construction. In: Proceedings of the ACM SIGPLAN Workshop on Domain Specific Languages, Paris, France (January 1997)
Bershad, B., Savage, S., Pardyak, P., Gün Sirer, E., Fiuczynski, M., Becker, D., Chambers, C., Eggers, S.: Extensibility, safety and performance in the SPIN operating system. In: Proceedings of the 15th ACM Symposium on Operating Systems Principles, Copper Mountain Resort, CO, USA, December 1995. ACM Operating Systems Reviews, vol. 29(5), pp. 267–283. ACM Press, New York (1995)
Bruce, D.: What makes a good domain-specific language? APOSTLE, and its approach to parallel discrete event simulation. In: Proceedings of the ACM SIGPLAN Workshop on Domain Specific Languages, Paris, France, pp. 17–35 (January 1997)
Chandra, S., Richards, B., Larus, J.: Teapot: Language support for writing memory coherence protocols. In: Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation, pp. 237–248 (1996)
Consel, C., Marlet, R.: Architecturing software using a methodology for language development. In: Palamidessi, C., Meinke, K., Glaser, H. (eds.) ALP 1998 and PLILP 1998. LNCS, vol. 1490, pp. 170–194. Springer, Heidelberg (1998)
Engler, A., Yu, D., Hallem, S., Chou, A., Chelf, B.: Bugs as deviant behavior: A general approach to inferring errors in systems code. In: Proceedings of the 18th ACM Symposium on Operating Systems Principles, Banff, Canada (October 2001)
Engler, D., Chelf, B., Chou, A., Hallem, S.: Checking system rules using systemspecific, programmer-written compiler extensions. In: Proceedings of the Fourth Symposium on Operating Systems Design and Implementation, San Diego, California, pp. 1–16 (October 2000)
Evans, D., Larochelle, D.: Improving security using extensible lightweight static analysis. IEEE Software 19(1), 42–51 (2002)
Hudak, P.: Modular domain specific languages and tools. In: Proceedings of Fifth International Conference on Software Reuse, Victoria, Canada, pp. 134–142 (June 1998)
Jim, T., Morrisett, G., Grossman, D., Hicks, M., Cheney, J., Wang, Y.: Cyclone: A safe dialect of C. In: USENIX Annual Technical Conference, Monterey, CA (June 2002)
Kumar, S., Mandelbaum, Y., Yu, X., Li, K.: ESP: a language for programmable devices. In: Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation, Snowbird, UT, USA, June 2001, pp. 309–320 (2001)
Lawall, J.L., Muller, G., Barreto, L.P.: Capturing OS expertise in a modular type system: the Bossa experience. In: Proceedings of the ACM SIGOPS European Workshop 2002 (EW 2002), Saint-Emilion, France, September 2002, pp. 54–62 (2002)
Muchnick, S.: Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco (1997)
Muller, G., Lawall, J.L., Barreto, L.P., Susini, J.-F.: A framework for simplifying the development of kernel schedulers: Design and performance evaluation. Technical report 03/2/INFO, Ecole des Mines de Nantes (2003)
Necula, G., McPeak, S., Weimer, W.: CCured: type-safe retrofitting of legacy code. In: Conference Record of POPL 2002: The 29th SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Portland, OR, pp. 128–139 (January 2002)
Plotkin, G.D.: A structural approach to operational semantics. Technical Report FN-19, DAIMI, Department of Computer Science, University of Aarhus, Aarhus, Denmark (September 1981)
Réveillère, L., Muller, G.: Improving driver robustness: an evaluation of the Devil approach. In: The International Conference on Dependable Systems and Networks, Göteborg, Sweden, July 2001, pp. 131–140. IEEE Computer Society, Los Alamitos (2001)
Shivers, O.: A universal scripting framework, or Lambda: the ultimate little language. In: Jaffar, J., Yap, R.H.C. (eds.) ASIAN 1996. LNCS, vol. 1179, pp. 254–265. Springer, Heidelberg (1996)
Steere, D., Goel, A., Gruenberg, J., McNamee, D., Pu, C., Walpole, J.: A feedback-driven proportion allocator for real-rate scheduling. In: Proceedings of the Third USENIX Symposium on Operating Systems Design and Implementation (OSDI), New Orleans, LA, February 1999, pp. 145–158 (1999)
Waldspurger, C.A., Weihl, W.E.: Lottery scheduling: Flexible proportionalshare resource management. In: Proceedings of the 1st USENIX Symposium on Operating Systems Design and Implementation (OSDI 1994), Monterey, CA, USA, pp. 1–11 (November 1994)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lawall, J.L., Le Meur, AF., Muller, G. (2004). On Designing a Target-Independent DSL for Safe OS Process-Scheduling Components. In: Karsai, G., Visser, E. (eds) Generative Programming and Component Engineering. GPCE 2004. Lecture Notes in Computer Science, vol 3286. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30175-2_23
Download citation
DOI: https://doi.org/10.1007/978-3-540-30175-2_23
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-23580-4
Online ISBN: 978-3-540-30175-2
eBook Packages: Springer Book Archive