JAVA-BASED REAL-TIME PROGRAMMING
JAVA-BASED REAL-TIME PROGRAMMING
JAVA-BASED REAL-TIME PROGRAMMING
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Chapter 1<br />
Introduction<br />
Goal: Understanding of book aims and scope.<br />
Computers, such as microprocessors, are more and more often embedded<br />
in products that the user does not perceive as computers. This is the case for<br />
both consumer electronics (your CD player, mobile phone, etc.), home supplies<br />
(your micro-wave oven, washing machine, etc.), vehicles (the engine control<br />
in your car, airplane fly-by-wire control, etc.), building automation (elevator<br />
control, temperature control, etc.), as well as for industrial equipment. We<br />
want these things to be affordable, and we want to be able to trust their<br />
operation, in particular when our life depends on them. Additionally, in some<br />
cases, we want to be able to reconfigure, upgrade, or even program them,<br />
possibly by downloading software components from a trusted supplier via the<br />
Internet.<br />
Most people think of a computer as the desktop type of computer (with<br />
keyboard and display), but the number of embedded computers is bigger than<br />
the number of all other types of computers, and the difference is increasing.<br />
Moreover, the variety of types of processors and operating systems is much<br />
larger in the embedded world, which includes the desktop types and many<br />
others. Reasons for this variety include optimization to reduce the product<br />
price and minimization of energy (from batteries) consumption.<br />
Development of embedded software has for some years mainly been carried<br />
out by hardware-aware programming using the C-language, and in some<br />
cases even in assembly languages. This works well in simple cases when the<br />
application demands and the hardware are known at design time, and the size<br />
of the (statically defined) software is small. When applications increase in<br />
size and must be rapidly developed (time to market), and perhaps need to<br />
be on-line upgradeable, more programming support is needed. In particular,<br />
for critical applications (safety critical as in an airplane, mission critical as in<br />
space/military/nuclear tasks, economically critical if the survival of the com-<br />
11