Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az ütemező minden prioritási szinthez külön végrehajtható szálsorokat tart fenn. Ezeket a szálakat kész szálaknak nevezzük. Amikor egy processzor elérhetővé válik, a rendszer környezeti kapcsolót hajt végre. A környezeti kapcsoló lépései a következők:
- Mentse a processzor által előre megadott vagy önként megadott szál kontextusát.
- Ha a szál kész állapotban marad, helyezze az üzenetsor végére a prioritási szinthez.
- Keresse meg a kész szálakat tartalmazó legmagasabb prioritású üzenetsort.
- Távolítsa el a szálat az üzenetsor elején, állítsa vissza a környezetét, és folytassa a végrehajtást.
A következő szálosztályok nem állnak készen a szálakra.
- A CREATE_SUSPENDED jelzővel létrehozott szálak
- A végrehajtás során leállt szálak a SuspendThread vagy a SwitchToThread függvénnyel
- Szinkronizálási objektumra vagy bemenetre váró szálak.
Amíg a felfüggesztett vagy letiltott szálak nem lesznek futtathatók, az ütemező nem foglal le processzoridőt számukra, függetlenül azok prioritásától.
A környezeti kapcsoló leggyakoribb okai a következők:
- Eltelt az időszelet.
- A magasabb prioritású szálak készen állnak a futtatásra.
- Egy futó szálnak várnia kell.
Ha egy futó szálnak várnia kell, lemondja az időszelet fennmaradó részét.