Giriş cihazları ve kesmeler nasıl çalışır?

Klavyeniz çok basit bir giriş cihazıdır; basittir çünkü az miktarda veriyi çok yavaş bir şekilde üretir (bilgisayar standartları ile). Bir tuşa bastığınızda ya da bıraktığınızda bu durum, klavye kablosuna bir donanım kesmesi için sinyal gönderir.

Bu tarz kesmeleri izleme işi de işletim sisteminin görevidir. Olası her bir kesme çeşidi için, kesmelerle beraber verileri (tuşa basma/bırakma değerleri gibi) çalıştırılıncaya dek saklayan bir kesme işleyicisi olacaktır.

Tam olarak klavye kesme işleyicisinin yaptığı şey: tuş değerlerini belleğin en altında bulunan bir sistem alanına göndermektir. Orada ise, işletim sisteminin klavyeden okuma yapması beklenen programa kontrolü verdiği zaman, inceleme için kullanılabilir hale gelecektir.

Disk veya ağ kartı gibi daha karmaşık giriş cihazları benzer yollarla çalışırlar. Daha önce, yerine getirilmiş olan bir disk istek sinyalini göndermek için kullanan bir disk denetleyicisinden bahsetmiştim. Disk bir kesme yapar. Disk kesme denetleyicisi, isteği yapan programın daha sonraki kullanımı için tekrar, getirilen veriyi belleğe kopyalar.

Her bir çeşit kesmenin kendisi ile ilişkilendirilmiş bir öncelik seviyesi vardır. Düşük seviyeli kesmeler (klavye olayları gibi) yüksek öncelikli kesmeleri (saat darbeleri veya disk olayları) beklemek zorundadır. Unix, makinenin yanıt düzenini korumak için, hızlıca işlenmesi gereken olaylara yüksek öncelik verecek şekilde tasarlanmışır.

İşletim sisteminizin önyükleme zamanı mesajlarında, IRQ numaralarını görüyor olmalısınız.Sebebine gelmeden önce biliyorsunuzdur; donanımın yanlış yapılandırılmasının en çok karşılaşılan şekli, iki farklı cihazın aynı IRQ' yu kullanmaya çalışmasıdır.

Yanıtı burada. IRQ (Interrupt Request - Kesme İsteği) nin kısaltmasıdır. İşletim sistemi, açılması esnasında herbir donanım cihazının hangi numaralı kesmeyi kullanacak olduğunu bilmeye ihtiyacı vardır. Böylece her biri ile uygun olan işleyiciyi ilişkilendirir. Eğer iki farklı cihaz aynı IRQ'yu kullanmaya çalışırsa, kimi zaman kesmeler yanlış işleyiciye gönderilir. Genellikle bu durum cihazın kilitlenmesine ve işletim sisteminin uyku moduna geçmesine ya da çökmesine neden olacak şekilde işletim sistemini kötü bir biçimde yanıltır.