Sobes.tech
Junior

Bağlam değişikliği nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Context Switching (Bağlam Değiştirme), bir işlemin (veya akışın) durumunun işletim sistemi tarafından kaydedilmesi ve başka bir işlemin (veya akışın) durumunun geri yüklenmesi sürecidir. Bu, birkaç işlemin aynı işlemciyi paylaşmasına olanak tanır.

Algoritma aşağıdaki adımları içerir:

  1. Mevcut bağlamın kaydedilmesi: İşlemcinin kayıtları, komut sayacı (PC), yığın durumu ve mevcut işlemeye ilişkin diğer bilgiler, onun tanımlayıcısına (PCB - İşlem Kontrol Bloğu) kaydedilir.
  2. Sonraki işlemin seçilmesi: İşletim sistemi planlayıcısı, yürütülecek bir sonraki işlemi seçer.
  3. Bağlamın geri yüklenmesi: Seçilen işlemin kaydedilen durumu, PCB'sinden işlemci kayıtlarına yüklenir.

Bağlam değiştirmenin maliyetleri (overhead):

  • Durumun kaydedilmesi ve geri yüklenmesine harcanan zaman.
  • Önbellek hataları (cache misses) nedeniyle verimlilik kaybı, çünkü bir işlemden doldurulan önbellek diğer işlem için geçerli değildir.
  • Planlayıcı komutlarının yürütülmesi maliyetleri.

Örnek:

Diyelim ki, iki işlemimiz var, A ve B, bir işlemci çekirdeğinde çalışıyorlar.

// Başlangıçta, İşlem A çalışıyor
// İşlem A CPU kaynaklarını kullanıyor

// Bir olay meydana gelir, örneğin, İşlem A'nın zaman dilimi sona erer
// İşlem A'nın durumu (kayıtlar, PC) kaydedilir
// İşletim sistemi, İşlem B'yi yürütmek üzere seçer
// İşlem B'nin durumu yüklenir
// İşlem B yürütmeye başlar

Bağlam değişimi, işletim sistemlerindeki çoklu görevliğin temel mekanizmasıdır ve tek bir fiziksel işlemcide çok sayıda işlemin paralel yürütülmesi izlenimini yaratmaya olanak tanır.