bAUTOSAR: A Javascript Real-Time Abstraction for Improved Website Responsiveness

The normal execution semantic of Javascript programs is single-threaded, non-blocking, and event-driven. While this is sufficient for many applications, large websites hit limits in their responiveness when tasks of different importance have to be executed concurrently. For example, when the javascript interpreter is executing a longer computation and the user generates an event, the computation delays the event handling until it is finished.

However, there already is a large field of computer science that works on prioritized execution and getting things done in time: real-time systems. In this thesis, we want to bring real-time scheduling to the browser.

function TaskA(x) {
    var i = 0;
    while(i < x) {
        console.log(x + " " + i);
        i++;
    };
};

function TaskB(x) {
    while(true) { i++; };
};

OSEK.ready(TaskA(20), deadline=100);
OSEK.ready(TaskB());
OSEK.run();

In this thesis, the student develops an interface that resembles the real-time API of the embedded OSEK operating system, which is used in automotive real-time applications. Thereby, a run-time environment with threaded and prioritized execution is developed and integrated into the event handling semantic of regular Javascript programs. It is also target of the thesis to evaluate different task scheduling policies (like fixed-priority or earliest-deadline first) on the website responiveness.

tl;dr: Improve website responsiveness by writing a real-time operating system in Javascript.

Further Reading