Aracılığıyla paylaş


Bağlam Anahtarları

Zamanlayıcı, her öncelik düzeyi için ayrı yürütülebilir iş parçacığı kuyrukları tutar. Bu iş parçacıkları hazır iş parçacıkları olarak bilinir. Bir işlemci kullanılabilir olduğunda, sistem bir bağlam anahtarı gerçekleştirir. Bağlam anahtarındaki adımlar şunlardır:

  1. İşlemci tarafından önceden yüklenmiş veya gönüllü olarak sunulan iş parçacığının bağlamını kaydedin.
  2. İş parçacığı hazır durumda kalırsa, öncelik düzeyi için kuyruğun sonuna yerleştirin.
  3. Hazır iş parçacıkları içeren en yüksek öncelikli kuyruğu bulun.
  4. Kuyruğun başındaki iş parçacığını kaldırın, bağlamını geri yükleyin ve yürütmeyi sürdürun.

Aşağıdaki iş parçacıkları sınıfları hazır iş parçacıkları değildir.

  • CREATE_SUSPENDED bayrağıyla oluşturulan iş parçacıkları
  • SuspendThread veya SwitchToThread işleviyle yürütme sırasında durdurulan iş parçacıkları
  • Eşitleme nesnesi veya girişi bekleyen iş parçacıkları.

Askıya alınan veya engellenen iş parçacıkları çalıştırılmaya hazır olana kadar zamanlayıcı, önceliklerinden bağımsız olarak onlara işlemci zamanı ayırmaz.

Bağlam anahtarının en yaygın nedenleri şunlardır:

  • Zaman dilimi doldu.
  • Daha yüksek önceliğe sahip bir iş parçacığı çalışmaya hazır hale geldi.
  • Çalışan bir iş parçacığının beklemesi gerekir.

Çalışan bir iş parçacığının beklemesi gerektiğinde, zaman diliminin kalan kısmını kaldırır.