*

şükela:  tümü | bugün
  • preemptive multitasking de gelen bi interrupt yuzunden calismasi durdurulan thread in register degerleri context'e yazilip yeni degerlerle yeni threadin calismasi islemi
  • (bkz: tss) (bkz: task switching)
  • söz konusu interrupt, thread veya process'in bitmesi ya da zaman aralığının sona ermesi sonucu oluşur. bir threadin bir başka threadden önce ya da sonra çalışmasını kontrol etmek için interruptlar kapatılabilir, semaforlar ya da kilitler kullanılabilir.
  • tek bir cpu, bir cok proses icin kullanilabilsin, bo$ bo$ gezmesin diye olu$turulmu$ proses.

    (bkz: preemptive multitasking)
  • i/o istegi sonucunda da olusur.
  • calisma ve sozluk'e entry girme arasinda gidip gelinirken yasanan olay.
  • context switching asagidaki 3 durumda olusabilir:

    -- multitasking yaparken,
    -- kesmeleri yakalama esnasinda (intel x86 gibi kesme gudumlu mimarilerde),
    -- user ve kernel modlari arasi gecislerde (isletim sistemine gore, context switching olup olmayacagi degisir).

    ayrica google'in is gorusmelerinde sordugu nadir tanimlardan biridir.
    (bkz: ben bugun bunu gordum)
  • hizi hardware destegine baglidir. zira overhead'e yol acar. cok alakali olmasa da (bkz: pushf)(bkz: popf)
  • dispatch latency'yi doğrudan etkileyen bir faktördür.

    zira bir process'in block/waiting(engellenmiş/bekletilmekte)'e çekilip diğerinin ready(hazır)'den running state(çalışır durum)'e alınması süreçleri arasında gerçekleşmektedir.

    cpu bu esnada başka processleri çalıştırmaz, kontrolü bir bakıma dispatcher'a bırakır. daha sonra bir stack'e atar bu içeriği(contex) geçici olarak. context switch gerçekleşmeden dispatch tamamlanamaz.