| 
				  
 Функция API GetSystemInfo позволяет узнать несколько параметров процессора. Функция имеет вид:
 procedure GetSystemInfo(var lpSystemInfo: TSystemInfo); stdcall;
 
 Функция заполняет поля структуры lpSystemInfo, в частности, там есть поля:
 
 * dwActiveProcessorMask - битовая маска, представляющая процессоры, установленные в системе (каждый бит соответствут процессору, например, в двухпроцессорной системе установлено два младших бита)
 * dwNumberOfProcessors - количество процессоров в системе
 * dwProcessorType - тип процессора
 * wProcessorLevel, wProcessorRevision - характеристики процессора (их трактовка зависит от типа)
 
 При этом следует учесть, что процессоры с технологией HT считаются как два процессора (при условии, что включена поддержка HT)
 
 
 В мультипроцессорной системе (на базе нескольких процессоров или процессора с технологией HyperThreading) можно указать системе, на каком процессоре рекомендуется выполнять поток. Реализуется это при помощи функции API SetThreadIdealProcessor:
 
 function SetThreadIdealProcessor(hThread: THandle; dwIdealProcessor: DWORD): BOOL;
 
 Thread - Handle потока, для текущего потока приложения его можно узнать через GetCurrentThread
 dwIdealProcessor - номер процессора (отсчет идет с 0)
 
 Вот пример как выполнить поток на нужном процессоре
 
 begin
 // Выбор процессора
 SetThreadIdealProcessor(GetCurrentThread, 1);
 // Мертвый цикл
 WHILE TRUE DO ;
 end;
 |