-1

In my thesis, I plan on writing a section of real-time capability comparison of single board computers:

  • the factors (if they really have a real time clock, even if they don't have one, can real-time frameworks or RTOS be used to utilize them with real-time properties and how)

  • what scheduling is used in their out-of-the-box kernel? (for example, if Round-robin is used, then AFAIK real-time scheduling cannot be achieved)

  • Comparison between Pandaboard, Beagleboard, Beaglebone, and Especially Raspberry Pi

If you have a resource or idea regarding this, I would really appreciate it. In case I have missed an information, please do say and I'd be happy to provide that. Thanks in advance.

EDIT: I found a good answer here, but I can always appreciate any better guidance. What makes a kernel/OS real-time?

Clifford
  • 88,407
  • 13
  • 85
  • 165
mozcelikors
  • 2,582
  • 8
  • 43
  • 77
  • Asking about overview is almost always *off-topic* on Stack Overflow. Here we tend to resolve **specific problems**. – Tsyvarev May 26 '17 at 12:17
  • I will remember that next time! – mozcelikors May 26 '17 at 12:29
  • The term "real-time" in _"real-time clock"_ is not at all related to real-time in teh sense of _real-time systems_. You are wrong to conflate the two. An RTC provides "wall-clock" time and date, whereas the term in the context of real-time systems means the ability to respond to events as they occur in a timely and deterministic manner. – Clifford May 27 '17 at 16:01
  • Requesting an off-site resource rather then an direct answer is not what SO is about. Your question will almost certainly get closed in its present form, and is probably too broad in any case. – Clifford May 27 '17 at 16:03
  • Thanks for your kind replies. – mozcelikors May 27 '17 at 16:05
  • Real-time performance capability is largely a matter for software and operating-system architecture and design and not a matter of hardware (except perhaps for sub-microsecond-order determinism, where processor interrupt architecture, instruction/data caching, bus contention and pipelining may play significant part). It is certainly seldom related to the SBC as a whole as opposed to the processor core. All those you listed are broadly similar ARM Cortex-A based devices (the original Pi was ARM11). – Clifford May 27 '17 at 16:11

1 Answers1

-1

First an observation. Scheduling is an OS concept. Why would it matter which scheduler is used in out-of-the-box kernel? If indeed there is such a thing as out-of-the-box kernel. Having said that, realtimeness is affected by scheduler and hardware. But when comparing boards, I would keep scheduler constant (or may be pick a few) and then compare boards. Choosing scheduler(s) is a separate topic on its own. Couple of things to take into account are that it should be pre-emptive and be able to deal with issues like priority inversion.

Note that all these boards have MMU which will bring in latency. That shouldn't really matter though, as long as that latency is bounded. I'd also compare accuracy of crystals on which the clocks are based. Note also SoCs have low power modes, they also tend to switch clocks. Whenever they come out of LP mode, they switch from some internal oscillator to more accurate clock source like external crystal. That requires time to for crystal to stabilise before it can continue normal operations. Comparison of latency involved in switching between power mode will also be a useful determinant.

bytefire
  • 4,156
  • 2
  • 27
  • 36
  • I understand what you mean, but I have to take a closer look at the hardware and software aspects. I know that scheduler is related to the OS. However I was asked to involve that aspect in comparison. As you said, it might be better to do a comparison that seperates them. – mozcelikors May 26 '17 at 09:16
  • Yes, I'd pick scheduler first and do comparison based on each selected scheduler. And of course scheduler matters as does the OS. My point was that out-of-the-box kernel shouldn't be a concern : ) – bytefire May 26 '17 at 09:27