ously be very precise and could provide long inter-
vals. For example, a ”simple” counter with 64 bit
wide word and 1 GHz frequency, can measure time
intervals ranging from 1 ns to 585 years! Such a
clock and counter could reduce the overhead for keep-
ing system time and for tracking activation times for
alarms, directly simplifying the time template. Sim-
pler systems, with bounded number of alarms, could
benefit from multiple counters - each for an alarm.
Those custom made systems would not need the time
template, as it would be provided in hardware.
Multitasking management operations are fairly
complex and can’t be implemented (easily) in hard-
ware. Most that can be done in hardware is task
change, i.e. switching from one running task to an-
other. For that, the instruction
switch task(from,
to)
may be designed. With an appropriate data struc-
ture even
schedule tasks()
might be implemented
in hardware, if priority and FIFO are used as schedul-
ing criteria.
Dynamic memory allocation might be signifi-
cantly simpler and deterministic if hardware support
is implemented. Bit map search, if implemented in
hardware, will find an appropriate memory chunk size
with a single instruction, making dynamic memory
management faster, deterministic and efficient.
5 CONCLUSIONS
Operating system is a very complex system. How-
ever, it is a foundation on which almost every com-
puter system is built. Therefore, operating system is a
very important subject for future software engineers.
For teaching operating systems in embedded and real-
time environment, we created an instructional operat-
ing system OSIER. In its development we used the
standard divide-and-conquer principle, dividing oper-
ating system core into subsystems. In this process
we found that some subsystems, i.e. input-output,
time and task management subsystems, can be cre-
ated quickly and easily. That is the reason why we
propose them as a template for embedded system de-
velopment.
Creation of such templates, especially IO and time
management templates, should be straight forward
and completed in a short time period. If intended
systems have slightly different underlying hardware,
it would be a good idea to separate hardware depen-
dent part from the independent one (using a hardware
abstraction layer beneath). Task management tem-
plate is significantly complex, harder to implement
than IO and time management templates, but if cre-
ated, it offers unparalleled simplicity on application
design level (for complex control systems).
Embedded systems are frequently custom made.
Even the processor (controller) might be customized.
For such systems, we present a brief overview of pos-
sible hardware implementations that will significantly
simplify the templates.
REFERENCES
Beuche, D., Guerrouat, A., Papajewski, H., Schroder-
Preikschat, W., Spinczyk, O., and Spinczyk, U.
(1999). On the development of object-oriented op-
erating systems for deeply embedded systems - the
pure project. In In: Proc. 2nd ECOOP Workshop on
Object-Orientation and Operating Systems, pages 27–
31.
Coulson, G., Blair, G., Grace, P., Joolia, A., Lee, K., and
Ueyama, J. (2004). A component model for building
systems software. In In Proc. IASTED Software Engi-
neering and Applications (SEA’04.
Ernst, R. (1998). Codesign of embedded systems: status
and trends. Design Test of Computers, IEEE, 15(2):45
–54.
Gajski, D. D., Gerstlauer, A., Adbi, S., and Schirner, G.
(2009). Embedded System Design: Modeling, Synthe-
sis, Verification. Springer.
Han, C.-C., Kumar, R., Shea, R., Kohler, E., and Srivastava,
M. (2005). A dynamic operating system for sensor
nodes. In Proceedings of the 3rd international confer-
ence on Mobile systems, applications, and services,
MobiSys ’05, pages 163–176, New York, NY, USA.
ACM.
Henzinger, T. A., Horowitz, B., and Kirsch, C. M. (2001).
Embedded control systems development with giotto.
SIGPLAN Not., 36:64–72.
Jelenkovic, L. (2011). Operating System Increments
for Education and Research (OSIER), available at
https://github.com/l30nard0/os4ec.
Labrosee, J. J. (2002). MicroC/OS-II: The Real-Time Kernel
(2nd Edition). CMPBooks, 2nd edition.
Levis, P., Gay, D., Hadzinski, V., hinrich Hauer, J., Green-
stein, B., Turon, M., Hui, J., Klues, K., Sharp, C.,
Szewczyk, R., Polastre, J., Buonadonna, P., Nachman,
L., Tolle, G., Culler, D., and Wolisz, A. (2005). T2: A
second generation os for embedded sensor networks.
Technical report.
Nollet, V., Coene, P., Verkest, D., Vernalde, S., and Lauw-
ereins, R. (2003). Designing an operating system for
a heterogeneous reconfigurable soc. In Parallel and
Distributed Processing Symposium, 2003. Proceed-
ings. International, page 7 pp.
Wolf, W. (2001). Computers as Components: principels of
Embedded Computing System Design. Morgan Kauf-
mann Publishers.
ICINCO2012-9thInternationalConferenceonInformaticsinControl,AutomationandRobotics
594