06.08.2013 Views

JAVA-BASED REAL-TIME PROGRAMMING

JAVA-BASED REAL-TIME PROGRAMMING

JAVA-BASED REAL-TIME PROGRAMMING

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!