Base priority is the initial priority assigned to a task when it’s created. This priority can be “high”, “medium”, or “low”. Each engine has a run queue for each priority level, and there’s also a global run queue with a queue for each priority level.
When an engine is looking for a task to execute, it follows a specific order:
- It first checks its own high-priority run queue.
- If no tasks are found, it checks the high-priority global run queue.
- If still no tasks are found, it checks its own medium-priority run queue, and so on.
This process ensures that tasks in the high-priority run queues are scheduled onto engines more quickly than tasks in the medium or low-priority queues.
During execution, the Adaptive Server can temporarily elevate a task’s priority if necessary. However, it’s important to note that a task’s priority can never be lowered below its base priority.
When creating a user-defined execution class, you have the option to assign a base priority of high, medium, or low to the tasks within that class. This allows for greater control over task scheduling and execution.
Remember, the use of base priorities is a way to manage and optimize the execution of tasks, ensuring that higher priority tasks are executed first and system resources are used efficiently. It’s a fundamental concept in task scheduling and resource management in multi-tasking systems.
Each process belongs to one of the following priority classes:
- IDLE_PRIORITY_CLASS
- BELOW_NORMAL_PRIORITY_CLASS
- NORMAL_PRIORITY_CLASS
- ABOVE_NORMAL_PRIORITY_CLASS
- HIGH_PRIORITY_CLASS
- REALTIME_PRIORITY_CLASS
Code.ps1
# MrNetTek
# eddiejackson.net
# 7/13/2024
# free for public use
# free to claim as your own
# Get all Chrome processes
$chromeProcesses = Get-Process -Name chrome -ErrorAction SilentlyContinue
# Check if there are any Chrome processes running
if ($chromeProcesses) {
foreach ($process in $chromeProcesses) {
try {
# Set the base priority to High
$process.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::High
Write-Host "Set priority to High for process ID $($process.Id) ($($process.ProcessName))"
} catch {
Write-Host "Failed to set priority for process ID $($process.Id) ($($process.ProcessName)): $_"
}
}
} else {
Write-Host "No Chrome processes found."
}
# Session Clean up
$chromeProcesses = ""
$process = ""
Notes