0

I use my Pi 3 as a desktop machine and it generally does pretty good. Occasionally I run into the issue that if I use an application, mainly Firefox and sometimes Chromium, the application will either partially or completely lock up. I expect this, but this freeze effects my whole system.

Basically, I might be trying to read a website like makeuseof.com in Firefox, with no other tabs or other applications open, and then randomly, Firefox and the Pi starts to randomly freeze up or just completely lock up, forcing me to reboot it. I don't even attempt to run YouTube, even when Firefox is minimized.

I can, most of the time, in Chromium run YouTube if it isn't full-screen, and can run other programs it Chromium is minimized. But it will sometimes lock up.

This got me thinking: Could this be happening because Raspbian isn't a Real Time operating system? If I set the Pi up with a RTC module, will it be more stable and not partially or completely freeze up? I wonder because I have Raspbian x86 on my PC with specs that are actually poorer than my Pi, and it runs fine.

Maybe I am wrong, and its not the actually issue, but I never have gone over 70% on the CPU usage meter on the Panel and never use up even half the available RAM. I even was using ZRAM a few months ago and never even use over 30%.

  • 10
    an RTC module simply means the pi would have the correct time about 30 seconds earlier in the boot process - so, no, wont stabilise it – Jaromanda X Jan 09 '19 at 04:53
  • 5
    Also, a system isn't a real time system because the time is set correctly. It means that the system finishes a task within specified time period. (You don't want your airbag being 5mins late because 'important updates are being installed'.) RTC and RTS only have in common that they are about time. – sweber Jan 09 '19 at 06:22
  • @sweber Do you mean: "the system starts a task within specified time period"? Response time is important for a real time system. – Ingo Jan 09 '19 at 13:31
  • 2
    Not to mention that a RTOS is a terrible choice for watching youtube in the first place. – Dmitry Grigoryev Jan 09 '19 at 14:57
  • @Ingo: No. A task is started at any time, and has to be done withing a specified time period after. It is not about timing of an event in the future. As for my example: When a crash is detected, the system has to decide within a few milliseconds if, and which airbags to trigger. If it takes 10seconds due to other, heavy tasks running in parallel, it's too late. The term "real time" also does not mean "without delay, immediately", just "within time", which can also mean minutes, hours or days. However, people are so used to the meaning "immediately", that this becomes a new definition for RT. – sweber Jan 09 '19 at 19:00
  • @sweber If the system starts (reacts) to late you may die. But this discussion becomes off topic. – Ingo Jan 09 '19 at 19:10
  • I think we all agree that an RTOS is not what the OP is after, and that installing an RTC won't benefit performance. Adding a GB or three of RAM might, but alas, that is not possible. – goldilocks Jan 10 '19 at 00:49

2 Answers2

5

No, adding a Real Time Clock module to your pi will not magically turn Raspbian (or any other OS) into a Real Time Operating System. Whether a Real Time Operating System will improve the performance of watching YouTube videos is another matter. Note that the Raspbianx86 on your PC isn't a Real Time Operating System either.

"Real Time" has two distinct and unrelated meanings in "Real Time Clock" and "Real Time Computing". The Real Time Clock is just a clock (like the one on your wall or wrist) that tells the OS what the real time of day is and usually has a small battery to keep the clock running when the main device is turned off. Real Time Computing refers to specialised software, usually for safety critical embedded control, where events need to happen in (nearly) real-time.

Roger Jones
  • 1,494
  • 7
  • 14
  • 1
    Ditto that the OP has been confused by terminology here, and worth emphasizing that normative end-user based operating systems (such as Windows, macOS, Android, etc.) are not "real time"; the benefits of a real-time OS are generally counter to the benefits of a multi-tasking OS and outside of very customized contexts won't benefit any aspect of web-browsing. – goldilocks Jan 10 '19 at 00:46
  • Thanks. I see that I was confused by the treminology. But I am still confused. Why can my PC with almost the exact same specs, other than an x86 CPU, work perfectly fine, but my Pi completely crap out under the same workload. Does the Pi lack some sort of application-level watchdog timer or something? – lockheed silverman Jan 10 '19 at 04:50
  • 1
    @lockheedsilverman Design compromises on the Pi mean that there are some bottlenecks. For example the ethernet data is fed to the CPU over USB2.0 and accessing data form the SD card (sometimes using SPI?) does not compare, for example, to a SATA HDD on your PC. At the end of the day remember the Pi was/is designed to be affordable not fast – Roger Jones Jan 10 '19 at 09:47
2

Your problems most likely arise from combination of things:

  • Raspbian is a less polished software platform compared to windows (especially in graphics drivers department and display subsystem = "x.org". I do believe that this is where your problem originates)
  • Raspberry Pi is not very fast (especially memory) and this will amplify problems; this also makes multi-core setup work less efficient than expected.
  • Hardware is not most likely not properly shielded against EMI (plastic case ? no case at all ?)
  • Power supply and power connector are not the strongest part of platform (PoE hat proves that)

What is not your problem is Real time clock. It has no impact on OS because system is not using it during operation. OS only uses RTC once during boot to set up clock that is operated by it and lives in CPU/memory as monotonic counter. Yo can choose to synchronize both by using "hwclock" command.

Raspberry Pi does not have RTC and while you can equip it with one it does not make much sense if you are connected to internet. You can synchronize time with NTP servers and this is proven and very reliable method of keeping time; even computers with RTC will use NTP because RTC clocks on motherboards, etc. are considered inferior to GPS, cellular and many other professional real time clock solutions.

Raspbian is build on top of Linux and it is the same type of operating system as Windows or MacOSx. Realtime operating systems are different and usually not suitable for desktop operation.

  • Thanks. Informative answer, if I ever read one. I definitely agree about the power supply and power cables causing issues. I am a tad bit underpowered, using a 5.1v @ 2.1A iPad charger for the Pi 3. Concerning multi-core setup, I also never had this issue with my Pi B+, but it DID take over 2 minutes to simply load DuckDuckGo.com – lockheed silverman Jan 11 '19 at 04:41