Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Real Time Scheduling

ASecurity

Use when you must decide the offline schedulability of a periodic hard-real-time task set: compute the processor utilization of (C, T) tasks with implicit deadlines, apply the Liu-Layland utilization bound for rate-monotonic fixed-priority scheduling, run the exact iterative response-time analysis task by task, and test earliest-deadline-first feasibility with the full-utilization condition. Produces the utilization, the RM bound verdict, the exact response times with an RM feasibility verdic...

2 stars
0 votes
0 copies
0 views
Added 9/27/2026
ai-agentspythongo

Works with

claude codecli

Security Analysis

A100/100

Scanned 9/27/2026

Install to Claude Code

$npx -y skills add ashfordeOU/aero-agent-skills --skill real-time-scheduling --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Real Time Scheduling?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Real Time Scheduling
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-real-time-scheduling/badge)](https://www.skillsdirectory.com/skills/ashfordeou-real-time-scheduling)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: real-time-scheduling
description: "Use when you must decide the offline schedulability of a periodic hard-real-time task set: compute the processor utilization of (C, T) tasks with implicit deadlines, apply the Liu-Layland utilization bound for rate-monotonic fixed-priority scheduling, run the exact iterative response-time analysis task by task, and test earliest-deadline-first feasibility with the full-utilization condition. Produces the utilization, the RM bound verdict, the exact response times with an RM feasibility verdict, the EDF feasibility verdict, and an overall scheduling verdict for avionics process and partition task sets. Trigger: rate monotonic scheduling, response time analysis, liu layland bound, earliest deadline first, cpu utilization, fixed priority scheduling, schedulability, worst case execution time."
license: Apache-2.0
compliance: STANDARDS-REF
standards:
  - id: do-178c
    reference-only: true
gated: false
domain: avionics
pack: fsw
compatibility: "agentskills.io SKILL.md; any SKILL.md host (Claude Code, Hermes, OpenClaw)"
metadata:
  domain: avionics
  subdomain: fsw
  tags: [real-time-scheduling, rate-monotonic-scheduling, response-time-analysis, liu-layland-bound, earliest-deadline-first, cpu-utilization, fixed-priority-scheduling]
  version: 0.1.0
  author: AeroSkills
---

# Real-Time Scheduling (avionics/fsw/real-time-scheduling)

Use when you must decide whether a periodic hard-real-time task set can
meet every deadline on a single processor, before it ever runs. Each
task is a (C, T) pair: worst-case execution time C and period T, with
the implicit deadline D = T, all in one time unit. This leaf implements
the standard public feasibility mathematics (Liu and Layland 1973 plus
exact iterative response-time analysis) in pure Python stdlib: the
processor utilization, the Liu-Layland sufficient bound for
rate-monotonic fixed-priority scheduling, exact per-task response times
with an RM verdict, and the earliest-deadline-first full-utilization
verdict. It schedules the processes and partitions inside an ARINC 653
style avionics software partition layout, pairing with
avionics/ima/ima-partitioning, which owns the major-frame cyclic window
arithmetic that surrounds this leaf's process set.

## Domain quick reference

- Task set convention: n tasks, each (C_i, T_i) with implicit deadline
  D_i = T_i, all in the same time unit. Shorter period means higher
  priority under RM; equal periods are broken by list index (the
  earlier task in the list is higher priority).
- Utilization: U = sum_i C_i / T_i. This is the fraction of the
  processor the task set demands in the long run.
- Liu-Layland bound: U_rm(n) = n (2^(1/n) - 1). Anchor values:
  U_rm(2) = 0.828427, U_rm(3) = 0.779763, U_rm(4) = 0.756828, and
  U_rm(1) = 1. The bound decreases toward ln 2 ~ 0.693 as n grows.
- RM sufficient test: if U <= U_rm(n) the set is feasible under RM. The
  bound is sufficient, not necessary: a set with U above the bound may
  still be RM-feasible, which is exactly when the exact analysis earns
  its keep.
- Exact RM response time of task i (fixed-point iteration):
  R_i = C_i + sum_{j in hp(i)} ceil(R_i / T_j) * C_j, iterated from
  R_i = C_i until the value stops changing, where hp(i) is the set of
  higher-priority tasks. RM is feasible iff every converged R_i <= T_i.
- Divergence handling: the response-time sequence is monotone
  non-decreasing, so when an iterate grows past the task period, or
  past the cap 1000 * max(T) of the set, it can never converge to a
  schedulable value and the analysis reports divergence. A diverging or
  deadline-crossing task makes the whole set RM-infeasible.
- EDF feasibility (implicit deadlines): U <= 1 is necessary and
  sufficient, because EDF is optimal among all scheduling algorithms on
  a single processor.
- Scheduling verdicts: "RM-guaranteed-by-UB" when the bound test
  passes; "RM-exact-feasible (UB inconclusive)" when the bound test
  fails but exact response-time analysis converges within every period;
  "EDF-feasible-only" when RM exact analysis fails but EDF can schedule
  the U <= 1 set; "RM-infeasible" otherwise.
- Scope notes: WCET estimation, jitter and blocking analysis, and
  arbitrary-deadline response-time extensions are out of scope; the
  model is the classic implicit-deadline periodic task set. ARINC 653
  partition schedule windows and message bus response windows are not
  this leaf.

## Workflow

1. Collect the task set as a list of (C, T) pairs in one time unit,
   worst-case execution time and period each, implicit deadline
   D = T. Every C and T must be positive; an empty list, a
   non-positive value, or a malformed entry raises ValueError from
   every function.
2. Compute the processor demand: utilization(tasks) returns U. If
   U > 1 the processor is oversubscribed: no single-processor
   scheduling algorithm can work, and EDF feasibility will fail.
3. Run the cheap sufficient test first: rm_ub_feasible(tasks) applies
   the Liu-Layland bound U <= U_rm(n). A True verdict closes the case
   (RM is guaranteed). A False verdict is inconclusive, not a failure.
4. When the bound is inconclusive, run the exact analysis:
   rm_response_times(tasks) returns the converged R_i list, or None
   when the iteration diverges (an iterate exceeded its period or the
   1000 * max(T) cap), and rm_feasible(tasks) gives the exact RM
   verdict. This is where rate-monotonic analysis beats the
   utilization bound: a set that fails step 3 can still pass here.
5. Check the EDF alternative: edf_feasible(tasks) reports whether U
   <= 1, which for implicit-deadline sets is a complete EDF test.
6. Run scheduling_summary(tasks) once to gather every result: keys
   utilization, n_tasks, liu_layland_bound, rm_ub_verdict,
   rm_exact_response_times, rm_exact_feasible, edf_feasible, and a
   single verdict string.
7. Record the verdict and the response times in the scheduling
   analysis artifact for the certification package; re-run the
   contract test after any change to the task set.

## Worked example

Spec task set A, [(1, 3), (1, 4), (2, 8)] (times in ms):

- Utilization: U = 1/3 + 1/4 + 2/8 = 0.8333333333333333.
- Liu-Layland bound for 3 tasks: 0.7797631496846196, so U > bound and
  rm_ub_feasible returns False: the bound test is inconclusive.
- Exact response-time analysis converges:
  rm_response_times(A) = [1.0, 2.0, 6.0] ms, all within their periods
  (3, 4, 8 ms), so rm_feasible returns True.
- EDF: U = 0.8333 <= 1, so edf_feasible returns True.
- scheduling_summary(A)["verdict"] is
  "RM-exact-feasible (UB inconclusive)": the key demonstration that
  response-time analysis proves schedulability where the Liu-Layland
  bound stays silent.

Set B, [(2, 3), (2, 5), (2, 7)]: U = 1.3523809523809525 > 1, so
edf_feasible is False, rm_response_times returns None (the second task
response time crosses its period and the iteration diverges), and the
verdict is "RM-infeasible".

Set C, [(1, 5), (1, 6), (2, 10)]: U = 0.5666666666666667 <= 0.7798, so
rm_ub_feasible is True and the verdict is "RM-guaranteed-by-UB"; the
exact analysis confirms with response times [1.0, 2.0, 4.0].

## Verification

- Confirm the Liu-Layland anchors: liu_layland_bound(2) = 0.828427,
  liu_layland_bound(3) = 0.779763, liu_layland_bound(4) = 0.756828
  (each within 1e-5).
- Confirm worked set A gives U 0.8333, rm_ub_feasible False (bound
  inconclusive), rm_response_times [1.0, 2.0, 6.0] with rm_feasible
  True, edf_feasible True, verdict "RM-exact-feasible (UB
  inconclusive)".
