Megosztás a következőn keresztül:


Processzorcsoportok

A Windows 7 és a Windows Server 2008 R2 64 bites verziói több mint 64 logikai processzort támogatnak egyetlen számítógépen. Ez a funkció nem érhető el a Windows 32 bites verzióiban.

A több fizikai processzorral rendelkező vagy több maggal rendelkező fizikai processzorokkal rendelkező rendszerek több logikai processzort biztosítanak az operációs rendszer számára. A logikai processzor egy logikai számítási motor az operációs rendszer, az alkalmazás vagy az illesztőprogram szempontjából. A alapvető egy processzoregység, amely egy vagy több logikai processzorból állhat. Egy fizikai processzor egy vagy több magból állhat. A fizikai processzorok megegyeznek a processzorcsomagokkal, a szoftvercsatornával vagy a processzorral.

A 64-nél több logikai processzorral rendelkező rendszerek támogatása egy processzorcsoportkoncepcióján alapul, amely legfeljebb 64 logikai processzor statikus készlete, amelyet egyetlen ütemezési entitásként kezelnek. A processzorcsoportok számozása 0-val kezdődik. A 64-nél kevesebb logikai processzorral rendelkező rendszereknek mindig egyetlen csoportjuk van, a 0. csoport.

Windows Server 2008, Windows Vista, Windows Server 2003 és Windows XP: processzorcsoportok nem támogatottak.

A rendszer indításakor az operációs rendszer processzorcsoportokat hoz létre, és logikai processzorokat rendel a csoportokhoz. Ha a rendszer képes a processzorok gyakori elérésű hozzáadására, az operációs rendszer lehetővé teszi, hogy a csoportokban helyet biztosítsunk azoknak a processzoroknak, amelyek a rendszer futása közben érkezhetnek. Az operációs rendszer minimálisra csökkenti a rendszer csoportjainak számát. Egy 128 logikai processzorral rendelkező rendszer például két processzorcsoporttal rendelkezik, amelyek mindegyik csoportjában 64 processzor található, nem pedig négy csoport, amelyekben 32 logikai processzor található.

A jobb teljesítmény érdekében az operációs rendszer figyelembe veszi a fizikai területi beállításokat, amikor logikai processzorokat rendel a csoportokhoz. A mag összes logikai processzora és a fizikai processzor összes magja ugyanahhoz a csoporthoz van rendelve, ha lehetséges. A fizikai processzorok, amelyek fizikailag közel állnak egymáshoz, ugyanahhoz a csoporthoz vannak rendelve. A NUMA-csomópontok egyetlen csoporthoz vannak rendelve, kivéve, ha a csomópont kapacitása meghaladja a csoport maximális méretét. További információ: NUMA támogatási.

A 64 vagy kevesebb processzorral rendelkező rendszereken a meglévő alkalmazások módosítás nélkül megfelelően fognak működni. Azok az alkalmazások, amelyek nem neveznek processzor affinitási maszkokat vagy processzorszámokat használó függvényeket, a processzorok számától függetlenül minden rendszeren megfelelően fognak működni. A 64-nél több logikai processzorral rendelkező rendszereken való helyes működéshez a következő típusú alkalmazásokhoz lehet szükség módosításra:

  • A teljes rendszer processzoronkénti adatait kezelő, karbantartó vagy megjelenítő alkalmazásokat több mint 64 logikai processzor támogatásához módosítani kell. Ilyen alkalmazás például a Windows Task Manager, amely megjeleníti a rendszer egyes processzorainak számítási feladatait.
  • Azokat az alkalmazásokat, amelyek teljesítménye kritikus fontosságú, és amelyek 64 logikai processzoron túl hatékonyan méretezhetők, módosítani kell az ilyen rendszerek futtatásához. Az adatbázis-alkalmazások például kihasználhatják a módosításokat.
  • Ha egy alkalmazás processzoronkénti adatstruktúrákkal rendelkező DLL-t használ, és a DLL-t nem módosították több mint 64 logikai processzor támogatására, a DLL által exportált függvényeket hívó alkalmazás összes szálát ugyanahhoz a csoporthoz kell rendelni.

Alapértelmezés szerint egy alkalmazás egyetlen csoportra van korlátozva, amely elegendő feldolgozási képességet biztosít a tipikus alkalmazás számára. Az operációs rendszer kezdetben ciklikus időszeleteléses módon rendeli hozzá az egyes folyamatokat egyetlen csoporthoz a rendszerben lévő csoportok között. Egy folyamat egy csoporthoz rendelve megkezdi a végrehajtást. A folyamat első szála kezdetben abban a csoportban fut, amelyhez a folyamat hozzá van rendelve. Minden újonnan létrehozott szál ugyanahhoz a csoporthoz van rendelve, mint az azt létrehozó szál.

