Программное обеспечение САПР. Операционные системы. Майстренко Н.В - 26 стр.

UptoLike

3. Значения приоритетов потоков
Значение Описание
4 Ожидающий
8 Нормальный
13 Высокий
24 Реальное время
tpDeltaPri – дельта-приоритет (разницу), определяющий величину отличия реального приоритета от значения
tpBasePri. Это число со знаком, которое в сочетании с базовым классом приоритета отображает общий приоритет потока.
Константы, определенные для всех возможных значений дельта-приоритета, перечислены в табл. 4.
4. Значения констант дельта-приоритетов
Константа Значение
THREAD_PRIORITY_IDLE –15
THREAD_PRIOR ITY_LOWEST –2
THREAD PRIORITY BELOW NORMAL –1
THREAD_PRIOR IT Y_NORMAL 0
THREAD_PRIOR I TY_ABOVE_NORHAL 1
THREAD_PRIOR ITY_H IGHEST 2
THREAD_PRI OR ITY_TIME_CRIT ICAL 15
dwFlags – в данный момент зарезервировано и не должно использоваться.
Списки потоков, полученные с помощью функций ToolHelp32 не связываются с определенным потоком. Поэтому при
сканировании потоков нужно обязательно проверять результат так, чтобы потоки были связаны с интересующим вас пото-
ком.
Обработка информации о модулях. Опрос модулей выполняется практически так же, как опрос процессов или потоков.
Для этого в ТооlНе1р32 предусмотрены две функции: Module32First() и Module32Next(), которые определяются следующим
образом:
function Module32First(hSnapshot: THandle; var Ipme: TModuleEtitry32): BOOL; stdcall;
function Module32Next(hSnapshot: THandle; var Ipme: TModuleEntry32): BOOL; stdcall;
ЗАДАНИЕ ДЛЯ ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ
Составить следующую программу, которая:
1) принимая дескриптор, имя или полное имя модуля, возвращает другие два элемента в своих выходных параметрах
(выполнить задание для своей программы и для любой известной библиотеки);
2) будет выполнять последовательно по шагам следующее:
а) используя функцию GetCurrentProcessId, определит идентификатор текущего процесса;
б) используя функцию GetCurrentProcess, определит псевдодескриптор текущего процесса;
в) используя функцию DuplicateHandle и значение псевдодескриптора, определит дескриптора текущего процесса;
г) используя функцию OpenProcess, определит копию дескриптора текущего процесса;
д) закроет дескриптор, полученный функцией DuplicateHandle;
ж) закроет дескриптор, полученный функцией OpenProcess;
3) Выдает список перечисления всех процессов, потоков, модулей и их свойства в системе.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что такое процесс и поток? Что включает в себя понятие поток?
2. Понятие моментального снимка? С помощью какой функции его можно получить?
3. Назовите функцию получения идентификатора.
4. Что такое дескриптор процесса? Чем он отличается от псевдодескриптора?
5. Понятие мультипрограммирования, критерии эффективности.