- Confirm worked set B gives U 1.3524 > 1, edf_feasible False, RTA
  divergence (None), rm_feasible False.
- Confirm worked set C gives U 0.5667, rm_ub_feasible True, response
  times [1.0, 2.0, 4.0], verdict "RM-guaranteed-by-UB".
- Confirm adding a task raises U and doubling a task's C doubles that
  task's utilization contribution.
- Confirm an empty task list, C <= 0, T <= 0, malformed or
  non-numeric entries, and a fractional task count raise ValueError
  from every public function.
- Confirm identical outputs run to run (no randomness anywhere).
- Run the deterministic contract test offline: python3
  scripts/test_real_time_scheduling.py (35 tests).

## Related leaves

- avionics/ima/ima-partitioning: ARINC 653 major-frame cyclic window
  arithmetic; this leaf schedules the periodic process sets that run
  inside those partition windows.
- avionics/fsw/cfs-architecture: flight software application
  routing; its periodic applications carry the C and T budgets this
  leaf checks.
- avionics/data-bus/mil-std-1553: bus command/response protocol
  timing; its response-window concept is a bus term, not a task
  response time.

## Pitfalls

- Reading a failed utilization bound as infeasibility: the Liu-Layland
  bound is sufficient, not necessary - worked set A fails the bound
  (U 0.8333 above U_rm(3) 0.7798) yet is exactly RM-feasible with
  response times [1.0, 2.0, 6.0], so a False rm_ub_feasible verdict
  means run the exact analysis, not declare the set unschedulable.
