Vol: 57(71) No: 1 / March 2012 moviOS: a Real-Time Multiprocessor Operating System for Multimedia Applications Teodor Tite Department of Computer and Software Engineering, “Politehnica” University of Timisoara, Faculty of Automation and Computers, Bd. V. Parvan 2, 300223 Timisoara, Romania, phone: +40 256-403000, e-mail: teodor.tite@dsplabs.cs.upt.ro Catalin Mihai Department of Computer and Software Engineering, “Politehnica” University of Timisoara, Faculty of Automation and Computers, Bd. V. Parvan 2, 300223 Timisoara, Romania, e-mail: catalinmihaitm@yahoo.com Georgiana Macariu Department of Computer and Software Engineering, “Politehnica” University of Timisoara, Faculty of Automation and Computers, Bd. V. Parvan 2, 300223 Timisoara, Romania, e-mail: georgiana.macariu@cs.upt.ro Valentin Stangaciu Department of Computer and Software Engineering, “Politehnica” University of Timisoara, Faculty of Automation and Computers , Bd. V. Parvan 2, 300223 Timisoara, Romania, e-mail: valys@dsplabs.cs.upt.ro, web: http://dsplabs.upt.ro/~valys/ Mihai V. Micea Department of Computer and Software Engineering, “Politehnica” University of Timisoara, Faculty of Automation and Computers, Bd. V. Parvan 2, 300223 Timisoara, Romania, e-mail: mihai.micea@cs.upt.ro, web: http://dsplabs.upt.ro/~micha/ Valentin Muresan Movidius SRL, Paris Street no. 2A, 300003 Timisoara, Romania, phone: +40 256-294321, e-mail: valentin.muresan@movidius.com, web: www.movidius.com/dr-valentin-muresan-design-centre-manager/ Brendan Barry Movidius SRL, Paris Street no. 2A, 300003 Timisoara, Romania, e-mail: brendan.barry@movidius.com, web: www.movidius.com/brendan-barry-director-of-ic-development/ Keywords: real-time, multicore, hierarchical, scheduling, task, allocation Abstract Operating systems have become a key factor for the success of today’s mobile devices. With the rising capabilities of the underlying hardware, the complexity of managing these capabilities grows similarly. In the last years, multi-core hardware has been a major challenge for operating systems and it starts to shape also the real-time subdomain. These challenges, along with one of the best solution for managing complex resource allocations – called hierarchical scheduling – are briefly presented in the Introduction part of this paper. Related work done in the domains of real-time operating systems, multi-core resource allocation and hierarchical scheduling is presented from both the commercial/industrial and the research/academic points of view. The next section is introducing the heterogeneous multi-core platform that will be used for running the real-time operating system proposed in this paper, which is described in detail in section IV. The way the operating system is managing the hierarchical structure of applications and task, the used scheduling policy together with the approach of memory management are described in detail. An important subject of this paper, found in section V, represents the API expression of parallelism and synchronization in the source code of applications that comprises multiple tasks. These API details are accompanied by possible usage scenarios, along with an implemented experimental example, which demonstrates the capabilities of the presented operating system. Finally the main conclusions are briefly recalled and the future research directions are detailed. These future research proposals represent a result of the challenges and experience gained, during this research. References [1] M. V. Micea, C. Certejan, V. Stangaciu, R. Cioarga, V. Crețu, and E. Petriu, “Inter-Task Communication and Synchronization in the Hard Real-Time Compact Kernel HARETICK”, Proc. IEEE Intl. Wshop. Robotic and Sensors Environments, ROSE 2008, Ottawa, Canada, pp. 18-24, 2008. [2] G. Butazzo and P. Gai, “Efficient EDF Implementation for Small Embedded Systems”, Proc. Intl. Wshop. Oper. Syst. Platforms for Embed. Real-Time Applic., OSPERT 2006, Dresden, Germany, 2006. [3] M. V. Micea, “HARETICK: A Real-Time Compact Kernel for Critical Applications on Embedded Platforms”, Proceedings of 7th Intl. Conf. Development and Applic. Syst., DAS2004, Suceava, Romania, pp. 16-23, 2004. [4] OSEK Group, “OSEX/VDX Operating System Specification”, Version 2.2.3., Feb. 2005, [Online: http://portal.osekvdx.org/files/pdf/specs/os223.pdf]. [5] I. Ripoll, P. Pisa, L. Abeni, P. Gai, and A. Lanusse, “RTOS State of the Art Analysis\", Deliverable D1.1 – RTOS Analysis, OCERA 2002. [6] VxWorks, \"VxWorks Programmer’s Guide”, Rev. 5.5. Wind River Systems, Inc., Alameda, CA (SUA), 2002. [7] K. Cheung, “OSE Real-Time Operating System”, Embedded Star, Jul. 2006, [Online: http://www.embeddedstar.com/weblog/ 2006/07/07/ose-real-time-operating-system/]. [8] M. V. Micea and V. Cretu, “Highly Predictable Execution Support for Critical Applications with HARETICK Kernel”, Intl. J. Electronics Communic. (AEUE), vol. 59, no. 5, pp. 278-287, 2005. [9] L. George, N. Rivierre, and M. Spuri, “Preemptive and Non-Preemptive Real-Time Uni-Processor Scheduling”, Raport de Recherche, Institut National de Recherche en Informatique et en Automatique (INRIA), 1996. [10] P.G. Jansen, S.J. Mullender, P.J.M. Havinga, and H. Scholten “Lightweight EDF Scheduling with Deadline Inheritance”, Internal Report, University of Twente, 2003. [11] H. Iwasaki, J. Naganuma, M. Endo, and T. Ogura, “On-Chip Multimedia Real-Time OS and Its MPEG-2 Applications”, Proceedings of 6th Intl. Conf. Real-Time Comput. Syst. and Applic., RTCSA 1999, Hong Kong, China, pp. 200-203, 1999. [12] D. Katcher, K. Kettler, and J. Strosnider, “Real-Time Operating Systems for Multimedia Processing”, Proceedings of Wshop. Hot Topics in Oper. Syst., pp. 18, 1995. [13] Khronos OpenCL Working Group, A. Munshi, “The OpenCL Specification”, Version 1.0, Rev. 48, Khronos Group, 2009. [14] B.B. Brandenburg and J.H. Anderson, “Integrating Hard/Soft Real-Time Tasks and Best-Effort Jobs on Multiprocessors”, Proc. 19th Euromicro Conf. Real-Time Syst., ECRTS 2007, pp. 61-70, 2007. [15] C.W. Mercer, S. Savage, and H. Tokuda, “Processor Capacity Reserves for Multimedia Operating Systems”, Tech. Rep., Pittsburgh, PA, USA, 1993. [16] http://www.movidius.com [17] B. Schauer, “Multicore Processors – A Necessity”, ProQuest Discovery Guides, September 2008 [18] V. Stangaciu, G. Macariu, M. Micea, V. Muresan, and B. Barry, “Requirements of a Real-Time Multiprocessor Operating System for Multimedia Applications”, Proceedings of 6th IEEE International Symposium on Applied Computational Intelligence and Informatics (SACI 2011), Timisoara, Romania, 2011. [19] P. Goyal, X. Guo, and H.M. Vin, “A Hierarchical CPU Scheduler for Multimedia Operating Systems”, Proceedings of USENIX 2nd Symposium on OS Design and Implementation (OSDI \'96), pp. 107–122, 1996. [20] G. Lipari and E. Bini, “A methodology for designing hierarchical scheduling systems”, Journal of Embedded Computing - Real-Time Systems (Euromicro RTS-03), vol. 1, no. 2, Apr. 2005. [21] C.W. Mercer, S. Savage, and H. Tokuda, “Processor Capacity Reserves for Multimedia Operating Systems”, Proceedings of the IEEE International Conference on Multimedia Computing and Systems, May 1994. [22] A. Schuepbach, A. Baumann, T. Roscoe, and S. Peter, “A declarative language approach to device configuration”, Proceedings of 16th International Conference on Architectural Support for Programming Languages and Operating Systems, Newport Beach, CA, USA, 2011. [23] S. Peter, A. Schuepbach, P. Barham, A. Baumann, R. Isaacs, T. Harris, and T. Roscoe, “Design principles for end-to-end multicore schedulers”, Proceedings of 2nd Workshop on Hot Topics in Parallelism, Berkeley, CA, USA, 2010. [24] A, Baumann, P. Barham, P.-E. Dagand, T. Harris, R. Isaacs, S. Peter, T. Roscoe, A. Schuepbach, and A. Singhania, “The Multikernel: A new OS architecture for scalable multicore systems”, Proceedings of 22nd ACM Symposium on OS Principles, Big Sky, MT, USA, 2009. [25] Embox Real-Time Operating System, http://code.google.com/p/embox/. [26] CooCox CoOS Real-Time Operating System, http://www.coocox.org/. |