本文整理汇总了C++中ProcessId::setPriority方法的典型用法代码示例。如果您正苦于以下问题:C++ ProcessId::setPriority方法的具体用法?C++ ProcessId::setPriority怎么用?C++ ProcessId::setPriority使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ProcessId
的用法示例。
在下文中一共展示了ProcessId::setPriority方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setPriority
void OSSim::setPriority(Pid_t pid, int32_t newPrio)
{
ProcessId *proc = ProcessId::getProcessId(pid);
I(proc);
int32_t oldPrio=proc->getPriority();
if(newPrio==oldPrio)
return;
// Set the new priority of the process
ProcessId *otherProc=proc->setPriority(newPrio);
if(newPrio>oldPrio) {
// Priority is better now, check if still running
if(proc->getState()==RunningState) {
// Is there a process we need to swap with
if(otherProc) {
// Get the cpu where the demoted process is running
CPU_t cpu=proc->getCPU();
// Switch the demoted process out
cpus.switchOut(cpu,proc);
// Switch the new process in
cpus.switchIn(cpu,otherProc);
}
}
} else {
// Priority is worse now, check if ready but not already running
if(proc->getState()==ReadyState) {
// Is there a process we need to swap with
if(otherProc) {
// Get the cpu where the other process is running
CPU_t cpu=otherProc->getCPU();
// Switch the victim process out
cpus.switchOut(cpu,otherProc);
// Switch the promoted process in
cpus.switchIn(cpu,proc);
}
}
}
}