- Treating divergence as a numeric hiccup: the response-time sequence
  is monotone non-decreasing, so an iterate that crosses its period
  or the 1000 * max(T) cap can never converge - rm_response_times
  returns None and the whole set is RM-infeasible (set B), which is a
  verdict, not an error to paper over.
- Mixing time units in one task set: every C_i and T_i must share one
  time unit and the implicit deadline is D_i = T_i - a task listed in
  seconds against milliseconds, or with an explicit different
  deadline, is outside this leaf's model and corrupts U and the
  response-time iteration.
- Ignoring the priority order: RM assigns priority by shorter period,
  with equal periods broken by list index, and the exact analysis
  sums only over higher-priority tasks hp(i) - the response-time
  result is only valid for the task list in RM priority order.
- Assuming EDF always saves the set: EDF is complete only for U <= 1,
  so an over-subscribed set (U 1.3524, set B) is infeasible under any
  single-processor algorithm, and the "EDF-feasible-only" verdict
  means the exact RM analysis failed - the schedule then needs an EDF
  runtime, not rate-monotonic priorities.
- Routing adjacent timing domains here: WCET estimation, jitter and
  blocking analysis, arbitrary-deadline extensions, ARINC 653
  partition schedule windows (ima/ima-partitioning), and bus response
  windows (data-bus/mil-std-1553) are not this leaf's classic
  implicit-deadline periodic model.

## Behavior contract (gate 3)

Run the deterministic contract test (stdlib unittest, offline, no
network, exits 0):

    python3 scripts/test_real_time_scheduling.py

The test covers the Liu-Layland anchors U_rm(2/3/4), the three worked
task sets A, B and C from the spec plus an EDF-feasible-only set D,
exact response times with integrality for integer input, divergence
detection returning None, single-task closed forms (R = C, feasible iff
C <= T), utilization monotonicity and doubling, the EDF unit-utilization
boundary, the exact convenience-dict keys, ValueError rejection of
empty, non-positive and malformed task lists, and run-to-run
determinism.

## Compliance

- Standards referenced, not reproduced: DO-178C (avionics software
  lifecycle, including scheduling analysis of the software partition
  task sets) is listed reference-only per standards-map.yaml; the
  feasibility mathematics above is pure public science (Liu and
  Layland, 1973), summary-only.
- ARINC 653 is not in standards-map.yaml and is not needed: the
  process-level scheduling theory is independent of the partition
  standard text.
- compliance: STANDARDS-REF, gated: false.

Attribution

ashfordeOUashfordeOU
View sourceMore from ashfordeOU →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

694821 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →