Skip to main content

Process 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 — PROCESS ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/operating-systems/process-ontology.html

FLOW PROCESS_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Operating Systems"
    ONTOLOGY = "Process Ontology"
    PURPOSE = "Formalise operating-system processes, lifecycle states, execution contexts, resources, scheduling, memory, communication, synchronisation and termination relationships."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    PROCESS
    PROGRAM
    EXECUTABLE
    PROCESS_IDENTIFIER
    PARENT_PROCESS
    CHILD_PROCESS
    SYSTEM_PROCESS
    USER_PROCESS
    DAEMON
    SERVICE_PROCESS
    ZOMBIE_PROCESS
    ORPHAN_PROCESS
    THREAD
    MAIN_THREAD
    PROCESS_CONTROL_BLOCK
    EXECUTION_CONTEXT
    CPU_CONTEXT
    REGISTER_STATE
    PROGRAM_COUNTER
    STACK_POINTER
    PROCESS_STATE
    NEW_STATE
    READY_STATE
    RUNNING_STATE
    BLOCKED_STATE
    WAITING_STATE
    SUSPENDED_STATE
    TERMINATED_STATE
    SCHEDULER
    SCHEDULING_POLICY
    CPU
    CORE
    TIME_SLICE
    PRIORITY
    ADDRESS_SPACE
    VIRTUAL_MEMORY
    PAGE
    HEAP
    STACK
    MEMORY_MAPPING
    FILE
    FILE_DESCRIPTOR
    WORKING_DIRECTORY
    ENVIRONMENT_VARIABLE
    CREDENTIAL
    USER
    GROUP
    PERMISSION
    PRIVILEGE
    RESOURCE
    LOCK
    MUTEX
    SEMAPHORE
    SIGNAL
    PIPE
    SOCKET
    SHARED_MEMORY
    MESSAGE_QUEUE
    IPC_CHANNEL
    SYSTEM_CALL
    IO_REQUEST
    DEVICE
    EXIT_STATUS
    EVENT
    STATE_TRANSITION
    ERROR
    FAILURE
    CONFIGURATION
    OS_VERSION
    KERNEL_VERSION
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    CREATED_FROM
    CREATES
    HAS_PARENT
    HAS_CHILD
    HAS_THREAD
    HAS_MAIN_THREAD
    HAS_CONTROL_BLOCK
    HAS_CONTEXT
    HAS_STATE
    TRANSITIONS_TO
    EXECUTES
    SCHEDULED_BY
    ASSIGNED_TO
    RUNS_ON
    BLOCKS_ON
    WAITS_FOR
    WAKES_ON
    SUSPENDS
    RESUMES
    TERMINATES
    HAS_PRIORITY
    HAS_TIME_SLICE
    HAS_ADDRESS_SPACE
    MAPS_MEMORY
    ALLOCATES
    DEALLOCATES
    OPENS
    CLOSES
    HAS_FILE_DESCRIPTOR
    HAS_WORKING_DIRECTORY
    HAS_ENVIRONMENT
    HAS_CREDENTIAL
    HAS_PERMISSION
    HAS_PRIVILEGE
    OWNS
    USES_RESOURCE
    LOCKS
    UNLOCKS
    SENDS_SIGNAL
    RECEIVES_SIGNAL
    COMMUNICATES_WITH
    SENDS
    RECEIVES
    INVOKES
    REQUESTS_IO
    HAS_EXIT_STATUS
    HAS_CONFIGURATION
    DEPENDS_ON
    PRECEDES
    FOLLOWS
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    PROCESS_TABLES
    PROCESS_IDENTIFIERS
    PARENT_CHILD_DATA
    THREAD_DATA
    PROCESS_CONTROL_BLOCK_DATA
    SCHEDULER_TRACES
    PROCESS_STATE_TRACES
    CPU_ASSIGNMENT_DATA
    MEMORY_MAPS
    FILE_DESCRIPTOR_TABLES
    ENVIRONMENT_DATA
    CREDENTIAL_DATA
    RESOURCE_USAGE_DATA
    IPC_TRACES
    SIGNAL_TRACES
    SYSTEM_CALL_TRACES
    IO_TRACES
    EXIT_DATA
    SYSTEM_LOGS
    OS_VERSION_DATA
    KERNEL_VERSION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_PROCESS_IDENTIFIERS
    NORMALISE_PROCESS_STATES
    NORMALISE_THREAD_IDENTIFIERS
    NORMALISE_PRIORITY_VALUES
    NORMALISE_MEMORY_UNITS
    NORMALISE_ADDRESS_RANGES
    NORMALISE_FILE_PATHS
    NORMALISE_FILE_DESCRIPTORS
    NORMALISE_USER_AND_GROUP_IDENTITIES
    NORMALISE_SIGNAL_TYPES
    NORMALISE_IPC_TYPES
    NORMALISE_EXIT_STATUSES
    NORMALISE_OS_AND_KERNEL_VERSIONS
    RESOLVE_PROCESS_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS PROCESS_LIFECYCLE {
    PROGRAM_OR_EXECUTABLE
      -> PROCESS_CREATION

    PROCESS_CREATION
      -> NEW_STATE
      -> READY_STATE

    READY_STATE
      -> SCHEDULER_SELECTION

    SCHEDULER_SELECTION
      -> RUNNING_STATE

    RUNNING_STATE
      -> PREEMPT_OR_BLOCK_OR_EXIT

    PREEMPT
      -> READY_STATE

    BLOCK
      -> BLOCKED_STATE

    WAKE_EVENT
      -> READY_STATE

    EXIT
      -> TERMINATED_STATE
  }

  PROCESS PROCESS_CREATION_REASONING {
    PARENT_OR_SYSTEM_CREATOR
      -> CREATION_REQUEST

    CREATION_REQUEST
      -> PROCESS_IDENTIFIER_ALLOCATION

    PROCESS_IDENTIFIER_ALLOCATION
      -> ADDRESS_SPACE_CREATION_OR_INHERITANCE

    ADDRESS_SPACE_CREATION_OR_INHERITANCE
      -> RESOURCE_AND_CREDENTIAL_SETUP

    RESOURCE_AND_CREDENTIAL_SETUP
      -> INITIAL_PROCESS_STATE
  }

  PROCESS SCHEDULING_REASONING {
    READY_PROCESSES_OR_THREADS
      -> SCHEDULING_POLICY

    SCHEDULING_POLICY
      -> EXECUTION_ENTITY_SELECTION

    EXECUTION_ENTITY_SELECTION
      -> CPU_OR_CORE_ASSIGNMENT

    CPU_OR_CORE_ASSIGNMENT
      -> CONTEXT_RESTORE

    CONTEXT_RESTORE
      -> RUNNING_STATE
  }

  PROCESS CONTEXT_SWITCH_REASONING {
    RUNNING_PROCESS_A
      -> SAVE_CPU_CONTEXT

    SAVE_CPU_CONTEXT
      -> PROCESS_A_CONTROL_BLOCK

    SCHEDULER_SELECTION
      -> PROCESS_B_CONTROL_BLOCK

    PROCESS_B_CONTROL_BLOCK
      -> RESTORE_CPU_CONTEXT

    RESTORE_CPU_CONTEXT
      -> RUNNING_PROCESS_B
  }

  PROCESS MEMORY_REASONING {
    PROCESS
      -> ADDRESS_SPACE

    ADDRESS_SPACE
      -> CODE_REGION
      -> DATA_REGION
      -> HEAP
      -> STACK
      -> MEMORY_MAPPINGS

    MEMORY_ACCESS
      -> VIRTUAL_MEMORY_TRANSLATION

    INVALID_OR_MISSING_MAPPING
      -> MEMORY_FAULT_OR_PAGE_FAULT
  }

  PROCESS IPC_REASONING {
    PROCESS_A + PROCESS_B
      -> IPC_MECHANISM

    IPC_MECHANISM
      -> PIPE_OR_SOCKET_OR_SHARED_MEMORY_OR_MESSAGE_QUEUE_OR_SIGNAL

    IPC_OPERATION
      -> DATA_OR_EVENT_TRANSFER

    DATA_OR_EVENT_TRANSFER
      -> RECEIVER_STATE_UPDATE
  }

  PROCESS RESOURCE_REASONING {
    PROCESS
      -> RESOURCE_REQUEST

    RESOURCE_REQUEST
      -> AVAILABILITY_AND_PERMISSION_CHECK

    APPROVED_REQUEST
      -> RESOURCE_ALLOCATION

    RESOURCE_ALLOCATION
      -> PROCESS_RESOURCE_SET

    RELEASE_OR_TERMINATION
      -> RESOURCE_DEALLOCATION
  }

  PROCESS TERMINATION_REASONING {
    PROCESS_EXIT_OR_FATAL_EVENT
      -> EXIT_STATUS_GENERATION

    EXIT_STATUS_GENERATION
      -> RESOURCE_CLEANUP

    RESOURCE_CLEANUP
      -> TERMINATED_OR_ZOMBIE_STATE

    PARENT_REAP_EVENT
      -> PROCESS_RECORD_RELEASE
  }

  RULES {
    IF PROCESS_EXISTS
    THEN REQUIRE {
      PROCESS_IDENTIFIER
      PROCESS_STATE
      EXECUTION_CONTEXT
      ADDRESS_SPACE_OR_KERNEL_CONTEXT
    }

    IF PROCESS_IS_RUNNING
    THEN LINK PROCESS_OR_EXECUTION_THREAD TO CPU_OR_CORE_AND_TIME_CONTEXT

    IF PROCESS_BLOCKS
    THEN PRESERVE BLOCKING_RESOURCE_OR_EVENT

    IF PROCESS_STATE_CHANGES
    THEN LINK PRIOR_STATE_EVENT_AND_RESULTING_STATE

    IF PROCESS_CREATES_CHILD
    THEN PRESERVE PARENT_CHILD_RELATIONSHIP_AND_CREATION_CONTEXT

    IF PROCESS_TERMINATES
    THEN DO_NOT_ASSUME_IMMEDIATE_REMOVAL_OF_ALL_PROCESS_METADATA

    IF PROCESS_COMMUNICATES
    THEN PRESERVE IPC_MECHANISM_AND_ENDPOINT_CONTEXT

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND PROCESS_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        PROCESS_IDENTITY_CERTAINTY,
        PROCESS_STATE_OBSERVABILITY,
        SCHEDULER_TRACE_COMPLETENESS,
        MEMORY_MAP_COMPLETENESS,
        RESOURCE_DATA_COMPLETENESS,
        IPC_TRACE_COMPLETENESS,
        SYSTEM_LOG_QUALITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF PROCESS_IDENTIFIER_IS_REUSED_ACROSS_TIME
    THEN REQUIRE_TIME_CONTEXT_FOR_IDENTITY

    IF RUNTIME_STATE_IS_PARTIAL
    THEN REDUCE_PROCESS_STATE_INFERENCE_CONFIDENCE

    IF COMPLETE_TRACE_CONFIRMS_PROCESS_TRANSITION
    THEN INCREASE CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        PROCESS_IDENTIFIER,
        PROCESS_START_TIME,
        EXECUTABLE_IDENTITY,
        OS_INSTANCE,
        KERNEL_CONTEXT
      )

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

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    PROGRAM != PROCESS
    PROCESS != THREAD
    PROCESS_IDENTIFIER != PROCESS_IDENTITY_WITHOUT_TIME_CONTEXT
    READY != RUNNING
    BLOCKED != TERMINATED
    PROCESS_EXIT != IMMEDIATE_METADATA_REMOVAL
    ZOMBIE_PROCESS != RUNNING_PROCESS
    ADDRESS_SPACE != PHYSICAL_MEMORY
    FILE_DESCRIPTOR != FILE
    IPC_CHANNEL != PROCESS
    RESOURCE_CONTENTION != DEADLOCK
    PROCESS_STATE_MAY_CHANGE_RAPIDLY
    SCHEDULING_AFFECTS_OBSERVED_EXECUTION
    OS_AND_KERNEL_CONTEXT_AFFECT_PROCESS_BEHAVIOUR
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_PROCESS_IDENTITY
    CHECK_PROCESS_START_TIME_IF_REQUIRED
    CHECK_PARENT_CHILD_RELATIONS
    CHECK_THREAD_RELATIONS
    CHECK_PROCESS_STATE
    CHECK_STATE_TRANSITIONS
    CHECK_SCHEDULING_RELATIONS
    CHECK_CPU_ASSIGNMENT
    CHECK_MEMORY_MAP
    CHECK_FILE_DESCRIPTORS
    CHECK_CREDENTIALS_AND_PERMISSIONS
    CHECK_RESOURCE_RELATIONS
    CHECK_IPC_RELATIONS
    CHECK_SIGNAL_RELATIONS
    CHECK_EXIT_STATUS
    CHECK_OS_AND_KERNEL_CONTEXT
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_PROCESS_ENTITIES
    PARENT_CHILD_RELATIONS
    PROCESS_THREAD_RELATIONS
    PROCESS_STATE_TRANSITIONS
    SCHEDULING_RELATIONS
    CONTEXT_SWITCH_RELATIONS
    MEMORY_RELATIONS
    FILE_DESCRIPTOR_RELATIONS
    RESOURCE_RELATIONS
    IPC_RELATIONS
    SIGNAL_RELATIONS
    SYSTEM_CALL_RELATIONS
    TERMINATION_RELATIONS
    EXIT_STATUS_RELATIONS
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON PROCESS_EVENT {
      NORMALISE
      RESOLVE_PROCESS_IDENTITY
      UPDATE_PROCESS_STATE
      UPDATE_THREAD_RELATIONS
      UPDATE_RESOURCE_RELATIONS
      UPDATE_MEMORY_RELATIONS
      UPDATE_IPC_RELATIONS
      RECOMPUTE_DEPENDENT_INFERENCES
      UPDATE_CONFIDENCE
    }

    ON NEW_RUNTIME_OR_LOG_DATA {
      LINK_EVIDENCE
      UPDATE_PROCESS_TRACE
      REASSESS_STATE_TRANSITIONS
      REASSESS_RESOURCE_AND_IPC_RELATIONS
      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_PROCESS
      BY_PROCESS_IDENTIFIER
      BY_PARENT
      BY_CHILD
      BY_THREAD
      BY_STATE
      BY_SCHEDULER
      BY_CPU
      BY_MEMORY
      BY_FILE_DESCRIPTOR
      BY_RESOURCE
      BY_IPC
      BY_SIGNAL
      BY_EXIT_STATUS
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      TRACE_PROCESS_LIFECYCLE
      TRACE_PROCESS_CREATION
      TRACE_SCHEDULING
      TRACE_CONTEXT_SWITCHES
      TRACE_MEMORY_RELATIONS
      TRACE_IPC
      TRACE_RESOURCE_USAGE
      TRACE_TERMINATION
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_PROGRAM_FROM_PROCESS
      DISTINGUISH_PROCESS_FROM_THREAD
      PRESERVE_PROCESS_IDENTITY_AND_TIME_CONTEXT
      PRESERVE_OS_KERNEL_AND_RUNTIME_CONTEXT
      DISTINGUISH_PROCESS_EXIT_FROM_RECORD_REMOVAL
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_PROCESS_INFERENCE
    }
  }

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

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