FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Original HTTPS Page]

Preempt Systems · GitHub

Preempt Systems

Real-time software.

Preempt Systems

Our mission is a hard real-time operating system that is POSIX source-compatible with Linux.

QuantumRT implements the POSIX API (PSE51). Application code moves between Linux and QuantumRT without being rewritten against a proprietary API: pthreads, POSIX message queues, timers, and named semaphores behave as the standard specifies.

Every syscall has a proven worst-case bound, and the scheduler and timer are O(1): selecting the next thread and servicing the next timer take the same bounded time regardless of how many threads or pending timers exist. Precise Scheduling replaces the periodic tick with a one-shot hardware comparator armed to the next deadline, so timed wakeups occur at full timespec resolution rather than being rounded to a fixed tick interval.

The application logic is identical whether the target is Linux or QuantumRT. A periodic task looks like this:

#include <time.h>

static void *worker(void *arg)
{
    struct timespec next;
    clock_gettime(CLOCK_MONOTONIC, &next);

    for (;;)
    {
        next.tv_sec += 1;
        clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME, &next, NULL);
        do_work(arg);
    }

    return NULL;
}

Contact

QuantumRT is at preemptsystems.com. For an evaluation license or technical questions, email contact@preemptsystems.com.

Popular repositories Loading

  1. Unity Unity Public

    Forked from ThrowTheSwitch/Unity

    Simple unit testing for C

    C

  2. pclint-plus-action pclint-plus-action Public

  3. .github .github Public

Repositories

Loading
Type
Select type
All Public Sources Forks Archived Mirrors Templates
Language
Select language
All C
Sort
Select order
Last updated Name Stars
Showing 3 of 3 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…


Back | FazBrowse Home | New Git URL