x
Help
This benchmarks serves as a case study on RT.js, a practical real-time scheduler for web applications. It shows, that the standard JavaScript run-to-completion semantics hit their limits, when there are compute intensive operations. Also its First-Come-First-Served (FCFS) scheduling policy does not allow prioritizing jobs over other ones, for example making jobs, which respond to user input, more important than ones, which do background computation.
RT.js solves that, by introducing Preemption Points ahead-of-time into existing JavaScript code, and scheduling the jobs with its own scheduler. Therefore no modification of the JavaScript engine is necessary.
Links
Task Types
This benchmark consists of four tasks:
- Box Task
- Invoked every frame, moves the box, Deadline: 10ms
- Input Task
- Invoked on every ENTER stroke, creates an AES-task, sporadic, Deadline: 100ms
- AES Task
- Encrypts the input 250 times and decrypts it again; posts the results in the console, sporadic, Deadline: 500ms
- SchedCAT Task Set
- A generated set of tasks (n=15); the jobs buisy wait for their WCET; combined utilization: 0.75; Period in [1,52]s, Deadline = Period, WCET in [15,1815]ms
Options
- Step Length
- Denotes the amount of seconds each subtest runs, i.e. how long only the box animation is active, then the box+input, box+schedcat, box+schedcat+input; rt.js+box,...
- Run Benchmark
- Run automatic tests, switching every permutation of the options on; running with JavaScript semantics (every job will run-to-completion, without any preemption, in a strict first-come-first-served manner. Data will be automatically input for the input-task to process.
- Enable RT.js Scheduler
- Switch between the JavaScript scheduling scheme (run-to-completion, with a first-come-first served policy) and our RT.js scheduler (pseudo-preemption between jobs with an earliest deadline first polcy).
- Enable SchedCAT load
- Introduce the generated task set into the system
- Encrypt Input
- Enable the Input and AES Tasks; every input (entered with ENTER), will be encrypted and descrypted 250 times, and the result will be posted to the console.
- Animate Box
- Enables or disables the box-animation, i.e. stops the box from moving