World's most popular travel blog for travel bloggers.

[Solved]: Realtime hardware/software versus PC software/hardware, how are these distinct and alike?

, , No Comments
Problem Detail: 

This question stems from a few answers and comments on a question I posted in signal processing found here.

I guess I am a little confused. Are there any concrete differences between realtime software/hardware and just a regular PC?

I would try to list what I think the differences are but the list I have come up with is ambiguous and short.

The only thing I think makes sense to separate the two ideas is that PC software can run part of its code part of the time, real-time runs all of its code each time. So a PC can load a program but not all programs and run just that program for however long it pleases, real-time is just a single program with a bunch of if-else, switch logic basically a huge abstract collection of relays (PLC) that gets ran through every time it is called.

Yes I realize this is a pretty poor description, so I ask is there any good concrete ways to separate these ideas?

Asked By : KDecker

Answered By : adrianN

In general, the difference between "normal" and "real-time" is some sort of guarantee on the time it takes to complete job. In a normal system, usually you have no guarantees at all. Programs can get interrupted by other programs, the OS scheduler might not be completely fair, the processor does complicated things that alter the runtime between executions of the same code...

For most applications this does not matter.

Real-time systems are built such that one can guarantee that job X is always completed after at most Y seconds. This is important for example for the chip that decides when to deploy air bags--if that takes longer than expected, you're dead. To be able to give these guarantees you have to use special operating systems (or no operating system at all) that guarantees appropriate scheduling. It is also necessary to know a lot of details about the hardware you're using. Does your chip have a cache? What kind of replacement policy does it use? How many cycles does an addition take? Is that always the same number? What's the branch prediction algorithm? etc.

Many people confuse real-time systems with very powerful processors that can churn through data "in real time". But that's not (always) the case. The important thing is not how long it takes in absolute time, the important part is that it never takes longer than expected. There are trade-offs both in hard- and software between throughput (expected computation speed) and predictability (worst-case speed).

Best Answer from StackOverflow

Question Source : http://cs.stackexchange.com/questions/12067

 Ask a Question

 Download Related Notes/Documents

0 comments:

Post a Comment

Let us know your responses and feedback