İstisnaya Karşı Kesinti
Herhangi bir bilgisayarda, bir programın normal yürütülmesi sırasında, CPU'nun geçici olarak durmasına neden olabilecek olaylar olabilir. Bunun gibi olaylara kesinti denir. Kesintiler, yazılım veya donanım hatalarından kaynaklanabilir. Donanım kesintilerine (basitçe) Kesintiler denirken, yazılım kesintilerine İstisnalar denir. Bir kesme (yazılım veya donanım) oluşturulduğunda, kontrol, kesme tarafından oluşturulan koşulları işleyebilen ISR (Kesme Hizmeti Rutini) adlı özel bir alt programa aktarılır.
Kesme Nedir?
Kesme terimi genellikle donanım kesintileri için ayrılmıştır. Harici donanım olaylarının neden olduğu program kontrol kesintileridir. Burada harici, CPU'nun harici anlamına gelir. Donanım kesintileri genellikle zamanlayıcı yongası, çevresel aygıtlar (klavyeler, fare vb.), G/Ç bağlantı noktaları (seri, paralel vb.), disk sürücüleri, CMOS saati, genişletme kartları (ses kartı, video vb.) gibi birçok farklı kaynaktan gelir. kart, vb). Bu, yürütülmekte olan programla ilgili bazı olaylar nedeniyle donanım kesintilerinin neredeyse hiç gerçekleşmediği anlamına gelir. Örneğin, kullanıcının klavyede bir tuşa basması veya dahili donanım zamanlayıcısının zaman aşımına uğraması gibi bir olay, bu tür bir kesmeyi artırabilir ve CPU'ya belirli bir cihazın biraz dikkat etmesi gerektiğini bildirebilir. Böyle bir durumda CPU yaptığı işi durdurur (yani mevcut programı duraklatır), cihazın ihtiyaç duyduğu hizmeti sağlar ve normal programa geri döner. Donanım kesintileri meydana geldiğinde ve CPU ISR'yi başlattığında, diğer donanım kesintileri devre dışı bırakılır (örn. 80×86 makinelerde). ISR çalışırken diğer donanım kesintilerinin gerçekleşmesi gerekiyorsa, bunu kesme bayrağını temizleyerek (sti komutuyla) açıkça yapmanız gerekir.80×86 makinelerde, kesme bayrağının temizlenmesi yalnızca donanım kesmelerini etkiler.
İstisnalar Nedir?
İstisna, özel bir işleyici rutini olarak tanımlanabilen bir yazılım kesintisidir. İstisna, otomatik olarak oluşan bir tuzak olarak tanımlanabilir (bir Tuzak, programcı tarafından başlatılan bir kontrol aktarımı olarak tanımlanabilir). Genel olarak, istisnalarla ilişkili belirli bir talimat yoktur (tuzaklar belirli bir talimat kullanılarak oluşturulur). Bu nedenle, program yürütme sırasında oluşan "istisnai" bir koşul nedeniyle bir istisna oluşur. Örneğin, sıfıra bölme, geçersiz bir işlem kodunun yürütülmesi veya bellekle ilgili hata, istisnalara neden olabilir. Bir istisna oluştuğunda, CPU yürütmekte olduğu programı geçici olarak askıya alır ve ISR'yi başlatır. ISR, istisna dışında ne yapılacağını içerecektir. Sorunu düzeltebilir veya mümkün değilse uygun bir hata mesajı yazdırarak programı sorunsuz bir şekilde durdurabilir. Belirli bir talimat bir istisnaya neden olmamasına rağmen, istisnaya her zaman bir talimat neden olacaktır. Örneğin, sıfıra bölme hatası yalnızca bölme talimatının yürütülmesi sırasında meydana gelebilir.
Kesme ve İstisna arasındaki fark nedir?
Kesmeler donanım kesintileridir, istisnalar ise yazılım kesintileridir. Donanım kesintilerinin meydana gelmesi genellikle diğer donanım kesintilerini devre dışı bırakır, ancak bu istisnalar için geçerli değildir. Bir istisna sunulana kadar donanım kesintilerine izin vermemeniz gerekiyorsa, kesme bayrağını açıkça temizlemeniz gerekir. Ve genellikle bilgisayardaki kesme bayrağı, istisnaların aksine (donanım) kesmelerini etkiler. Bu, bu bayrağın temizlenmesinin istisnaları engellemeyeceği anlamına gelir.