Dependencies • Build • Input Format • Usage • Features • Limitations • License
Schedule-abstraction graph (SAG) is a reachability-based response-time analysis for real-time systems.
You can visit the official repository of SAG here.
This program uses the following packages:
github.com/docopt/docopt-go
github.com/lfkeitel/verbose
gopkg.in/yaml.v3
For building the program, you can use the following command:
go build ./nptest.go
For running the program, you can use the following command:
go run ./nptest.go -j <input-file> [options]
This tool works with old SAG input format with csv format (Example) and also new SAG input format with yaml format (Example). Each input file describes a set of jobs. Each job is described by the following fields:
- Task ID — an arbitrary numeric ID to identify the task to which a job belongs
- Job ID — a unique numeric ID that identifies the job
- Release min — the earliest-possible release time of the job (equivalently, this is the arrival time of the job)
- Release max — the latest-possible release time of the job (equivalently, this is the arrival time plus maximum jitter of the job)
- Cost min — the best-case execution time of the job (can be zero)
- Cost max — the worst-case execution time of the job
- Deadline — the absolute deadline of the job
- Priority — the priority of the job (EDF: set it equal to the deadline)
For running the test for an example input file example4.csv
, use the following command:
go run ./nptest.go -j ./example/example4.csv -r 5 -c
If you already have a compiled version of the program, you can use the following command:
./nptest -j ./example/example4.csv -r 5 -c
See the help ./nptest --help
or go run ./nptest.go -h
for further options.
- Classic single processor SAG.
- Single processor SAG with partial-order reduction.
- For now, the framework just supports single processor.
- Implementation of uni-processor
- Implementation of uni-processor with partial-order reduction
- Implement dependency
- Implement IIP
- Implement global multi-processor
With your feedback and conversation, you can assist me in developing this application.
- Open pull request with improvements
- Discuss feedbacks and bugs in issues
Copyright © 2022 Pourya Gohari
This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details