# Realtime hardware/software versus PC software/hardware, how are these distinct and alike?

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?

• "Realtime" is about repeatable, predictable performance (timing, mostly). Some PC hardware is OK in this, other isn't. You can probably build something good enough with off-the-shelf parts selected with care, but it might not pass "certification" of any sort. Parts that are guaranteed to perform within certain parameters are sure to be quite a bit more expensive. – vonbrand May 16 '13 at 16:51

• Let's not forget that the implemented algorithms are a factor, too. In "PC" practice, you aim for best average behaviour and don't care too much for precise bounds, whereas in real-time practice you want best worst-case behaviour, and you want to know upper bounds on it that are as precise as possible. In particular, it may be acceptable for an algorithm to be slower but know a sharp runtime bound (not in $O$-terms, mind, but in number of clock cycles). – Raphael May 17 '13 at 6:54