Egy olyan alkalmazásnak, amely több csoport használatát igényli, hogy több mint 64 processzoron fusson, explicit módon meg kell határoznia, hogy hol futtassa a szálakat, és felelős a szálak processzor affinitásának a kívánt csoportokhoz való beállításáért. A INHERIT_PARENT_AFFINITY jelzővel megadhat egy szülőfolyamatot (amely eltérhet az aktuális folyamattól), amelyből létrehozható az affinitás egy új folyamathoz. Ha a folyamat egyetlen csoportban fut, az GetProcessAffinityMask és a SetProcessAffinityMask használatával olvashatja és módosíthatja az affinitást, miközben ugyanabban a csoportban marad; ha a folyamat affinitása módosul, az új affinitás a szálakra lesz alkalmazva.

A szál affinitása a létrehozáskor adható meg a PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY kiterjesztett attribútummal a CreateRemoteThreadEx függvénnyel. A szál létrehozása után az affinitása módosítható SetThreadAffinityMask vagy SetThreadGroupAffinitymeghívásával. Ha egy szál a folyamattól eltérő csoporthoz van rendelve, a folyamat affinitása frissül, hogy tartalmazza a szál affinitását, és a folyamat többcsoportos folyamattá váljon. Az egyes szálak esetében további affinitást kell módosítani; a többcsoportos folyamat affinitása nem módosítható SetProcessAffinityMaskhasználatával. A GetProcessGroupAffinity függvény lekéri azokat a csoportokat, amelyekhez a folyamat és a szálak hozzá vannak rendelve.

A feladatobjektumhoz társított összes folyamat affinitásának megadásához használja a SetInformationJobObject függvényt a JobObjectGroupInformation vagy JobObjectGroupInformationEx információs osztályhoz.

A logikai processzorokat a csoportszáma és a csoport relatív processzorszáma azonosítja. Ezt egy PROCESSOR_NUMBER szerkezet képviseli. Az örökölt függvények által használt numerikus processzorszámok csoporthoz viszonyítottak.

A több mint 64 processzort támogató operációsrendszer-architektúra változásairól a tanulmány a 64-nél több processzorralrendelkező támogató rendszerekről szóló tanulmányban olvashat.

A processzorcsoportokat támogató új függvények és struktúrák listáját A folyamatok és szálak újdonságaicímű témakörben találja.

Viselkedés a Windows 11-től és a Windows Server 2022-től kezdve

Jegyzet

A Windows 11-től és a Windows Server 2022-től kezdve már nem az a helyzet, hogy az alkalmazások alapértelmezés szerint egyetlen processzorcsoportra vannak korlátozva. Ehelyett a folyamatok és a szálak processzor-affinitásokkal rendelkeznek, amelyek alapértelmezés szerint a rendszer összes processzorára kiterjednek, több csoportra a 64-nél több processzorral rendelkező gépeken.

Annak érdekében, hogy az alkalmazások automatikusan kihasználhassák a 64-nél több processzorral rendelkező gépek összes processzorát, a Windows 11-től és a Windows Server 2022-től kezdve az operációs rendszer úgy változott, hogy a folyamatok és a szálak alapértelmezés szerint a rendszer összes processzorára kiterjedjenek az összes processzorcsoportban. Ez azt jelenti, hogy az alkalmazásoknak már nem kell explicit módon beállítaniuk a szálak affinitásait több processzorcsoport eléréséhez.

Kompatibilitási okokból az operációs rendszer egy új elsődleges csoport koncepciót használ a folyamatokhoz és a szálakhoz. Minden folyamathoz egy elsődleges csoport van hozzárendelve a létrehozáskor, és alapértelmezés szerint az összes szál elsődleges csoportja ugyanaz. Minden szál ideális processzora a szál elsődleges csoportjában található, így a szálak az elsődleges csoport processzoraihoz lesznek ütemezve, de bármely más csoport processzoraiba ütemezhetők. Azok az affinitási API-k, amelyek nem csoportérzékenyek vagy egyetlen csoporton működnek, implicit módon az elsődleges csoportot használják folyamat-/szálfeldolgozó csoportként; Az új viselkedésekkel kapcsolatos további információkért tekintse meg a Megjegyzések szakaszt az alábbiakért:

Az alkalmazások processzorkészletek segítségével hatékonyan kezelhetik egy folyamat vagy szál affinitását több processzorcsoport felett.

több processzor

NUMA támogatási