skip to main content
research-article

Self-stabilizing device drivers

Authors Info & Claims
Published:12 December 2008Publication History
Skip Abstract Section

Abstract

This work presents approaches for designing the input-output device management components of self-stabilizing operating systems. As an example, we demonstrate the nonstability of the ata standard protocol for storage devices. We state the requirements that an operating system and I/O devices should satisfy in order to become self-stabilizing. Then we suggest two solutions to satisfy these requirements. The first uses leases to guarantee progress from the I/O device side. The second assumes stabilization of the I/O device, and uses snapshots to perform consistency checks. A device driver for a PC hard-disk, using the first solution, was implemented. By supplying an infrastructure for practical self-stabilizing systems, robust and dependable systems can be achieved.

References

  1. Accetta, M., Baron, R., Bolosky, W., Golub, D., Rashid, R., Tevanian, A., and Young, M. 1986. MACH: a new kernel foundation for UNIX development. In Proceedings of the USENIX Summer Conference. USENIX Association, Berkeley, CA, 93--112.Google ScholarGoogle Scholar
  2. Ball, T., Bounimova, E., Cook, B., Levin, V., Lichtenberg, J., McGarvey, C., Ondrusek, B., Rajamani, S. K., and Ustuner, A. 2006. Thorough static analysis of device drivers. In Proceedings of European Systems Conference (EuroSys). ACM, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Barham, P., Dragovich, B., Fraser, K., Hand, S., Ho, A., and Pratt, I. 2004. Safe hardware access with the Xen virtual machine monitor. In Proceedings of the 1st Workshop on Operating System and Architectural Support for On-Demand IT Infrastructure.Google ScholarGoogle Scholar
  4. Brukman, O., Dolev, S., and Kolodner, H. 2003. Self-stabilizing autonomic recoverer for eventual byzantine software. In Proceedings of IEEE International Conference on Software-Science Technology & Engineering (SwSTE). IEEE Computer Society, Los Alamitos, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bochs. Bochs IA-32 Emulator Project. http://bochs.sourceforge.net/Google ScholarGoogle Scholar
  6. Ball, T. and Rajamani, S. K. 2002. The SLAM project: debugging system software via static analysis. In Proceedings of the 29th Symposium on Principles of Programming Languages (POPL). ACM, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Cook, B., Podelski, A., and Rybalchenko, A. 2006. Terminator: beyond safety. In Proceedings of the 18th International Conference on Computer-Aided Verification, Lecture Notes in Computers Science, vol. 3414. Springer, Berlin, Germany. 415--418. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Chou, A., Yang, J., Chelf, B., Hallem, S., and Engler D. 2001. An empirical study of operating systems errors. In Proceedings of the 18th ACM Symposium on Operating Systems Principles (SOSP). ACM, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. DeLine, R. and Fähndrich, M. 2001. Enforcing high-level protocols in low-level software. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). ACM, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Dolev, S. and Haviv, Y. 2006. Self-stabilizing microprocessor: analyzing and overcoming soft errors. IEEE Trans. Comput. 55, 4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Dolev, S., Haviv, Y., and Sagiv, M. 2005. Self-stabilization preserving compiler. In Proceedings of the 7th International Symposium on Self-Stabilizing Systems (SSS). Lecture Notes in Computer Science, vol. 3764. Springer, Berlin, Germany. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Dijkstra, E. W. 1974. Self-stabilizing systems in spite of distributed control. Comm. ACM, 17, 11, 643--644. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Dolev, S. 2000. Self-Stabilization, The MIT Press, Cambridge. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Dolev, S. and Yagel, R. 2004. Toward self-stabilizing operating systems. In Proceedings of the 15th International Conference on Database and Expert Systems Applications, 2nd International Workshop on Self-Adaptive and Autonomic Computing Systems (SAACS,DEXA), 684--688, Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Dolev, S. and Yagel, R. 2005. Memory management for self-stabilizing operating systems. In Proceedings of the 7th Symposium on Self Stabilizing Systems (SSS). Lecture Notes in Computers Science, vol. 3764. Springer, Berlin, Germany. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Hunt, G. C., Larus, J. R., Abadi, M., Aiken, M., Barham, P., Fahndrich, M., Hawblitzel, C., Hodson, O., Levi, S., Murphy, N., Steensgaard, B., Tarditi, D., Wobber, T., and Zill, B. 2005. An overview of the Singularity project, Tech. rep. MSR-TR-2005-135, Microsoft Corporation, Redmond, WA.Google ScholarGoogle Scholar
  17. Löeser, H. J., Mehnert, F., Reuther, L., Pohlack, M., and Warg, A. 2004. An I/O architecture for mikrokernel-based operating systems. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI). USENIX Association, Washington, DC.Google ScholarGoogle Scholar
  18. IBM. 2001. Autonomic computing initiative. http://www.research.ibm.com/autonomic.Google ScholarGoogle Scholar
  19. Intel Corporation. 2007. The IA-32 Intel architecture software developer's manual. http://developer.intel.com/design/pentium4/documentation.htm.Google ScholarGoogle Scholar
  20. Leslie, B. and B. Heiser, B. 2003. Towards untrusted device drivers. Tech. rep. UNSW-CSE-TR-0303, School of Computer Science and Engineering UNSW.Google ScholarGoogle Scholar
  21. LeVasseur, J. and Uhlig, V. 2004. A sledgehammer approach to reuse of legacy device drivers. In Proceedings of the 11th ACM SIGOPS European Workshop. ACM, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. LeVasseur, J., Uhlig, V., Stoess, J., and Götz, S. 2004. Unmodified device driver reuse and improved system dependability via virtual machines. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI). USENIX Association, Washington, DC. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Mukherjee, S. S., Weaver, C., Emer, J., Reinhardt, S. K., and Austin, T. 2003. A systematic methodology to compute the architectural vulnerability factors for a high-performance microprocessor. In Proceedings of the 36th Annual International Symposium on Microarchitecture (MICRO). IEEE Computer Society, Washington, DC. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. nasm. The netwide assembler. http://nasm.sourceforge.net.Google ScholarGoogle Scholar
  25. Neumann, P. G., Boyer, R. S., Feiertag, R. J., Levitt, K. N., and Robinson, L. 1980. A provably secure operating system: the system, its applications, and proofs, Tech. rep. CSL-116, SRI International.Google ScholarGoogle Scholar
  26. Prabhakaran, V., Bairavasundaram, L. N., Agrawal, N., Gunawi, H. S., Arpaci-Dusseau, A. C., and Arpaci-Dusseau, R. H. 2005. IRON file systems. In Proceedings of the 20th ACM Symposium on Operating Systems Principles (SOSP). ACM, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Patterson, D., Brown, A., Broadwell, P., Candea, G., Chen, M., Cutler, J., Enriquez, P., Fox, A., Kiciman, E., Merzbacher, M., Oppenheimer, D., Sastry, N., Tetzlaff, W., Traupman, J., and Treuhaft, N. 2002. Recovery oriented computing (ROC): motivation, definition, techniques and case studies. Tech. rep. UCB/CSD-02-1175, UC Berkeley Computer Science, Berkeley, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Swift, M. 2005. Improving the reliability of commodity operating systems, Ph.D. dissertation, University of Washington. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Swift, M., Annamalai, M., Bershad, B. N., and Levy, H. M. 2004. Recovering device drivers. In Proceedings of the 6th ACM/USENIX Symposium on Operating Systems Design and Implementation (ODSI). USENIX Association, Washington, DC. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Swift, M., Bershad, B. N., and Levy, H. M. 2003. Improving the reliability of commodity operating systems. In Proceedings of the 19th ACM Symposium on Operating Systems Principles (SOSP). ACM, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Shapiro, J., Doerrie, M. S., Northup, E., Sridhar, S., and Miller, M. 2005. Towards a verified, general-purpose operating system kernel. http://www.coyotos.org.Google ScholarGoogle Scholar
  32. sos. http://www.cs.bgu.ac.il/~yagel/sos.Google ScholarGoogle Scholar
  33. Spear, M., Roeder, T., Hodson, O., Hunt, G., and Levi, S. 2006. Solving the starting problem: device drivers as self-describing artifacts. In Proceedings of the EuroSys. ACM, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. sss. http://www.selfstabilization.org.Google ScholarGoogle Scholar
  35. Sun Microsystems, Inc. 2004. Predictive self-healing in the Solaris#8482; 10 operating system. White paper http://www.sun.com/software/solaris/ds/self_healing.pdf.Google ScholarGoogle Scholar
  36. T13. International Committee for Information Technology Standards. ATA Storage Interface - T13/1532D Vol. 2. Rev. 4a (working drafts). http://www.t13.org/#Projects.Google ScholarGoogle Scholar
  37. Tanenbaum, A. S. and Woodhull, A. S. 2006. Operating Systems Design and Implementation. 3rd Ed, Prentice Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Van Maren, K. T. 1999. The Fluke device driver framework. Master's thesis, The University of Utah.Google ScholarGoogle Scholar

Index Terms

  1. Self-stabilizing device drivers

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM Transactions on Autonomous and Adaptive Systems
          ACM Transactions on Autonomous and Adaptive Systems  Volume 3, Issue 4
          November 2008
          171 pages
          ISSN:1556-4665
          EISSN:1556-4703
          DOI:10.1145/1452001
          Issue’s Table of Contents

          Copyright © 2008 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 12 December 2008
          • Accepted: 1 September 2008
          • Revised: 1 July 2008
          • Received: 1 February 2007
          Published in taas Volume 3, Issue 4

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!