Skip to main content

Scheduler Ontology

Operating Systems
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 01 October 2026
Audio Overview
AI SEARCH

FLOW ALGEBRA — SCHEDULER ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/operating-systems/scheduler-ontology.html

FLOW SCHEDULER_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Operating Systems"
    ONTOLOGY = "Scheduler Ontology"
    PURPOSE = "Formalise operating-system scheduling entities, policies, runnable tasks, priorities, processor allocation, preemption, context switching, fairness and scheduling-performance relationships."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    SCHEDULER
    CPU_SCHEDULER
    PROCESS_SCHEDULER
    THREAD_SCHEDULER
    REAL_TIME_SCHEDULER
    SCHEDULING_POLICY
    FIRST_COME_FIRST_SERVED
    SHORTEST_JOB_FIRST
    SHORTEST_REMAINING_TIME
    ROUND_ROBIN
    PRIORITY_SCHEDULING
    MULTILEVEL_QUEUE
    MULTILEVEL_FEEDBACK_QUEUE
    FAIR_SCHEDULING
    DEADLINE_SCHEDULING
    RATE_MONOTONIC_SCHEDULING
    EARLIEST_DEADLINE_FIRST
    PROCESS
    THREAD
    TASK
    RUNNABLE_TASK
    BLOCKED_TASK
    CPU
    CORE
    PROCESSOR
    RUN_QUEUE
    READY_QUEUE
    PRIORITY
    NICE_VALUE
    DEADLINE
    PERIOD
    EXECUTION_TIME
    REMAINING_TIME
    TIME_SLICE
    QUANTUM
    CPU_BURST
    IO_BURST
    AFFINITY
    CPU_AFFINITY
    LOAD
    LOAD_BALANCE
    MIGRATION
    PREEMPTION
    DISPATCH
    CONTEXT_SWITCH
    WAIT_TIME
    RESPONSE_TIME
    TURNAROUND_TIME
    LATENCY
    THROUGHPUT
    FAIRNESS
    STARVATION
    PRIORITY_INVERSION
    PRIORITY_INHERITANCE
    UTILISATION
    SCHEDULER_STATE
    TASK_STATE
    EVENT
    TIMER_EVENT
    WAKE_EVENT
    BLOCK_EVENT
    CONFIGURATION
    OS_VERSION
    KERNEL_VERSION
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    PART_OF
    MANAGES
    SCHEDULES
    SELECTS
    DISPATCHES
    ASSIGNS_TO
    RUNS_ON
    PREEMPTS
    MIGRATES
    BALANCES
    ENQUEUES
    DEQUEUES
    BLOCKS
    WAKES
    YIELDS
    HAS_PRIORITY
    HAS_DEADLINE
    HAS_PERIOD
    HAS_TIME_SLICE
    HAS_AFFINITY
    HAS_LOAD
    HAS_STATE
    TRANSITIONS_TO
    HAS_WAIT_TIME
    HAS_RESPONSE_TIME
    HAS_TURNAROUND_TIME
    HAS_LATENCY
    HAS_THROUGHPUT
    HAS_FAIRNESS
    HAS_UTILISATION
    SUFFERS_STARVATION
    SUFFERS_PRIORITY_INVERSION
    INHERITS_PRIORITY
    HAS_CONFIGURATION
    DEPENDS_ON
    PRECEDES
    FOLLOWS
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    SCHEDULER_SPECIFICATIONS
    SCHEDULING_POLICY_DATA
    PROCESS_AND_THREAD_DATA
    RUN_QUEUE_DATA
    TASK_STATE_TRACES
    CPU_AND_CORE_DATA
    PRIORITY_DATA
    DEADLINE_DATA
    TIME_SLICE_DATA
    CPU_BURST_DATA
    IO_BURST_DATA
    AFFINITY_DATA
    LOAD_DATA
    MIGRATION_TRACES
    PREEMPTION_TRACES
    CONTEXT_SWITCH_TRACES
    PERFORMANCE_METRICS
    CONFIGURATION_DATA
    OS_VERSION_DATA
    KERNEL_VERSION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_SCHEDULER_IDENTIFIERS
    NORMALISE_POLICY_NAMES
    NORMALISE_TASK_IDENTIFIERS
    NORMALISE_CPU_AND_CORE_IDENTIFIERS
    NORMALISE_PRIORITY_VALUES
    NORMALISE_DEADLINE_UNITS
    NORMALISE_TIME_SLICE_UNITS
    NORMALISE_BURST_TIMES
    NORMALISE_AFFINITY_DATA
    NORMALISE_LOAD_METRICS
    NORMALISE_PERFORMANCE_METRICS
    NORMALISE_OS_AND_KERNEL_VERSIONS
    RESOLVE_TASK_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS SCHEDULING_PIPELINE {
    TASK_EVENT
      -> TASK_STATE_UPDATE
      -> RUN_QUEUE_UPDATE
      -> SCHEDULING_DECISION
      -> TASK_SELECTION
      -> CPU_OR_CORE_ASSIGNMENT
      -> DISPATCH
      -> EXECUTION
      -> PREEMPT_BLOCK_YIELD_OR_COMPLETE
      -> RESCHEDULE_IF_REQUIRED
  }

  PROCESS RUN_QUEUE_REASONING {
    RUNNABLE_TASK
      -> POLICY_SPECIFIC_QUEUE_POSITION

    POLICY_SPECIFIC_QUEUE_POSITION
      -> RUN_QUEUE

    TASK_BLOCK_OR_EXECUTION
      -> DEQUEUE

    TASK_WAKE_OR_CREATION
      -> ENQUEUE
  }

  PROCESS PRIORITY_REASONING {
    RUNNABLE_TASKS
      -> PRIORITY_COMPARISON

    PRIORITY_COMPARISON
      -> HIGHEST_EFFECTIVE_PRIORITY

    HIGHEST_EFFECTIVE_PRIORITY
      -> TASK_SELECTION

    EQUAL_PRIORITY
      -> POLICY_SPECIFIC_TIE_BREAKING
  }

  PROCESS ROUND_ROBIN_REASONING {
    READY_QUEUE
      -> HEAD_TASK

    HEAD_TASK
      -> DISPATCH

    DISPATCH
      -> EXECUTE_FOR_QUANTUM_OR_UNTIL_BLOCK_OR_EXIT

    QUANTUM_EXPIRES
      -> PREEMPT
      -> REQUEUE
  }

  PROCESS PREEMPTION_REASONING {
    RUNNING_TASK + SCHEDULING_EVENT
      -> PREEMPTION_CONDITION_CHECK

    HIGHER_PRIORITY_OR_POLICY_TRIGGER
      -> SAVE_CONTEXT

    SAVE_CONTEXT
      -> RUNNING_TASK_TO_READY

    SELECTED_TASK
      -> RESTORE_CONTEXT
      -> RUNNING
  }

  PROCESS MULTICORE_REASONING {
    RUNNABLE_TASKS + MULTIPLE_CORES
      -> PER_CORE_OR_GLOBAL_RUN_QUEUE

    LOAD_STATE
      -> LOAD_BALANCE_CHECK

    IMBALANCE
      -> MIGRATION_CANDIDATE_SELECTION

    MIGRATION_CANDIDATE_SELECTION
      -> AFFINITY_AND_COST_CHECK

    VALID_MIGRATION
      -> TARGET_CORE_ASSIGNMENT
  }

  PROCESS REAL_TIME_REASONING {
    REAL_TIME_TASK
      -> DEADLINE_AND_PERIOD_CONTEXT

    DEADLINE_AND_PERIOD_CONTEXT
      -> SCHEDULABILITY_ANALYSIS

    SCHEDULABILITY_ANALYSIS
      -> POLICY_SPECIFIC_PRIORITY_OR_DEADLINE_ORDER

    EXECUTION
      -> DEADLINE_CHECK

    COMPLETION_AFTER_DEADLINE
      -> DEADLINE_MISS
  }

  PROCESS PRIORITY_INVERSION_REASONING {
    HIGH_PRIORITY_TASK
      -> WAITS_FOR_RESOURCE

    RESOURCE_HELD_BY_LOWER_PRIORITY_TASK
      -> PRIORITY_INVERSION_CANDIDATE

    MEDIUM_PRIORITY_INTERFERENCE
      -> INVERSION_SEVERITY

    PRIORITY_INHERITANCE_IF_SUPPORTED
      -> TEMPORARY_PRIORITY_ADJUSTMENT
  }

  PROCESS PERFORMANCE_REASONING {
    SCHEDULER + WORKLOAD + CONFIGURATION
      -> SCHEDULING_PROFILE

    SCHEDULING_PROFILE
      -> WAIT_TIME
      -> RESPONSE_TIME
      -> TURNAROUND_TIME
      -> CONTEXT_SWITCH_OVERHEAD
      -> CPU_UTILISATION
      -> THROUGHPUT
      -> FAIRNESS
      -> MIGRATION_OVERHEAD

    SCHEDULING_PROFILE
      -> BOTTLENECK_OR_STARVATION_HYPOTHESIS
  }

  RULES {
    IF TASK_IS_RUNNING
    THEN LINK TASK TO CPU_OR_CORE_AND_TIME_CONTEXT

    IF TASK_IS_RUNNABLE
    THEN DO_NOT_ASSERT_RUNNING_STATE_WITHOUT_DISPATCH

    IF PREEMPTION_OCCURS
    THEN PRESERVE PREEMPTION_CAUSE_AND_CONTEXT_SWITCH

    IF TASK_HAS_AFFINITY
    THEN CHECK_AFFINITY_BEFORE_CPU_ASSIGNMENT_OR_MIGRATION

    IF HIGH_PRIORITY_TASK_WAITS_FOR_LOWER_PRIORITY_RESOURCE_HOLDER
    THEN CHECK_PRIORITY_INVERSION_CONTEXT

    IF TASK_WAITS_FOR_LONG_PERIOD
    THEN DO_NOT_ASSERT_STARVATION_WITHOUT_POLICY_AND_WORKLOAD_CONTEXT

    IF SCHEDULING_PERFORMANCE_IS_COMPARED
    THEN REQUIRE POLICY_WORKLOAD_HARDWARE_AND_CONFIGURATION_CONTEXT

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND SCHEDULER_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        POLICY_CERTAINTY,
        TASK_IDENTITY_CERTAINTY,
        RUN_QUEUE_OBSERVABILITY,
        SCHEDULER_TRACE_COMPLETENESS,
        CPU_ASSIGNMENT_COMPLETENESS,
        PRIORITY_AND_AFFINITY_CONTEXT,
        PERFORMANCE_MEASUREMENT_QUALITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF RUN_QUEUE_STATE_IS_PARTIAL
    THEN REDUCE_SCHEDULING_DECISION_INFERENCE_CONFIDENCE

    IF POLICY_OR_CONFIGURATION_IS_UNKNOWN
    THEN REDUCE_SCHEDULER_BEHAVIOUR_CONFIDENCE

    IF COMPLETE_TRACE_CONFIRMS_SCHEDULING_DECISION
    THEN INCREASE CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        SCHEDULER_IDENTIFIER,
        POLICY,
        OS_VERSION,
        KERNEL_VERSION,
        CONFIGURATION
      )

    IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
    THEN A SEMANTICALLY_EQUIVALENT_TO B

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    RUNNABLE != RUNNING
    PRIORITY != GUARANTEED_EXECUTION_ORDER_WITHOUT_POLICY_CONTEXT
    HIGH_PRIORITY != GUARANTEED_ZERO_WAIT
    TIME_SLICE != TOTAL_EXECUTION_TIME
    PREEMPTION != TERMINATION
    MIGRATION != CONTEXT_SWITCH_IN_ALL_CONTEXTS
    LOAD_BALANCE != EQUAL_TASK_COUNT
    FAIRNESS != EQUAL_CPU_TIME_IN_ALL_POLICIES
    LONG_WAIT != NECESSARILY_STARVATION
    PRIORITY_INVERSION != DEADLOCK
    DEADLINE != PRIORITY_IN_ALL_POLICIES
    SCHEDULING_PERFORMANCE_IS_WORKLOAD_DEPENDENT
    HARDWARE_TOPOLOGY_AFFECTS_MULTICORE_SCHEDULING
    OS_KERNEL_AND_CONFIGURATION_AFFECT_SCHEDULER_BEHAVIOUR
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_SCHEDULER_IDENTIFIER
    CHECK_SCHEDULING_POLICY
    CHECK_TASK_IDENTITIES
    CHECK_TASK_STATES
    CHECK_RUN_QUEUE_STATE
    CHECK_PRIORITY
    CHECK_DEADLINE_AND_PERIOD
    CHECK_TIME_SLICE
    CHECK_CPU_ASSIGNMENT
    CHECK_AFFINITY
    CHECK_PREEMPTION
    CHECK_MIGRATION
    CHECK_LOAD_BALANCING
    CHECK_PRIORITY_INVERSION
    CHECK_PERFORMANCE_CONTEXT
    CHECK_OS_AND_KERNEL_CONTEXT
    CHECK_CONFIGURATION
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_SCHEDULER_ENTITIES
    SCHEDULING_POLICY_RELATIONS
    RUN_QUEUE_RELATIONS
    TASK_SELECTION_RELATIONS
    CPU_AND_CORE_ASSIGNMENTS
    PREEMPTION_RELATIONS
    CONTEXT_SWITCH_RELATIONS
    AFFINITY_RELATIONS
    MIGRATION_RELATIONS
    LOAD_BALANCING_RELATIONS
    REAL_TIME_SCHEDULING_RELATIONS
    PRIORITY_INVERSION_RELATIONS
    STARVATION_HYPOTHESES
    SCHEDULING_PERFORMANCE_PROFILES
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON SCHEDULER_EVENT {
      NORMALISE
      RESOLVE_TASK_IDENTITIES
      UPDATE_TASK_STATES
      UPDATE_RUN_QUEUES
      UPDATE_CPU_ASSIGNMENTS
      UPDATE_AFFINITY_AND_LOAD
      RECOMPUTE_SCHEDULING_RELATIONS
      UPDATE_CONFIDENCE
    }

    ON NEW_TRACE_OR_PERFORMANCE_DATA {
      LINK_EVIDENCE
      UPDATE_SCHEDULING_TRACE
      UPDATE_PERFORMANCE_PROFILE
      REASSESS_STARVATION_AND_PRIORITY_INVERSION
      REASSESS_LOAD_BALANCE
      UPDATE_CONFIDENCE
      RECORD_PROVENANCE
    }

    ON ONTOLOGY_REVISION {
      REMAP_TERMS
      CHECK_SEMANTIC_EQUIVALENCE
      IDENTIFY_DEPRECATED_TERMS
      MIGRATE_RELATIONSHIPS
      PRESERVE_PRIOR_VERSION_REFERENCES
    }
  }

  FLOW_HASH {
    HASH_INPUT =
      CANONICALISE(
        ENTITY_TYPES,
        RELATIONSHIPS,
        RULES,
        CONFIDENCE,
        SEMANTIC_EQUIVALENCE,
        REASONING_CONSTRAINTS,
        UPDATE_MODEL
      )

    FLOW_HASH = SHA256(HASH_INPUT)
  }

  AI_CONSUMPTION {
    INDEX {
      ONTOLOGY
      ENTITY_TYPES
      RELATIONSHIPS
      RULES
      OUTPUTS
    }

    RETRIEVE {
      BY_SCHEDULER
      BY_POLICY
      BY_TASK
      BY_RUN_QUEUE
      BY_PRIORITY
      BY_DEADLINE
      BY_CPU
      BY_CORE
      BY_AFFINITY
      BY_PREEMPTION
      BY_MIGRATION
      BY_STARVATION
      BY_PRIORITY_INVERSION
      BY_PERFORMANCE
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      TRACE_SCHEDULING_PIPELINE
      TRACE_RUN_QUEUE_STATE
      ANALYSE_PRIORITY_SCHEDULING
      ANALYSE_ROUND_ROBIN
      ANALYSE_PREEMPTION
      ANALYSE_MULTICORE_SCHEDULING
      ANALYSE_REAL_TIME_SCHEDULING
      ANALYSE_PRIORITY_INVERSION
      ANALYSE_SCHEDULER_PERFORMANCE
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_RUNNABLE_FROM_RUNNING
      PRESERVE_POLICY_PRIORITY_AFFINITY_AND_TIME_CONTEXT
      DISTINGUISH_PREEMPTION_FROM_TERMINATION
      DISTINGUISH_PRIORITY_INVERSION_FROM_DEADLOCK
      PRESERVE_WORKLOAD_HARDWARE_OS_AND_KERNEL_CONTEXT
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_SCHEDULER_INFERENCE
    }
  }

  TERMINAL {
    RESULT =
      VALIDATED(
        SEMANTICALLY_NORMALISED(
          EVIDENCE_LINKED(
            CONFIDENCE_AWARE(
              SCHEDULER_KNOWLEDGE
            )
          )
        )
      )
  }
}

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