3 Eylül 2015 Perşembe

System Call ve Context Switch Nedir

Sistem Çağrısı (System Call) Nedir?
System Call Nedir yazısına taşıdım.

Context Switch

Eğer işletim sistemi bizim yazılımımız çalışırken context switch yapmaya karar verirse, bizim kaldığımız noktadan itibaren tekrar devam edebilmesi için o anki tüm context'i saklaması ve tekrar yükleyebilmesi gerekir. Aşağıda bu durumu gösteren bir şekli buradan aldım.

İşletim sistemi bir uygulamanın o anki halini saklamak için Process Control Block (PCB) yapısını kullanır. Bu yapıya tekrar devam edebilmek için gerekli her şey yazılır. Sıra tekrar bizim yazılımımıza gelince de PCB tekrar yüklenir ve kaldığımız yerden devam ederiz. Context switch gerekirse tam bir sistem çağrısının ortasında da yapılabilir.

Görüldüğü gibi sistem çağrısı ve context switch birbirlerinden çok farklı şeylerdir. System call yazılımların daha güvenli çalışmasını sağlarken, context switch sayesinde CPU bir çok yazılım ve işletim sistemi arasında paylaştırılabilir.

Buradaki sorudan aldığım cevaba göre Context Switching tek CPU varken aslında fazladan yük getiriyor.

Interrupt handling (Linux/General)
Interrupt handling (Linux/General) sorusunda Interrupt Request (IRQ) ile cihazlarlar arasında nasıl bağlantı kurulacağını da görmek mümkün. Bir Interrupt Service Request (ISR) içinde aşağıdakine benzer işlemler yapılamaz.
  • Semaphore vb. yapılar üzerinde bloke olunamaz
  • Spin lock vb. yapılar üzerinde beklenemez
  • Page Fault'e sebep olunamaz

1 yorum: