this post was submitted on 30 May 2024
69 points (100.0% liked)

Linux

48655 readers
435 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

To get started with the real-time kernel for Ubuntu 24.04, check out the official documentation. One thing to keep in mind if you’re an NVIDIA GPU user is that the real-time Ubuntu kernel does not support the proprietary NVIDIA graphics drivers.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 15 points 6 months ago (1 children)

So, contrary to what it seems a single CPU core can only execute a single "thing" at a time. Modern operating systems do something called "preemptive multitasking" to give the illusion that more than one things are running at a time. The OS will start your task, then after a while save its state and start another task running, then switch back. It does this fast enough that each job seems to be running concurrently.

Now if you're running on a RaspberryPI your program might be waiting for input from a GPIO pin. And when you get that input you want to turn on some switch. Maybe an important switch. BUT It could be that your application is in the "paused" state when that pin gets input which will cause a delay between when the pin is trying to send you input and when you actually process it.

A real-time OS minimizes such delays (latency) so that you can respond quickly.

[–] [email protected] 2 points 6 months ago (2 children)

I guess i am still skipping on how real time kernel address the pause? it just never pauses or it no longer needs to be paused?

as a side note, is this similar technology they use in high precision manufacturing?

[–] [email protected] 3 points 6 months ago* (last edited 6 months ago)

I guess i am still skipping on how real time kernel address the pause? it just never pauses or it no longer needs to be paused?

When hardware has data ready for a program it generates an interrupt that lets the OS know that there is data ready for an application. My understanding is that real-time OSs give high priority to interrupts so that they're processed quickly - usually within a fixed period of time (e.g. they may have a max time between interrupt and processing).

as a side note, is this similar technology they use in high precision manufacturing?

In those cases it may be more likely they use a micro-controller that doesn't run any OS at all - at least not a multi-tasking one. If you're just running a single program you don't need to worry about latency due to other applications running.

[–] gorysubparbagel 3 points 6 months ago (1 children)

Think of it like a club with a max capacity of 10 people, where some people have VIP cards. If a person with a VIP card wants to get into the club, the bouncer will kick out one of the people inside that doesn't have a VIP card to make space for them.

For a more technical explanation:

There are several processors on computers and each can be in use by 1 process at a time. Different processes can get different amounts of time based on their priority (called niceness in Linux) and they'll be removed from the processor once their time is up until their next share of time.

On a real-time kernel some processes are marked as real-time (certain range of niceness values, can't remember the exact range). If a process that is real-time says it needs some processor time, a process that isn't real-time that's currently running will be immediately ripped off the processor to make room for the real-time process.

[–] [email protected] 2 points 6 months ago

Alright, this landed!