Abstract
This paper studies the problem of resource availability in the context of mobile code for embedded systems such as smart cards. It presents an architecture dedicated to controlling the usage of a single resource in a multi-process operating system. Its specificity lies in its ability to improve the task scheduling in order to spare resources. Our architecture comprises two parts. The first statically computes the resource needs using a dedicated lattice. The second guarantees at runtime that there will always be enough resources for every application to terminate, thanks to an efficient deadlock-avoidance algorithm. The example studied here is an implementation on a JVM (Java Virtual Machine) for smart cards, dealing with a realistic subset of the Java bytecode.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Baudet, M.: Contrôle de ressource et évitement des interblocages sur la mémoire. Master’s thesis, DEA Programmation (Paris), Gemplus Research Labs (September 2002)
Casset, L., Burdy, L., Requet, A.: Formal Development of an embedded verifier for Java Card Byte Code. In: The IEEE International Conference on Dependable Systems & Networks (DSN), Washington, D.C., USA, June 2002, pp. 51–58 (2002)
Chang, B.-M., Jo, J.-W., Yi, K., Choe, K.-M.: Interprocedural Exception Analysis for Java. In: 16th ACM Symposium on Applied Computing (SAC), Las Vegas, USA (March 2001)
Chen, Z.: Java CardTM Technology for Smart Cards: Architecture and Programmer’s Guide. The JavaTM Series. Addison Wesley, Reading (2000)
Choi, J.-D., Gupta, M., Serrano, M., Sreedhar, V.C., Midkiff, S.: Escape Analysis for JavaTm. In: ACM conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA 1999), Denver, USA, pp. 2–19 (1999)
Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: The 4th Annual ACM SIGPLAN-SIGACT, Los Angeles, California, pp. 238–252 (1977)
Crary, K., Weirich, S.: Resource Bound Certification. In: Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), Boston, MA, January 2000, pp. 184–198 (2000)
Czajkowski, G., von Eicken, T.: JRes: A Resource Accounting Interface for Java. In: Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Canada, pp. 21–35 (1998)
DeFouw, G., Grove, D., Chambers, C.: Fast Interprocedural Class Analysis. In: Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), San Diego, CA, USA, pp. 222–236 (1998)
Deville, D., Galland, A., Grimaud, G., Jean, S.: Assessing the future of Smart Card Operating Systems. In: 4th e-Smart Conference, Sophia Antipolis, France, September 17–19 (2003)
Deville, D., Grimaud, G.: Building an “impossible” verifier on a Java Card. In: 2nd USENIX Workshop on Industrial Experiences with Systems Software (WIESS), Boston, USA (December 2002)
Dijkstra, E.W.: Cooperating sequential processes. In: Genuys, F. (ed.) Programming Languages: NATO Advanced Study Institute, pp. 43–112. Academic Press, London (1968)
Ezpeleta, J., Tricas, F., Garcia-Valles, F., Colom, J.: A banker’s solution for deadlock avoidance in FMS with flexible routing and multiresource states. IEEE Transactions on Robotics & Automation 18(4), 621–625 (2002)
Gold, E.M.: Deadlock prediction: Easy and difficult cases. SIAM Journal on Computing 7(3), 320–336 (1978)
Habermann, N.A.: Prevention of system deadlocks. Communications of the ACM 12(7), 373–377 (1969)
Hofmann, M., Jost, S.: Static prediction of heap space usage for first-order functional programs. In: Proceedings of the 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), New Orleans (2003)
JavaTM 2 Platform Micro Edition (J2METM). Connected Limited Device Configuration (CLDC) Specification Version 1.0, http://java.sun.com/j2me/
Knuth, D.E.: The Art of Computer Programming, 2nd edn., vol. 3. Addison Wesley Longman Publishing Co., Inc., Amsterdam (1998)
Kömmerling, O., Kuhn, M.G.: Design Principles for Tamper-Resistant Smartcard Processors. In: USENIX Workshop on Smartcard Technology (Smartcard 1999), Chicago, Illinois, USA, May 10–11, pp. 9–20 (1999)
Lagosanto, L.: Next-Generation Embedded Java Operating System for Smart Cards. In: Gemplus Developer Conference, Singapore (November 2002)
Lawley, M., Reveliotis, S.: Deadlock Avoidance for Sequential Resource Allocation Systems: Hard and Easy Cases. The Journal of FMS 13(4), 385–404 (2001)
le Sommer, N., Guidec, F.: A Contract-Based Approach of Resource-Constrained Software Deployment. In: Bishop, J.M. (ed.) CD 2002. LNCS, vol. 2370, pp. 15–30. Springer, Heidelberg (2002)
Leroy, X.: Bytecode Verification for Java smart card. Software Practice & Experience 32, 319–340 (2002)
Mobile Resource Guarantees (MRG). European Project IST-2001-33149 (2002), http://www.dcs.ed.ac.uk/home/mrg/
Necula, G.C.: Proof–Carrying Code. In: the 24th ACM SIGPLAN-SIGACT symposium on principles of programming Languages, Paris, France (January 1997)
Quisquater, J.-J.: The adolescence of smart cards. Future Generation Computer Systems 13, 3–7 (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Galland, A., Baudet, M. (2003). Controlling and Optimizing the Usage of One Resource. In: Ohori, A. (eds) Programming Languages and Systems. APLAS 2003. Lecture Notes in Computer Science, vol 2895. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-40018-9_14
Download citation
DOI: https://doi.org/10.1007/978-3-540-40018-9_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20536-4
Online ISBN: 978-3-540-40018-9
eBook Packages: Springer Book Archive