GetSystemInfo (в Windows) всегда возвращают количество логических процессоров?

Читая на этом, и конкретно читая документы Microsoft, похоже, что это должно возвращать количество Физических процессоров, и что необходимо использовать GetLogicalProcessorInformation для выяснения, сколько процессоров LOGICAL Вы имеете.

Вот документ, который я нашел на структуре SYSTEM_INFO: http://msdn.microsoft.com/en-us/library/ms724958 (v=VS.85) .aspx И вот является документом о GetLogicalProcessorInformation: (пробелы, добавленные для прохода через спам-фильтр) http:// msdn.microsoft.com/ en-us/библиотека / ms683194.aspx

При чтении на ней далее, хотя, в большинстве обсуждений я нашел по этой теме, разработчики говорят тому, что GetSystemInfo (и структура SYSTEM_INFO) сообщают о количестве процессоров LOGICAL.

Когда я ищу снова, я нахожу, что MS действительно выпускал некоторую информацию об этом (и текущие исправления), здесь (пробелы, добавленные для прохода через спам-фильтр): поддержка http://. Кбит/936235 microsoft.com/

Читая, что, это походит на Xp, предварительный пакет обновления 3, GetSystemInfo сообщает о количестве процессоров LOGICAL в структуре SYSTEM_INFO. Это также читает в меня, что на Windows Vista и Windows 7, GetSystemInfo должен сообщать о количестве Физических процессоров (отличающийся от предварительного пакета обновления Windows XP 3).

Кто-либо знает то, что это на самом деле делает? GetSystemInfo действительно сообщает о количестве физических процессоров (на том же компьютере) по-другому, в зависимости от которого ОС он работает?

5
задан Douglas Leeder 2 April 2010 в 11:05
поделиться

1 ответ

Читая это, похоже, что на Xp, до пакета обновления 3, GetSystemInfo сообщает количество ЛОГИЧЕСКИХ процессоров в структуре SYSTEM_INFO. Мне также читают, что в Windows Vista и Windows 7 GetSystemInfo должен сообщать количество ФИЗИЧЕСКИХ процессоров (в отличие от Windows XP до пакета обновления 3).

Это верно. Windows XP pre SP2) не делает различий между логическими и физическими процессорами. (В конце концов, логических процессоров не существовало, когда была выпущена Windows XP) Поэтому, хотя функция возвращает то, что ОС считает «физическими процессорами», до SP2 нет никакой разницы.

Я считаю, что для обеспечения совместимости XP SP2 + продолжает сообщать о логических процессорах для этой конкретной функции, потому что это то, что приложения ожидают от него для компьютеров XP. Гораздо быстрее и проще спросить: «Я использую XP?» чем спросить «Я на XP SP3?».

В чем разница между SP2 и SP3? Несмотря на разницу между физическими и логическими процессорами в SP2, это изменение повлияло только на способ выставления счетов за SKU платформы. Обычно в системе XP может быть до 32 логических процессоров, но максимум 2 физических процессора после SP2. До SP2 вы были ограничены двумя логическими процессорами. Однако ОС не предоставляла эту функциональность в API, пока не был выпущен SP3.

Короче говоря, если вы хотите получить логические процессоры до SP3, просто получите физические процессоры - ОС не знает никакой разницы. Опубликуйте SP3, позвоните по телефону GetLogicalProcessorInformation . Если вы хотите получить физические процессоры, то до SP3 то, что вы хотите, невозможно ( РЕДАКТИРОВАТЬ: По крайней мере, с apis win32). Разумеется, для публикации SP3 вы можете вызвать GetLogicalProcessorInformation .

4
ответ дан 15 December 2019 в 00:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: