Диспетчеризация процессов

Когда говорят о диспетчеризации, то всегда в неявном или явном виде имеют в виду понятие задачи (потока). Известно большое количество правил (дисциплин диспетчеризации), в соответствии с которыми формируется список (очередь) готовых к выполнению задач. Различают два больших класса дисциплин обслуживания – бесприоритетные и приоритетные. При бесприоритетном обслуживании выбор задачи производится в некотором заранее установленном порядке без учёта их относительной важности и времени обслуживания. При реализации приоритетных дисциплин обслуживания отдельным задачам предоставляются преимущественное право попасть в состояние исполнения. Перечень дисциплин обслуживания и их классификация приведены на рисунке:

- приоритет, присвоенный задаче, может являться величиной постоянной

- приоритет задачи может изменяться в процессе её решения.

Диспетчеризация с динамическими приоритетами требует дополнительных расходов на вычисление значений приоритетов исполняющихся задач, поэтому во многих ОС реального времени используются методы диспетчеризации на основе статических (постоянных приоритетов).

// получаем кадр всех процессов в системе

hS = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

PROCESSENTRY32 PS;

// устанавливаем размер структуры

PS.dwSize = sizeof(PROCESSENTRY32);

if (Process32First(hS, &PS))

do

{ // выводим информацию о каждом процессе

…..

_itoa(PS.pcPriClassBase, szStrVal, 10);

strcat(szStrPr, szStrVal);

SendMessage(hListProcs, LB_ADDSTRING, 0, (LPARAM)szStrPr);

…..

} while (Process32Next(hS, &PS));

CloseHandle(hS); // удаляем кадр


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: