AI SEARCH
FLOW ALGEBRA — RESOURCE MANAGEMENT ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/operating-systems/resource-management-ontology.html
FLOW RESOURCE_MANAGEMENT_ONTOLOGY {
META {
DOMAIN = "Computing Ontologies"
SUBDOMAIN = "Operating Systems"
ONTOLOGY = "Resource Management Ontology"
PURPOSE = "Formalise operating-system resources, allocation, ownership, scheduling, quotas, contention, reclamation, accounting and resource-state relationships."
LOCALE = "en-GB"
}
ENTITY_TYPES {
RESOURCE
SYSTEM_RESOURCE
COMPUTATIONAL_RESOURCE
PROCESSOR_RESOURCE
CPU_RESOURCE
CORE_RESOURCE
MEMORY_RESOURCE
PHYSICAL_MEMORY
VIRTUAL_MEMORY
STORAGE_RESOURCE
IO_RESOURCE
DEVICE_RESOURCE
NETWORK_RESOURCE
FILE_RESOURCE
FILE_DESCRIPTOR
SOCKET_RESOURCE
BUFFER
CACHE
PROCESS
THREAD
TASK
USER
GROUP
OWNER
REQUESTER
RESOURCE_MANAGER
SCHEDULER
ALLOCATOR
RESOURCE_POOL
RESOURCE_REQUEST
RESOURCE_ALLOCATION
RESOURCE_RELEASE
RESOURCE_RECLAMATION
RESOURCE_RESERVATION
RESOURCE_LIMIT
QUOTA
SOFT_LIMIT
HARD_LIMIT
PRIORITY
POLICY
ALLOCATION_POLICY
SCHEDULING_POLICY
ACCOUNTING_POLICY
USAGE
UTILISATION
CAPACITY
AVAILABLE_CAPACITY
DEMAND
CONTENTION
WAIT
WAIT_QUEUE
STARVATION
DEADLOCK
PREEMPTION
RECLAIMABLE_RESOURCE
NONRECLAIMABLE_RESOURCE
SHARED_RESOURCE
EXCLUSIVE_RESOURCE
LOCK
HANDLE
PERMISSION
PRIVILEGE
CREDENTIAL
ACCOUNTING_RECORD
METRIC
STATE
EVENT
ERROR
FAILURE
CONFIGURATION
OS_VERSION
KERNEL_VERSION
EVIDENCE
CONFIDENCE_SCORE
PROVENANCE_RECORD
}
RELATIONSHIPS {
IS_A
INSTANCE_OF
PART_OF
CONTAINS
MANAGES
REQUESTS
ALLOCATES
ASSIGNS_TO
OWNS
USES
SHARES
RESERVES
RELEASES
RECLAIMS
PREEMPTS
LIMITS
QUOTAS
ACCOUNTS_FOR
MEASURES
WAITS_FOR
CONTENDS_FOR
LOCKS
UNLOCKS
PERMITS
DENIES
HAS_CAPACITY
HAS_AVAILABLE_CAPACITY
HAS_DEMAND
HAS_USAGE
HAS_UTILISATION
HAS_LIMIT
HAS_QUOTA
HAS_PRIORITY
HAS_POLICY
HAS_STATE
TRANSITIONS_TO
HAS_CONFIGURATION
DEPENDS_ON
PRECEDES
FOLLOWS
FAILS_WITH
DERIVED_FROM
INFERRED_FROM
HAS_EVIDENCE
HAS_CONFIDENCE
HAS_PROVENANCE
SEMANTICALLY_EQUIVALENT_TO
}
INPUTS {
RESOURCE_INVENTORIES
PROCESS_AND_THREAD_DATA
RESOURCE_REQUEST_TRACES
ALLOCATION_TRACES
RELEASE_TRACES
CPU_USAGE_DATA
MEMORY_USAGE_DATA
STORAGE_USAGE_DATA
IO_USAGE_DATA
NETWORK_USAGE_DATA
FILE_DESCRIPTOR_DATA
QUOTA_DATA
LIMIT_DATA
PRIORITY_DATA
POLICY_DATA
WAIT_QUEUE_DATA
LOCK_TRACES
ACCOUNTING_DATA
PERFORMANCE_METRICS
ERROR_LOGS
CONFIGURATION_DATA
OS_VERSION_DATA
KERNEL_VERSION_DATA
ONTOLOGY_TERMS
}
NORMALISE {
STANDARDISE_RESOURCE_IDENTIFIERS
NORMALISE_RESOURCE_TYPES
NORMALISE_PROCESS_AND_THREAD_IDENTIFIERS
NORMALISE_CAPACITY_UNITS
NORMALISE_USAGE_UNITS
NORMALISE_UTILISATION_METRICS
NORMALISE_QUOTAS_AND_LIMITS
NORMALISE_PRIORITY_VALUES
NORMALISE_POLICY_NAMES
NORMALISE_ACCOUNTING_PERIODS
NORMALISE_OS_AND_KERNEL_VERSIONS
RESOLVE_RESOURCE_AND_OWNER_IDENTITIES
ALIGN_ONTOLOGY_TERMS
REMOVE_DUPLICATES
VALIDATE_METADATA
PRESERVE_PROVENANCE
}
PROCESS RESOURCE_MANAGEMENT_PIPELINE {
RESOURCE_DEMAND
-> RESOURCE_REQUEST
-> REQUEST_VALIDATION
-> POLICY_AND_PERMISSION_CHECK
-> AVAILABILITY_CHECK
-> ALLOCATION_OR_WAIT_OR_DENIAL
-> RESOURCE_USE
-> ACCOUNTING
-> RELEASE_OR_RECLAMATION
-> RESOURCE_STATE_UPDATE
}
PROCESS ALLOCATION_REASONING {
REQUESTER + RESOURCE_REQUEST
-> RESOURCE_TYPE_AND_AMOUNT
RESOURCE_TYPE_AND_AMOUNT
-> LIMIT_AND_QUOTA_CHECK
LIMIT_AND_QUOTA_CHECK
-> AVAILABILITY_CHECK
AVAILABLE
-> ALLOCATION
UNAVAILABLE
-> WAIT_OR_DENY_OR_RECLAIM_OR_PREEMPT
}
PROCESS CPU_RESOURCE_REASONING {
RUNNABLE_TASKS
-> CPU_DEMAND
CPU_DEMAND
-> SCHEDULER_POLICY
SCHEDULER_POLICY
-> CPU_OR_CORE_ALLOCATION
CPU_OR_CORE_ALLOCATION
-> EXECUTION
PREEMPTION_OR_BLOCK
-> CPU_RELEASE_OR_REASSIGNMENT
}
PROCESS MEMORY_RESOURCE_REASONING {
PROCESS
-> MEMORY_REQUEST
MEMORY_REQUEST
-> VIRTUAL_OR_PHYSICAL_MEMORY_ALLOCATION
MEMORY_PRESSURE
-> RECLAIMABLE_MEMORY_IDENTIFICATION
RECLAIMABLE_MEMORY
-> CACHE_RECLAIM_OR_PAGE_RECLAIM_OR_SWAP
RELEASE_EVENT
-> MEMORY_DEALLOCATION
}
PROCESS IO_RESOURCE_REASONING {
IO_REQUESTS
-> DEVICE_OR_CHANNEL_DEMAND
DEVICE_OR_CHANNEL_DEMAND
-> IO_QUEUE
IO_QUEUE
-> SCHEDULING_OR_ARBITRATION
SCHEDULED_REQUEST
-> DEVICE_ACCESS
COMPLETION
-> RESOURCE_RELEASE_OR_NEXT_REQUEST
}
PROCESS QUOTA_AND_LIMIT_REASONING {
REQUESTER_USAGE + NEW_REQUEST
-> PROJECTED_USAGE
PROJECTED_USAGE
-> SOFT_LIMIT_CHECK
-> HARD_LIMIT_CHECK
-> QUOTA_CHECK
WITHIN_POLICY
-> ALLOW_REQUEST
EXCEEDS_POLICY
-> WARN_THROTTLE_OR_DENY
}
PROCESS CONTENTION_REASONING {
MULTIPLE_REQUESTERS + SHARED_RESOURCE
-> CONCURRENT_DEMAND
CONCURRENT_DEMAND
-> CAPACITY_AND_POLICY_CHECK
DEMAND_EXCEEDS_AVAILABLE_CAPACITY
-> CONTENTION
CONTENTION
-> QUEUE_OR_PREEMPT_OR_THROTTLE_OR_DENY
}
PROCESS DEADLOCK_REASONING {
TASKS + RESOURCE_WAIT_RELATIONS
-> WAIT_FOR_GRAPH
WAIT_FOR_GRAPH
-> CYCLE_DETECTION
CYCLE
-> DEADLOCK_CANDIDATE
DEADLOCK_CANDIDATE
-> RESOURCE_AND_RUNTIME_STATE_VALIDATION
}
PROCESS ACCOUNTING_REASONING {
RESOURCE_ALLOCATION
-> USAGE_MEASUREMENT
USAGE_MEASUREMENT
-> ACCOUNTING_RECORD
ACCOUNTING_RECORD
-> AGGREGATION
AGGREGATION
-> QUOTA_POLICY_OR_REPORTING_INPUT
}
RULES {
IF RESOURCE_IS_ALLOCATED
THEN LINK {
RESOURCE
REQUESTER
AMOUNT_OR_SCOPE
TIME_CONTEXT
POLICY_CONTEXT
}
IF RESOURCE_REQUEST_EXCEEDS_HARD_LIMIT
THEN DENY_OR_APPLY_DEFINED_POLICY
IF RESOURCE_IS_SHARED
THEN DO_NOT_ASSUME_EXCLUSIVE_OWNERSHIP
IF RESOURCE_IS_EXCLUSIVE
AND ALREADY_ALLOCATED
THEN REQUIRE WAIT_DENIAL_OR_PREEMPTION_BEHAVIOUR
IF RESOURCE_CONTENTION_EXISTS
THEN DO_NOT_ASSERT_DEADLOCK_WITHOUT_WAIT_CYCLE_AND_STATE_VALIDATION
IF RESOURCE_IS_RELEASED
THEN UPDATE_AVAILABLE_CAPACITY_AND_DEPENDENT_WAITERS
IF USAGE_IS_MEASURED
THEN PRESERVE ACCOUNTING_PERIOD_AND_MEASUREMENT_CONTEXT
IF SEMANTIC_IDENTIFIERS_DIFFER
AND RESOURCE_REFERENT_IS_SAME
THEN APPLY SEMANTIC_EQUIVALENCE
}
CONFIDENCE {
CONFIDENCE_SCORE =
WEIGHT(
RESOURCE_IDENTITY_CERTAINTY,
CAPACITY_DATA_COMPLETENESS,
REQUEST_TRACE_COMPLETENESS,
ALLOCATION_TRACE_COMPLETENESS,
POLICY_CERTAINTY,
USAGE_MEASUREMENT_QUALITY,
RUNTIME_STATE_OBSERVABILITY,
PROVENANCE_COMPLETENESS
)
LEVELS {
HIGH
MODERATE
LOW
INSUFFICIENT
}
IF RESOURCE_CAPACITY_OR_POLICY_IS_UNKNOWN
THEN REDUCE_ALLOCATION_INFERENCE_CONFIDENCE
IF RUNTIME_WAIT_STATE_IS_PARTIAL
THEN REDUCE_CONTENTION_AND_DEADLOCK_CONFIDENCE
IF COMPLETE_TRACE_CONFIRMS_ALLOCATION_AND_RELEASE
THEN INCREASE CONFIDENCE_SCORE
}
SEMANTIC_EQUIVALENCE {
EQUIVALENCE_KEY =
NORMALISE(
ENTITY_TYPE,
RESOURCE_IDENTIFIER,
RESOURCE_TYPE,
OS_INSTANCE,
KERNEL_CONTEXT,
CONFIGURATION
)
IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
THEN A SEMANTICALLY_EQUIVALENT_TO B
ELSE PRESERVE_DISTINCT_ENTITIES
}
REASONING_CONSTRAINTS {
RESOURCE != RESOURCE_REQUEST
REQUEST != ALLOCATION
ALLOCATION != OWNERSHIP_IN_ALL_CONTEXTS
CAPACITY != AVAILABLE_CAPACITY
USAGE != CAPACITY
UTILISATION != DEMAND
SHARED_RESOURCE != EXCLUSIVE_RESOURCE
CONTENTION != DEADLOCK
WAIT != STARVATION
SOFT_LIMIT != HARD_LIMIT
QUOTA != CURRENT_USAGE
PREEMPTION != RELEASE_BY_REQUESTER
RECLAMATION != FAILURE
RESOURCE_STATE_IS_TIME_DEPENDENT
POLICY_AND_CONFIGURATION_AFFECT_ALLOCATION_BEHAVIOUR
PROVENANCE_MUST_BE_PRESERVED
UNCERTAINTY_MUST_NOT_BE_DISCARDED
}
VALIDATION {
CHECK_ENTITY_TYPES
CHECK_RELATION_DOMAINS_AND_RANGES
CHECK_RESOURCE_IDENTITY
CHECK_RESOURCE_TYPE
CHECK_CAPACITY
CHECK_AVAILABLE_CAPACITY
CHECK_REQUESTER_IDENTITY
CHECK_REQUEST
CHECK_ALLOCATION
CHECK_RELEASE
CHECK_QUOTA_AND_LIMITS
CHECK_PRIORITY_AND_POLICY
CHECK_CONTENTION
CHECK_WAIT_RELATIONS
CHECK_DEADLOCK_RELATIONS
CHECK_ACCOUNTING
CHECK_OS_AND_KERNEL_CONTEXT
CHECK_CONFIGURATION
CHECK_PROVENANCE
CHECK_CONFIDENCE
CHECK_SEMANTIC_CONSISTENCY
}
OUTPUTS {
NORMALISED_RESOURCE_ENTITIES
RESOURCE_REQUEST_RELATIONS
ALLOCATION_RELATIONS
OWNERSHIP_AND_USAGE_RELATIONS
RELEASE_AND_RECLAMATION_RELATIONS
CAPACITY_AND_AVAILABILITY_RELATIONS
QUOTA_AND_LIMIT_RELATIONS
PRIORITY_AND_POLICY_RELATIONS
CONTENTION_RELATIONS
WAIT_QUEUE_RELATIONS
DEADLOCK_HYPOTHESES
ACCOUNTING_RELATIONS
RESOURCE_STATE_TRANSITIONS
UTILISATION_PROFILES
CONFIDENCE_SCORES
EVIDENCE_LINKS
PROVENANCE_RECORDS
EXPLANATION_PATHS
}
UPDATE_MODEL {
ON RESOURCE_EVENT {
NORMALISE
RESOLVE_RESOURCE_AND_REQUESTER_IDENTITIES
UPDATE_RESOURCE_STATE
UPDATE_AVAILABLE_CAPACITY
UPDATE_ALLOCATIONS
UPDATE_WAIT_QUEUES
UPDATE_USAGE_AND_ACCOUNTING
RECOMPUTE_DEPENDENT_INFERENCES
UPDATE_CONFIDENCE
}
ON NEW_USAGE_POLICY_OR_ERROR_DATA {
LINK_EVIDENCE
UPDATE_RESOURCE_PROFILE
UPDATE_QUOTA_AND_LIMIT_STATE
REASSESS_CONTENTION_STARVATION_AND_DEADLOCK
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_RESOURCE
BY_RESOURCE_TYPE
BY_REQUESTER
BY_ALLOCATION
BY_USAGE
BY_CAPACITY
BY_QUOTA
BY_LIMIT
BY_POLICY
BY_CONTENTION
BY_WAIT
BY_DEADLOCK
BY_ACCOUNTING
BY_CONFIDENCE
}
REASON {
APPLY_RELATIONSHIPS
APPLY_RULES
TRACE_RESOURCE_REQUESTS
TRACE_ALLOCATIONS
TRACE_RELEASES_AND_RECLAMATION
ANALYSE_CPU_RESOURCES
ANALYSE_MEMORY_RESOURCES
ANALYSE_IO_RESOURCES
ANALYSE_QUOTAS_AND_LIMITS
ANALYSE_CONTENTION
ANALYSE_DEADLOCKS
ANALYSE_ACCOUNTING
CHECK_SEMANTIC_EQUIVALENCE
PRESERVE_UNCERTAINTY
TRACE_EVIDENCE
TRACE_PROVENANCE
GENERATE_EXPLANATION_PATH
}
RESPONSE_POLICY {
DISTINGUISH_REQUEST_FROM_ALLOCATION
DISTINGUISH_CAPACITY_FROM_AVAILABLE_CAPACITY
DISTINGUISH_CONTENTION_FROM_DEADLOCK
PRESERVE_REQUESTER_POLICY_QUOTA_TIME_OS_AND_KERNEL_CONTEXT
PRESERVE_SHARED_OR_EXCLUSIVE_RESOURCE_CONTEXT
RETURN_CONFIDENCE_WHEN_AVAILABLE
RETURN_PROVENANCE_WHEN_AVAILABLE
AVOID_UNSUPPORTED_RESOURCE_MANAGEMENT_INFERENCE
}
}
TERMINAL {
RESULT =
VALIDATED(
SEMANTICALLY_NORMALISED(
EVIDENCE_LINKED(
CONFIDENCE_AWARE(
RESOURCE_MANAGEMENT_KNOWLEDGE
)
)
)
)
}
}
END FLOW
Download Code
Copy to Clipboard