Курсовая работа: Подсистема управления процессами
{
double FreeProcessorTime = 100;
double TimePerProcess = 100 / (index + 1);
double PriorityWeight = 0;
int HighPriorityProcessCount = 0;
// расчётдляпроцессовсприоритетомнижесамогобольшого
for (int i = 0; i < index + 1; i++)
{
if (ProcessPriorities[i] != HighestPriority)
{
switch (ProcessPriorities[i])
{
case ThreadPriority.Lowest: PriorityWeight = 0.2;
break;
case ThreadPriority.BelowNormal: PriorityWeight = 0.4;
break;
case ThreadPriority.Normal: PriorityWeight = 0.6;
break;
case ThreadPriority.AboveNormal: PriorityWeight = 0.8;
break;
}
FreeProcessorTime -= TimePerProcess * PriorityWeight;
dataGridView1.Rows[i].Cells[4].Value = Math.Round(TimePerProcess * PriorityWeight);
}
else HighPriorityProcessCount++;
}
// расчёт для процессов с самым большим приоритетом
for (int i = 0; i < index + 1; i++)
{