
A Decent Embedded Operating System 101
• Task 1: Receive data from the computer attached to serial port A.
• Task 2: Receive data from the computer attached to serial port B.
• Task 3: Format and send the waiting data (if any) to the printer attached to the
parallel port.
Tasks provide a key software abstraction that makes the design and implementa-
tion of embedded software easier and the resulting source code simpler to under-
stand and maintain. By breaking the larger program up into smaller pieces, the
programmer can more easily concentrate her energy and talents on the unique fea-
tures of the system under development.
Strictly speaking, an operating system is not a required component of any com-
puter system—embedded or otherwise. It is always possible to perform the same
functions from within the application program itself. Indeed, all of the examples so
far in this book have done just that. There is simply one path of execution—start-
ing at main—that is downloaded into the system and run. This is the equivalent of
having only one task. But as the complexity of the application expands beyond
just blinking an LED, the benefits of an operating system far outweigh the associ-
ated costs.
If you have never worked on operating system internals before, you might have
the impression that they are complex. I’m sure the operating system vendors
would like you to continue to believe that they are