Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Schemaläggaren underhåller separata köer med körbara trådar för varje prioritetsnivå. Dessa trådar kallas för färdiga trådar. När en processor blir tillgänglig utför systemet en kontextväxel. Stegen i en kontextväxel är:
- Spara kontexten för tråden som föregrips eller frivilligt har getts av processorn.
- Om tråden förblir i ett redo tillstånd placerar du den i slutet av kön för dess prioritetsnivå.
- Hitta den kö med högst prioritet som innehåller färdiga trådar.
- Ta bort tråden längst upp i kön, återställ dess kontext och återuppta körningen.
Följande klasser av trådar är inte klara trådar.
- Trådar som skapats med flaggan CREATE_SUSPENDED
- Trådar stoppades under körningen med funktionen SuspendThread eller SwitchToThread
- Trådar som väntar på ett synkroniseringsobjekt eller indata.
Tills trådar som pausas eller blockeras blir redo att köras allokerar schemaläggaren inte någon processortid till dem, oavsett prioritet.
De vanligaste orsakerna till en kontextväxling är:
- Tidssegmentet har förflutit.
- En tråd med högre prioritet har blivit redo att köras.
- En tråd som körs måste vänta.
När en tråd som körs måste vänta avstängs resten av tidssegmentet.