skip to main content
research-article

Predictable and configurable component-based scheduling in the Composite OS

Published:06 December 2013Publication History
Skip Abstract Section

Abstract

This article presents the design of user-level scheduling hierarchies in the Composite component-based system. The motivation for this is centered around the design of a system that is both dependable and predictable, and which is configurable to the needs of specific applications. Untrusted application developers can safely develop services and policies, that are isolated in protection domains outside the kernel. To ensure predictability, Composite enforces timing control over user-space services. Moreover, it must provide a means by which asynchronous events, such as interrupts, are handled in a timely manner without jeopardizing the system. Towards this end, we describe the features of Composite that allow user-defined scheduling policies to be composed for the purposes of combined interrupt and task management. A significant challenge arises from the need to synchronize access to shared data structures (e.g., scheduling queues), without allowing untrusted code to disable interrupts. Additionally, efficient upcall mechanisms are needed to deliver asynchronous event notifications in accordance with policy-specific priorities, without undue recourse to schedulers. We show how these issues are addressed in Composite, by comparing several hierarchies of scheduling polices, to manage both tasks and the interrupts on which they depend. Studies show how it is possible to implement guaranteed differentiated services as part of the handling of I/O requests from a network device while diminishing livelock. Microbenchmarks indicate that the costs of implementing and invoking user-level schedulers in Composite are on par with, or less than, those in other systems, with thread switches more than twice as fast as in Linux.

