Interrupt (Kesme) Nedir? Interrupt Çeşitleri Nelerdir?

Interrupt (Kesme) Nedir?

Interrupt, Türkçeye ‘kesme’ olarak çevrilmiştir. Bilgisayar işlemcisi yapısı gereği aynı anda farklı işlemleri yürütememektedir. Bir işlemi gerçekleştirirken başka bir işlem geldiğinde o işlemi kuyruğa alarak bekletir. Ancak bazen yürüttüğü işlemden daha acil başka bir işlem gelebilmektedir.  Bu kimi zaman arka arkaya gerçekleştirilen bir I/O işlemi, kimi zaman sıfıra bölme hatası, kimi zaman da başka bir işlem olabilmektedir. Bu gibi işlemler geldiğinde işlemci yürütmekte olduğu işlemin durumunu kaydederek askıya alır ve gelen acil işlemi yürütür. Bu işi tamamladıktan sonra bir önceki işlemi kesme hizmeti yordamı (ISR) ile askıya alınan yerden alarak yapmaya devam etmektedir.

Şekil 1. Interrupt meydana geldiğinde işlemcide gerçekleşen olay 

Interrupt Çeşitleri

Aynı anda birden fazla işi gerçekleştirmek için kullanılan interruptların kaç çeşit olduğu farklı kaynaklara göre değişkenlik göstermektedir. Bazı kaynaklarda iki çeşit interrupt olduğu söylenmektedir. Bunlar:
  • Donanım Kesintileri (Hardware Interrupts)
  • Yazılım Kesintileri (Software Interrupts)
olarak geçmektedir.

Bazı kaynaklarda ise üç çeşit interrupt olduğu söylenmektedir. Bunlar:
  • İç Kesmeler (Internal Interrupts)
  • Dış Kesmeler (External Interrupts)
  • Yazılımsal Kesmeler (Software Interrupts)

olarak belirtilmektedir.

Bu konuda kesin bir durum belirtilmemiştir ancak yoğun olarak kullanılan iki türün olduğudur. Bu yüzden bu yazıda donanım ve yazılım kesintileri olarak ikiye ayrılmış türler incelenecektir.

Donanım Kesintileri (Hardware Interrupts)

Bu tür kesme işlemleri dışarıdan gelen sinyallere bağlı olan kesmedir. İnternet bağlantısı, fare, klavye, dokunmatik ekran, hard disk vb. donanımsal cihazlardan gelen bir kesme isteği olduğu zaman işlemci bu kesme isteğini değerlendirerek yaptığı işlemi askıya alıp bunu gerçekleştirir. Bu farenin konumunun değişmesi, bir klavye tuşuna basılması veya internet bağlantısının kesilmesi gibi bir istek olabilmektedir. Donanım kesintilerinin de iki çeşidi mevcuttur. Bunlar: Maskelenebilen (Maskable) ve Maskelenemeyen (Non-Maskable) olarak ikiye ayrılır.
  • Maskelenebilir Kesmeler (Maskable Interrupts): İşlemci üzerinde bir kesme maskesi bulunmaktadır. Bu kesme maskesi gelen kesme işleminin gerçekleştirilmesine veya devre dışı bırakılmasına karar verebilmektedir. Gelen her kesme sinyali, maske yazmacında bulunan bir bit ile ilişkilidir ve bu bitler üzerinde yapılan değişikliklere göre kesme işleminin durumuna karar verilebilmektedir. Eğer kesme işlemi işlemci tarafından devre dışı bırakılabiliyor ve gerçekleştirilmeyebiliyorsa bu tür kesme işlemlerine maskelenebilir kesme adı verilmektedir.
  • Maskelenemeyen Kesmeler (Non-Maskable Interrupts): Bu tür kesmeler işlemci tarafından devre dışı bırakılamayan ve gerçekleştirilmesi zorunlu olan kesmelerdir. Bu gibi durumlarda işlemcinin karar vermesini sağlayan bir bitlik kısım yanlış gelmiştir ve bu yüzden işlemci karar verememektedir. Buna örnek olarak elektriksel arızalar veya bilgisayarın kapatma tuşuna basılı tutularak kapatılması verilebilir.

Yazılım Kesintileri (Software Interrupts)

Bu tür kesme işlemleri, işlemci içerisinde meydana gelen bir durumdan veya hatadan kaynaklanmaktadır. Buna örnek olarak aritmetik işlemler sırasında gerçekleşen sıfıra bölme hatası veya komut setinin içindeki özel bir kodun çalıştırılması verilebilir.

Yazılım kesintileri, kullanıcı alanındaki (user space) uygulamaların çekirdek alanındaki (kernel space) çağrıları gerçekleştirmesi için yani yazılımın kernel ile haberleşmesini ve etkileşimde bulunmasını sağlamak için meydana gelmektedir. Örnek vermek gerekirse, dosyaya yazma işleminin gerçekleştiği bir yazılımda dosyayı açma ve kapatma işlemleri sırasında bir software interrupt üretilmektedir. Bu interrupt işleme koyulduğunda işlemcinin verdiği komutlarla user space yani kullanıcı alanından çıkılarak kernel space yani çekirdek alanına gelinir. Burada gerekli işlemler gerçekleştirildikten sonra tekrar kernel space’ten user space’e dönülür ve program çalışmaya devam eder.

Yorumlar

Bu blogdaki popüler yayınlar

Shell Nedir? C99 ve R57 Nedir?

Cache (Önbellek) Nedir? Nasıl Çalışır? Cache Bellek Kullanımının Amacı Nedir?