Project 3 of 4
Systems programming · Research implementation · Late 2025
POFP Scheduler
A Python implementation of preference-oriented fixed-priority scheduling.
- Role
- Research implementation
- Deliverable
- Python scheduler and scheduling traces
- Focus
- Fixed-priority real-time systems
Overview
This project turns preference-oriented fixed-priority scheduling into executable Python. It models periodic tasks that should run as soon as possible or as late as possible, then exposes queue state, promotions, priorities, and schedule segments for inspection.
- Python
- Real Time Scheduling
- OS Concepts
Project flow
Architecture and flow.
5 connected stages
- 1task set
- 2priorities
- 3ready / delay
- 4promotion
- 5trace
Primary paper
Preference-Oriented Fixed-Priority Scheduling for Real-Time Systems
The paper is the algorithmic source for separating ASAP and ALAP task execution through ready and delay queues with promotion-time scheduling.
IEEE 6945682
Read the primary sourceScope
Work completed and source material.Scope and evidence
Scope and contribution.
This is a focused research implementation, not a production operating-system scheduler. It translates the supplied POFP paper and related priority-assignment concepts into Python data structures, queue operations, response-time calculations, and visual scheduling traces.
The repository represents periodic tasks with execution cost, period, ASAP or ALAP preference, and assigned priority.
The POFP scheduler keeps ASAP arrivals ready while ALAP jobs wait until their promotion time.
State history and Gantt-style schedule output make queue and dispatch decisions inspectable.
Problem
Main technical constraint.Problem framing
Implementing the scheduling model.
The research expresses scheduling behaviour through mathematical notation and event rules. I had to preserve ASAP and ALAP preferences, priority assignment, promotion times, preemption, and dual-queue behaviour while making every decision inspectable in Python.
Implementation
4 implementation steps.Implementation
Implementation steps.
- Step1
Represented execution cost, period, preference, and priority as explicit task data.
- Step2
Implemented preference-aware priority assignment and response-time calculations before simulation.
- Step3
Separated arrivals, delay-queue promotions, ready-queue dispatch, preemption, and completion into individual scheduler operations.
- Step4
Recorded queue state and schedule segments across representative task sets so decisions could be reviewed against the model.
Result
Executable scheduler with trace output.
The Python implementation runs preference-oriented schedules and records priorities, response times, promotion offsets, queue state, and execution segments. It makes the effect of ASAP and ALAP preferences visible through console and Gantt-style output.
What I learned
This project taught me to turn dense specifications into data structures, rules, and tests.