EMERALDS (Extensible Microkernel for Embedded, ReAL-time, Distributed Syste
ms) is a real-time microkernel designed for small-memory embedded applicati
ons. These applications must run on slow (15-25MHz) processors with just 32
-128 kbytes of memory, either to keep production costs down in mass produce
d systems or to keep weight and power consumption low. To be feasible for s
uch applications, the OS must not only be small in size (less than 20 kbyte
s), 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 charact
eristics found in small-memory embedded systems, such as small code size an
d a priori knowledge of task execution and communication patterns, With the
se new schemes, the overheads of various OS services are reduced 20-40 perc
ent without compromising any OS functionality.