A research project investigating an improved Round-Robin scheduling algorithm with frequency-based priority mechanism for real-time systems.
This research proposes an enhanced Round-Robin scheduling algorithm that introduces a dynamic priority mechanism based on execution frequency. Rather than adjusting time quantum lengths, the approach controls task execution frequency in the scheduling queue to reflect priority differences. This method maintains the fairness characteristics of RR scheduling while providing better support for real-time priority requirements.
This scheduling algorithm introduces several innovative features that enhance traditional Round-Robin scheduling while maintaining its fundamental benefits:
At its core, the algorithm implements a frequency-based priority mechanism within the RR framework, allowing for dynamic task prioritization without compromising the basic scheduling structure. By maintaining constant time quantum lengths, the system ensures predictable context switching overhead and stable operation characteristics.
The key innovation lies in its dynamic priority support through execution frequency control - instead of modifying time slices, the algorithm adjusts how often tasks enter the scheduling queue. This approach achieves:
- Efficient O(1) scheduling complexity, ensuring scalability with increased task counts
- Fair resource allocation that balances priority requirements with basic scheduling fairness
- Predictable behavior through theoretical analysis and experimental validation
The design particularly excels in real-time environments where both deterministic scheduling and priority handling are critical requirements. Through extensive testing and validation, the algorithm demonstrates consistent performance across various workload scenarios while maintaining the simplicity that makes RR scheduling attractive in practice.
This project uses XeLaTeX (also known as XeTeX) for document compilation. The build process is configured through .latexmkrc
for automated compilation.
Before building this research paper, you'll need several TeX-related tools installed on your system. The project uses XeLaTeX for its superior Unicode and CJK text support, which requires either a TeX Live or MiKTeX distribution.
For automated builds and compilation, the project relies on latexmk - a Perl script that automates the LaTeX document generation process by determining the correct sequence and number of runs needed. Additionally, BibTeX is required to process the bibliography references from references.bib into the final document format.
Make sure you have:
- A complete TeX distribution (TeX Live or MiKTeX) with XeLaTeX support
- The latexmk build utility configured in your environment
- BibTeX for processing bibliography references
These tools work together to generate the final PDF output with proper formatting, citations, and cross-references.
The project uses latexmk
to automate the LaTeX compilation process. This tool handles all the necessary compilation steps, including running XeLaTeX multiple times for cross-references and bibliography generation.
Common build commands:
# Generate PDF with XeLaTeX
latexmk -xelatex main.tex
# Clean auxiliary files
latexmk -c
# Force rebuild all
latexmk -xelatex -g main.tex
# Watch mode for development
latexmk -xelatex -pvc main.tex
The watch mode (-pvc
) is particularly useful during development as it automatically recompiles the document whenever changes are detected.
The build process generates several files that serve different purposes in the document compilation:
- main.pdf is the final output document containing your research paper with all formatting, figures, and references properly rendered
- main.bbl contains the processed bibliography entries from your BibTeX database, formatted according to the GB/T 7714 citation style
- main.aux stores cross-referencing information, keeping track of section numbers, figure labels, and citation keys
These files work together to produce a properly formatted academic document with working cross-references and citations.
This research project uses modern development tools and workflows to maintain code quality and enable collaborative research. Here's how to get started and make the most of the available tools.
Before you begin contributing, you'll need to set up your development environment. Run these commands in your terminal:
# Install dependencies
npm install
# Setup git hooks
npx husky install
# Configure git-secret (first time only)
git secret init
git secret tell [email protected]
Our development workflow integrates several key tools that work together to ensure code quality and maintain consistent standards:
Git-secret provides encryption for sensitive research data and configurations, protecting intellectual property while enabling collaboration. This works alongside Husky, which enforces quality checks through Git hooks before commits and pushes.
For version control and releases, we use release-it with conventional commits to maintain a clear history and automate versioning. The commit messages follow a standardized format that makes changes easy to track and understand.
Code quality is maintained through Trunk's comprehensive checking system, which runs automated linting and formatting on your code to ensure consistency across all contributions.
To learn more about specific tools, consult these resources:
- Git-secret Documentation - For managing sensitive files
- Husky Guide - For Git hooks setup
- release-it Documentation - For release management
- Trunk Docs - For code quality tools
- Conventional Commits - For commit message formatting
Key configuration files that control these tools:
- .gitsecret - Manages encrypted files and keys
- .trunk/configs - Defines code quality rules and checks
- .commitlintrc.json - Sets commit message standards
Please see CONTRIBUTING.md for detailed contribution guidelines.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
You are free to:
- Share — copy and redistribute the material in any medium or format
- Adapt — remix, transform, and build upon the material
Under the following terms:
- Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made
- NonCommercial — You may not use the material for commercial purposes
- ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license
Frequency-based Priority Round-Robin Scheduling Research
by
Zhang Jia Rong
is licensed under
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
For full license terms, see:
- LICENSE.txt in this repository
- Creative Commons BY-NC-SA 4.0 License Legal Code
For questions about the research, implementation details, or collaboration opportunities, please don't hesitate to reach out. I'm particularly interested in discussing real-time scheduling algorithms, embedded systems optimization, and industrial automation applications.
Zhang Jia Rong
DMT Intelligent Equipment Technology Co., Ltd.
Foshan, China
You can reach me through:
- Email: [email protected]
- GitHub: @zhang-jia-rong
I welcome discussions and potential collaborations in:
- Implementation experiences with frequency-based scheduling
- Real-time systems optimization techniques
- Industrial automation use cases
- Performance analysis and benchmarking
- Integration with existing RTOS platforms
Whether you're interested in implementing the algorithm, contributing to the research, or exploring potential applications in your field, I'm happy to engage in technical discussions and explore opportunities for collaboration.