This Article 
 Bibliographic References 
 Add to: 
EMERALDS: A Small-Memory Real-Time Microkernel
October 2001 (vol. 27 no. 10)
pp. 909-928

Abstract—EMERALDS (Extensible Microkernel for Embedded, ReAL-time, Distributed Systems) is a real-time microkernel designed for small-memory embedded applications. These applications must run on slow (15-25MHz) processors with just 32-128 kbytes of memory, either to keep production costs down in mass produced systems or to keep weight and power consumption low. To be feasible for such applications, the OS must not only be small in size (less than 20 kbytes), but also have low overhead kernel services. Unlike commercial embedded OSs which rely on carefully optimized code to achieve efficiency, EMERALDS takes the approach of redesigning the basic OS services of task scheduling, synchronization, communication, and system call mechanism by using characteristics found in small-memory embedded systems, such as small code size and a priori knowledge of task execution and communication patterns. With these new schemes, the overheads of various OS services are reduced 20-40 percent without compromising any OS functionality.

[1] K.G. Shin and P. Ramanathan, "Real-Time Computing: A New Discipline of Computer Science and Engineering," Proc. IEEE, vol. 82, no. 1, Jan. 1994.
[2] L.M. Thompson, “Using pSOS+for Embedded Real-Time Computing,” Proc. COMPCON, pp. 282–288, 1990.
[3] D. Hildebrand, “An Architectural Overview of QNX,” Proc. Usenix Workshop Micro-Kernels and Other Kernel Architectures, Apr. 1992.
[4] VxWorks Programmer's Guide, 5.1. Wind River Systems, 1993.
[5] K.G. Shin, D.D. Kandlur, D. Kiskis, P. Dodd, H. Rosenberg, and A. Indiresan, “A Distributed Real-Time Operating System,” IEEE Software, pp. 58–68, Sept. 1992.
[6] J. Stankovic and K. Ramamritham, “The Spring Kernel: A New Paradigm for Real-Time Operating Systems,” ACM Operating Systems Review, vol. 23, no. 3, pp. 54–71, July 1989.
[7] W.M. Gentleman, “Realtime Applications: Multiprocessors in Harmony,” Proc. BUSCON/88 East, pp. 269–278, October 1988.
[8] H. Tokuda, T. Nakajima, and P. Rao, “Real-Time Mach: Towards a Predictable Real-Time System,” Proc. USENIX Mach Workshop, Oct. 1990.
[9] J.G. Ganssle, The Art of Programming Embedded Systems. Academic Press, 1992.
[10] R.S. Raji, “Smart Networks for Control,” IEEE Spectrum, vol. 31, no. 6, pp. 49–55, June 1994.
[11] RTXC User's Manual. Embedded System Products, Inc., 1995.
[12] K.M. Zuberi and K.G. Shin, “Non-Preemptive Scheduling of Messages on Controller Area Network for Real-Time Control Applications,” Proc. Real-Time Technology and Applications Symp., pp. 240–249, May 1995.
[13] K.M. Zuberi and K.G. Shin, “Scheduling Messages on Controller Area Network for Real-Time CIM Applications,” IEEE Trans. Robotics and Automation, pp. 310–314, Apr. 1997.
[14] M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young, “Mach: A New Kernel Foundation for UNIX Development,” Proc. Summer Usenix, pp. 93–113, July 1986.
[15] B. Bershad, S. Savage, P. Pardyak, E. Sirer, M. Fiuczynski, D. Becker, C. Chambers, and S. Eggers, “Extensibility, Safety and Performance in the SPIN Operating System,” Proc. Symp. Operating Systems Principles, pp. 267–284, 1995.
[16] M. Jones, D. Rosu, and M.-C. Rosu, “CPUReservations and Time Constraints: Efficient, Predictable Scheduling of Independent Activities,” Proc. 16th ACM Symp. Operating Systems Principles, Oct. 1997.
[17] C.L. Liu and J.W. Layland, “Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environment,” J. ACM, vol. 20, no. 1, pp. 40-61, 1973.
[18] Y. Ishikawa, H. Tokuda, and C.W. Mercer, “An Object-Oriented Real-Time Programming Language,” Computer, vol. 25, no. 10, pp. 66–73, Oct. 1992.
[19] E.W. Dijkstra, “Cooperating Sequential Processes,” Technical Report EWD-123, Technical Univ., Eindhoven, The Netherlands, 1965.
[20] A.N. Habermann, “Synchronization of Communicating Processes,” Comm. ACM, vol. 15, no. 3, pp. 171–176, Mar. 1972.
[21] C.A.R. Hoare, "Monitors, An Operating System Structuring Concept," Comm. ACM, vol. 17, no. 10, Oct. 1974, pp. 549-557.
[22] H. Kopetz, A. Damm, C. Koza, M. Mulazzani, W. Schwabi, C. Senft, and R. Zainlinger, "Distributed Fault-Tolerant Real-Time Systems: The MARS Approach," IEEE Micro, pp. 25-58, Feb. 1989.
[23] K.M. Zuberi and K.G. Shin, “An Efficient End-Host Protocol Processing Architecture for Real-Time Audio and Video Traffic,” Proc. Network and Operating System Support for Digital Audio and Video (NOSSDAV), July 1998.
[24] K.M. Zuberi and K.G. Shin, “EMERALDS: A Microkernel for Embedded Real-Time Systems,” Proc. Real-Time Technology and Applications Symp., pp. 241–249, June 1996.
[25] J. Liedtke, U. Bartling, U. Beyer, D. Heinrichs, R. Ruland, and G. Szalay, “Two Years of Experience with a$\mu{\hbox{-}}\rm Kernel$Based OS,” Operating Systems Review, pp. 51–62, Apr. 1991.
[26] R. Draves, B. Bershad, R. Rashid, and R. Dean, “Using Continuations to Implement Thread Management and Communication in Operating Systems,” Proc. Symp. Operating Systems Principles, pp. 122–136, 1991.
[27] T. Anderson, B. Bershad, E. Lazowska, and H. Levy, “Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism,” Proc. Symp. Operating Systems Principles, pp. 95–109, 1991.
[28] J. Liedtke, “Improving IPC by Kernel Design,” Proc. Symp. Operating Systems Principles, pp. 175–188, 1993.
[29] R. Rashid et al., "Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures," IEEE Trans. Computers, Aug. 1988, pp. 896-908.
[30] J. M. Mellor-Crummey and M. L. Scott,“Algorithms for scalable synchronization on shared-memory multiprocessors,”ACM Trans. Comput. Syst., vol, 9, no. 1, pp. 21–65, Feb. 1991.
[31] C.-D. Wang, H. Takada, and K. Sakamura, “Priority Inheritance Spin Locks for Multiprocessor Real-Time Systems,” Proc. Second Int'l Symp. Parallel Architectures, Algorithms, and Networks, pp. 70–76, 1996.
[32] C.M. Krishna and K.G. Shin, Real-Time Systems, McGraw-Hill, 1997.
[33] K. Ramamritham and J.A. Stankovic, “Scheduling Algorithms and Operating System Support for Real Time Systems,” Proc. IEEE, vol. 82, no. 1, Jan. 1994.
[34] J. Lehoczky, L. Sha, and Y. Ding, The Rate Monotonic Scheduling Algorithm: Exact Characterization and Average Case Behavior Proc. IEEE Real-Time Systems Symp., pp. 166-171, 1989.
[35] J.Y.-T. Leung and J. Whitehead, “On the Complexity of Fixed-Priority Scheduling of Periodic, Real-Time Tasks,” Performance Evaluation, vol. 2, no. 4, pp. 237–250, Dec. 1982.
[36] H. Takada and K. Sakamura, “Experimental Implementations of Priority Inheritance Semaphore on ITRON-Specification Kernel,” Proc. 11th TRON Project Int'l Symp., pp. 106–113, 1994.
[37] H. Tokuda and T. Nakajima, “Evaluation of Real-Time Synchronization in Real-Time Mach,” Proc. Second Mach Symp., pp. 213–221, 1991.
[38] L. Sha, R. Rajkuma, and J.P. Lehoczky, "Priority Inheritance Protocols: An Approach to Real-Time Synchronization," IEEE Trans. Computers, vol. 39, no. 9, pp. 1,175-1,185, Sept. 1990.
[39] K.M. Zuberi and K.G. Shin, “An Efficient Semaphore Implementation Scheme for Small-Memory Embedded Systems,” Proc. IEEE Real-Time Technology and Applications Symp., 1997.
[40] S. Poledna, T. Mocken, and J. Schiemann, “ERCOS: An Operating System for Automotive Applications,” Soc. Automotive Eng. Int'l Congress and Exposition, pp. 55–65, Feb. 1996.
[41] H. Kopetz and J. Reisinger, “The Nonblocking Write Protocol NBW: A Solution to a Real-Time Synchronization Problem,” Proc. Real-Time Systems Symp., pp. 131–137, 1993.
[42] H. Levy and R. Eckhouse Jr., Computer Programming and Architecture: The VAX-11. Digital Press, 1980.
[43] D. Soloman, Inside Windows NT. Microsoft Publishing, 1998.
[44] M68040 User's Manual. Motorola Inc., 1992.
[45] MC68332 User's Manual. Motorola Inc., 1993.
[46] D.I. Katcher, H. Arakawa, and J.K. Strosnider, “Engineering and Analysis of Fixed Priority Schedulers,” IEEE Trans. Software Eng., vol. 19, no. 9, pp. 920–934, Sept. 1993.

Index Terms:
Real-time operating systems, embedded systems, real-time scheduling, task synchronization, intertask communication.
Khawar M. Zuberi, Kang G. Shin, "EMERALDS: A Small-Memory Real-Time Microkernel," IEEE Transactions on Software Engineering, vol. 27, no. 10, pp. 909-928, Oct. 2001, doi:10.1109/32.962561
Usage of this product signifies your acceptance of the Terms of Use.