Selected work

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

  1. 1task set
  2. 2priorities
  3. 3ready / delay
  4. 4promotion
  5. 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.

Scope

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.

  1. The repository represents periodic tasks with execution cost, period, ASAP or ALAP preference, and assigned priority.

  2. The POFP scheduler keeps ASAP arrivals ready while ALAP jobs wait until their promotion time.

  3. 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.

  1. Step1

    Represented execution cost, period, preference, and priority as explicit task data.

  2. Step2

    Implemented preference-aware priority assignment and response-time calculations before simulation.

  3. Step3

    Separated arrivals, delay-queue promotions, ready-queue dispatch, preemption, and completion into individual scheduler operations.

  4. 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.