Kesme vs Tuzak
Herhangi bir bilgisayarda, bir programı normal yürütmesi sırasında, CPU'nun geçici olarak durmasına neden olabilecek olaylar olabilir. Bu gibi olaylara kesinti denir. Kesintilere yazılım veya donanım hataları neden olabilir. Donanım kesmeleri (basitçe) Kesmeler olarak adlandırılırken, yazılım kesmeleri İstisnalar veya Tuzaklar olarak adlandırılır. İstisna, otomatik olarak oluşturulan bir yazılım kesmesidir, Tuzak ise programcı tarafından başlatılan yazılım tarafından başlatılan bir kesmedir. Bir kesinti (yazılım veya donanım) yükseltildiğinde, kontrol, kesintinin neden olduğu koşulları işleyebilen ISR (Kesme Hizmeti Rutini) adı verilen özel bir alt rutine aktarılır..
Kesinti Nedir?
Kesinti terimi genellikle donanım kesmeleri için ayrılmıştır. Harici donanım olaylarının neden olduğu program kontrol kesintileridir. Burada, CPU'nun dışındaki harici araçlar. 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) gibi birçok farklı kaynaktan gelir. kart, vb.). Bu, yürütme programıyla ilgili bir olay nedeniyle donanım kesintilerinin neredeyse hiç gerçekleşmediği anlamına gelir. Örneğin, kullanıcı tarafından klavyede bir tuşa basma gibi bir olay veya dahili bir donanım zamanlayıcı zaman aşımı bu tür kesintileri artırabilir ve CPU'ya belirli bir cihazın biraz ilgilenmesi gerektiğini bildirebilir. Böyle bir durumda CPU yaptığı her şeyi durduracaktır (yani mevcut programı duraklatır), aygıtın gerektirdiği 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 oluşacak başka donanım kesintilerine ihtiyacınız varsa, kesme bayrağını ( şti talimat). 80 × 86 makinelerde, kesme bayrağını temizlemek yalnızca donanım kesintilerini etkiler.
Tuzak Nedir??
Bir Tuzak, programcı tarafından başlatılan bir kontrol transferi olarak tanımlanabilir. Tuzak terimi, istisna (otomatik olarak oluşan bir yazılım kesmesi olan) terimi ile dönüşümlü olarak kullanılır. Ancak bazıları tuzağın sadece özel bir altyordam çağrısı olduğunu iddia edebilir. Bu yüzden yazılım tarafından başlatılan kesmeler kategorisine girerler. Örneğin, 80 × 86 makinelerde, bir programcı int bir tuzak başlatmak için talimat. Bir tuzak her zaman koşulsuz olduğu için, kontrol daima tuzakla ilişkili alt rutine aktarılır. Tuzağı ele almak için rutini çağıran tam talimat, kolayca bir tuzak belirtmek için açık bir talimat kullanıldığından kolayca tanımlanır.
Interrupt ve Trap arasındaki fark nedir?
Kesmeler donanım kesintileridir, tuzaklar ise yazılım tarafından başlatılan kesmelerdir. Donanım kesintilerinin sıklığı genellikle diğer donanım kesintilerini devre dışı bırakır, ancak bu tuzaklar için geçerli değildir. Bir tuzak servis edilene kadar donanım kesintilerine izin vermemeniz gerekiyorsa, kesme bayrağını açıkça temizlemeniz gerekir. Ve genellikle bilgisayardaki kesme bayrağı, tuzakların aksine (donanım) kesintilerini etkiler. Bu, bu bayrağı temizlemenin tuzakları engellemeyeceği anlamına gelir. Tuzaklardan farklı olarak, kesintiler CPU'nun önceki durumunu korumalıdır.