References

  1. Accetta, M. J., Baron, R. V., Bolosky, W. J., Golub, D. B., Rashid, R. F., Tevanian, A., and Young, M. 1986. Mach: A new kernel foundation for unix development. In USENIX Summer Conference. 93--113.Google ScholarGoogle Scholar
  2. Anderson, J. H., Ramamurthy, S., and Jeffay, K. 1997. Real-time computing with lock-free shared objects. ACM Trans. Comput. Syst. 15, 2, 134--165. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Anderson, T. E., Bershad, B. N., Lazowska, E. D., and Levy, H. M. 1991. Scheduler activations: effective kernel support for the user-level management of parallelism. In Proceedings of the 13th ACM Symposium on Operating Systems Principles (SOSP'91). ACM Press, New York, 95--109. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Aswathanarayana, T., Niehaus, D., Subramonian, V., and Gill, C. 2005. Design and performance of configurable endsystem scheduling mechanisms. In Proceedings of the 11th IEEE Real Time Symposium on Embedded Technology and Applications (RTAS'05). IEEE, 32--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Barreto, L. P. and Muller, G. 2002. Bossa: a language-based approach to the design of real-time schedulers. In Proceedings of the 10th International Conference on Real-Time Systems (RTS'02). 19--31.Google ScholarGoogle Scholar
  6. Bershad, B. N., Redell, D. D., and Ellis, J. R. 1992. Fast mutual exclusion for uniprocessors. In Proceedings of the 5th International Conference on Architectural Support for Programming Languages and Operating Systems. ACM, New York, 223--233. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Bruno, J., Brustoloni, J., Gabber, E., Silberschatz, A., and Small, C. 1999. Pebble: A component-based operating system for embedded applications. In Proceedings of the. USENIX Workshop on Embedded Systems. 55--65. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Buttazzo, G. C. 2005. Rate monotonic vs. edf: judgment day. Real-Time Syst. 29, 1, 5--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. del Foyo, L. E. L., Mejia-Alvarez, P., and de Niz, D. 2006. Predictable interrupt management for real time kernels over conventional pc hardware. In Proceedings of the 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06). IEEE, 14--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Druschel, P. and Banga, G. 1996. Lazy receiver processing (lrp): A network subsystem architecture for server systems. In Proceedings of the 2nd USENIX Symposium on Operating Systems Design and Implementation (OSDI'96). ACM Press, New York, 261--275. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Ford, B. and Lepreau, J. 1994. Evolving mach 3.0 to a migrating thread model. In Proceedings of the USENIX Technical Conference and Exhibition. 97--114. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Ford, B. and Susarla, S. 1996. Cpu inheritance scheduling. In Proceedings of the 2nd USENIX Symposium on Operating Systems Design and Implementation (OSDI'96). ACM Press, New York, 91--105. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Franke, H., Russell, R., and Kirkwood, M. 2002. Fuss, futexes and furwocks: Fast userlevel locking in linux. In Proceedings of the Ottawa Linux Symposium.Google ScholarGoogle Scholar
  14. Fry, G. and West, R. 2007. On the integration of real-time asynchronous event handling mechanisms with existing operating systemservices. In Proceedings of the International Conference on Embedded Systems & Applications. 83--90.Google ScholarGoogle Scholar
  15. Gai, P., Abeni, L., Giorgi, M., and Buttazzo, G. 2001. A new kernel approach for modular real-time systems development. In Proceedings of the 13th IEEE Euromicro Conference on Real-Time Systems. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Gamsa, B., Krieger, O., Appavoo, J., and Stumm, M. 1999. Tornado: maximizing locality and concurrency in a shared memory multiprocessor operating system. In Proceedings of the 3rd Symposium on Operating Systems Design and Implementation (OSDI'99). USENIX Association, Berkeley, CA, 87--100. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Goyal, P., Guo, X., and Vin, H. M. 1996. A hierarchial CPU scheduler for multimedia operating systems. In Proceedings of the 2nd USENIX Symposium on Operating Systems Design and Implementation (OSDI'96). ACM, New York, 107--121. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Hohmuth, M. and Härtig, H. 2001. Pragmatic nonblocking synchronization for real-time systems. In Proceedings of the USENIX Annual Technical Conference. 217--230. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Liedtke, J. 1995. On micro-kernel construction. In Proceedings of the 15th ACM Symposium on Operating System Principles. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Mehnert, F., Hohmuth, M., and Härtig, H. 2002. Cost and benefit of separate address spaces in real-time operating systems. In Proceedings of the 23rd IEEE Real-Time Systems Symposium. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Mogul, J., Rashid, R., and Accetta, M. 1987. The packer filter: an efficient mechanism for user-level network code. In Proceedings of the 11th ACM Symposium on Operating Systems Principles (SOSP'87). ACM, New York, 39--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Mogul, J. C. and Ramakrishnan, K. K. 1997. Eliminating receive livelock in an interrupt-driven kernel. ACM Trans. Comput. Syst. 15, 3, 217--252. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Pagh, R. and Rodler, F. F. 2001. Cuckoo hashing. In Proceedings of the 9th Annual European Symposium on Algorithms. Lecture Notes in Computer Science, vol. 2161, 121--144. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Parmer, G. 2010. The case for thread migration: Predictable ipc in a customizable and reliable OS. In Proceedings of the Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT'10).Google ScholarGoogle Scholar
  25. Parmer, G. and Song, J. 2010. Customizable and predictable synchronization in a component-based OS. In Proceedings of the International Conference on Embedded Systems and Applications.Google ScholarGoogle Scholar
  26. Parmer, G. and West, R. 2007a. Hijack: Taking control of cots systems for real-time user-level services. In Proceedings of the 13th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'07). Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Parmer, G. and West, R. 2007b. Mutable protection domains: Towards a component-based system for dependable and predictable computing. In Proceedings of the 28th IEEE International Real-Time Systems Symposium (RTSS'07). IEEE Computer Society, Los Alamitos, CA, USA, 365--378. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Parmer, G. and West, R. 2008. Predictable interrupt management and scheduling in the Composite component-based system. In Proceedings of the 29th IEEE International Real-Time Systems Symposium (RTSS'08). IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Parmer, G. A. 2009. Composite: A component-based operating system for predictable and dependable computing. Ph.D. thesis, Boston University, Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Patil, A. and Audsley, N. 2005. Implementing application specific rtos policies using reflection. In Proceedings of the Real Time and Embedded Technology and Applications Symposium. 438--447. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Rajkumar, R., Juvva, K., Molano, A., and Oikawa, S. 2001. Readings in Multimedia Computing and Networking. Morgan Kaufmann Publishers Inc., San Francisco, CA, 476--490. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Regehr, J. and Stankovic, J. A. 2001. HLS: A framework for composing soft real-time schedulers. In Proceedings of the 22nd IEEE Real-Time Systems Symposium (RTSS'01). 3--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. RTLinux. Real-Time Linux: http://www.rtlinux.org.Google ScholarGoogle Scholar
  34. Ruocco, S. 2006. User-level fine-grained adaptive real-time scheduling via temporal reflection. In Proceedings of 27th IEEE International Real-Time Systems Symposium (RTSS'06). 246--256. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Ruocco, S. 2008. A real-time programmer's tour of general-purpose l4 microkernels. EURASIP J. Embedd. Syst. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Sha, L., Rajkumar, R., and Lehoczky, J. P. 1990. Priority inheritance protocols: An approach to real-time synchronization. IEEE Trans. Comput. 39, 9, 1175--1185. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Shin, I. and Lee, I. 2003. Periodic resource model for compositional real-time guarantees. In Proceedings of the Real Time Systems Symposium. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Steinberg, U., Wolter, J., and Hartig, H. 2005. Fast component interaction for real-time systems. In Proceedings of the 17th Euromicro Conference on Real-Time Systems (ECRTS'05). IEEE, 89--97. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Stoess, J. 2007. Towards effective user-controlled scheduling for microkernel-based systems. SIGOPS Oper. Syst. Rev. 41, 4, 59--68. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Strosnider, J. K., Lehoczky, J. P., and Sha, L. 1995. The deferrable server algorithm for enhanced aperiodic responsiveness in hard real-time environments. IEEE Trans. Comput. 44, 1, 73--91. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Tennenhouse, D. 1989. Layered multiplexing considered harmful. In Protocols for High-Speed Networks. North Holland, Amsterdam, 143--148.Google ScholarGoogle Scholar
  42. Von Behren, R., Condit, J., Zhou, F., Necula, G., and Brewer, E. 2003. Capriccio: Scalable threads for internet services. In Proceedings of the 19th ACM Symposium on Operating Systems Principles (SOSP). Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Zhang, Y. and West, R. 2006. Process-aware interrupt scheduling and accounting. In Proceedings of the 27th IEEE International Real-Time Systems Symposium (RTSS'06). IEEE, 191--201. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Predictable and configurable component-based scheduling in the Composite OS

          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

          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!