Kesme, bilgisayar bilimi ve elektronik alanında, Merkezi İşlem Biriminin (CPU) dikkatini istemek için donanım veya yazılım tarafından gönderilen bir sinyale atıfta bulunan temel bir kavramdır. Bir kesinti meydana geldiğinde, CPU mevcut görevini askıya alır ve kesme talebini işlemeye geçer. Kesintiler, çoklu görevlerde çok önemli bir rol oynar ve cihazların ve uygulamaların CPU ile verimli bir şekilde iletişim kurmasına olanak tanır.
Interrupt'un kökeninin tarihi ve ilk sözü
Kesinti kavramının kökeni hesaplamanın ilk günlerine kadar uzanabilir. 1950'lerde ilk bilgisayarlar vakum tüpleri kullanılarak yapıldı ve basit programlama dizilerine dayanıyordu. Bilgisayarlar daha karmaşık hale geldikçe ve çevresel aygıtlar piyasaya sürüldükçe, dış olayları yönetecek bir mekanizmaya ihtiyaç ortaya çıktı.
Kesintilerden ilk söz, ticari olarak satılan en eski bilgisayarlardan biri olan UNIVAC I bilgisayarına atfedilebilir. 1951'de piyasaya sürülen UNIVAC I, giriş ve çıkış işlemleri gibi donanım olaylarını yönetmek için temel bir kesme biçimi kullandı.
Interrupt hakkında detaylı bilgi. Interrupt konusunu genişletiyoruz.
Modern bilgisayar sistemlerinde kesintiler, donanım ve yazılım etkileşimlerini verimli bir şekilde yönetmek için çok önemlidir. Bir donanım aygıtıyla ilgilenilmesi gerektiğinde veya belirli bir yazılım olayı meydana geldiğinde, CPU'nun mevcut görevini durduran ve kontrolü bir kesme işleyici rutinine aktaran bir kesinti tetiklenir. Kesme işleyicisi görevini tamamladıktan sonra CPU, kesintiye uğrayan göreve devam eder.
Kesintiler iki ana kategoriye ayrılabilir: donanım kesintileri ve yazılım kesintileri. Donanım kesintileri klavye, fare veya ağ kartları gibi çevresel aygıtlar tarafından harici olarak oluşturulur. Öte yandan, yazılım kesintileri genellikle yazılım uygulamaları tarafından işletim sisteminden hizmet istemek için oluşturulur.
Kesintinin iç yapısı. Kesinti nasıl çalışır?
Kesintilerin iç yapısı, CPU mimarisine ve diğer donanım bileşenleriyle etkileşimine yakından bağlıdır. Bir kesinti meydana geldiğinde CPU aşağıdaki adımları gerçekleştirir:
-
Kesinti İsteği (IRQ): Kesintiye uğrayan cihaz veya yazılım, CPU'ya dikkat edilmesi gerektiğini belirten bir kesme isteği (IRQ) sinyali gönderir.
-
Kesinti Denetleyicisi: CPU, IRQ sinyalini alır ve kontrolü, gelen kesintileri önceliklendirip yöneten kesme denetleyicisine aktarır. Modern sistemler, çok sayıda kesme kaynağını yönetebilen gelişmiş kesme denetleyicileri kullanır.
-
Kesinti Vektörü: Her kesme, kesme türü için benzersiz bir tanımlayıcı olan bir kesme vektörüyle ilişkilendirilir. Kesme denetleyicisi, uygun kesme işleyici rutinini bulmak için bu vektörü kullanır.
-
Kesinti İşleyicisi: Kesme işleyicisi, belirli bir tür kesmeyi işlemek için tasarlanmış özel bir rutindir. Kesintiyi işler ve cihazdan veri okumak veya bir yazılım isteğine yanıt vermek gibi gerekli eylemleri gerçekleştirir.
-
Bağlam anahtarı: Bir kesinti meydana geldiğinde CPU, program sayacı ve kayıt değerleri de dahil olmak üzere kesintiye uğrayan görevin mevcut durumunu süreç kontrol bloğu (PCB) adı verilen bir veri yapısında kaydeder. Bu, CPU'nun daha sonra ilerlemesini kaybetmeden göreve devam etmesine olanak tanır.
-
Kesinti Onayı: Kesme işleyicisi görevini tamamladıktan sonra CPU, kesmeyi kabul eder ve kesintiye uğrayan görevin içeriğini geri yükler. CPU daha sonra görevi kesintiye uğradığı noktadan devam ettirir.
Interrupt'un temel özelliklerinin analizi
Kesmeler, modern bilgisayar sistemlerinin verimliliğine ve yanıt verebilirliğine katkıda bulunan çeşitli temel özellikler sunar:
-
Asenkron İletişim: Kesintiler, cihazların ve yazılımın CPU ile eşzamansız olarak iletişim kurmasına olanak tanır ve kritik görevlerin, CPU'nun sürekli olarak cihazları yoklamasını beklemeden derhal ele alınmasını sağlar.
-
Öncelikli İşleme: Kesintilere öncelik verilebilir, böylece yüksek öncelikli kesintilere düşük öncelikli olanlardan önce hizmet verilmesi sağlanır. Bu, zaman açısından kritik olayların etkili bir şekilde yönetilmesine yardımcı olur.
-
Olay Odaklı Mimari: Kesintiler, uygulamaların doğrusal bir sırayı takip etmek yerine kullanıcı girişi veya donanım sinyalleri gibi belirli olaylara yanıt verdiği olay odaklı programlamayı etkinleştirir.
-
Verimli Kaynak Kullanımı: Görevleri yalnızca gerektiğinde askıya alarak, kesintiler CPU kaynaklarının daha iyi kullanılmasını sağlar ve yoklama için harcanan israf döngülerini önler.
-
Gerçek Zamanlı İşleme: Endüstriyel otomasyon veya robot bilimi gibi dış olaylara zamanında yanıt vermenin hayati önem taşıdığı gerçek zamanlı sistemlerde kesintiler hayati bir rol oynar.
Kesinti Türleri
Kesmeler kökenlerine ve işlevlerine göre çeşitli türlere ayrılabilir. Aşağıda yaygın kesme türlerinin bir listesi bulunmaktadır:
Tip | Tanım |
---|---|
Donanım Kesintisi | CPU'nun dikkatini istemek için harici donanım aygıtları tarafından oluşturulur. |
Yazılım Kesintisi | İşletim sisteminden hizmet istemek için yazılım uygulamaları tarafından oluşturulur. |
Maskelenebilir Kesinti | CPU tarafından devre dışı bırakılabilen (maskelenebilen) kesintiler, bunların anında işlenmesini engeller. |
Maskelenemeyen Kesinti | Maskelenemeyen kritik kesintiler, genellikle ciddi sistem hatalarını işlemek için kullanılır. |
Kenar tetikli | Kesme kaynağının sinyal seviyesindeki bir değişiklik (örneğin, yükselen kenar veya düşen kenar) tarafından tetiklenir. |
Seviye Tetiklemeli | Kesme sinyali belirli bir durumda olduğu sürece (örn. yüksek veya düşük) aktif kalır. |
Kesmeler bilgisayar sistemlerinin çeşitli yönlerinde yaygın olarak kullanılmaktadır. Bazı yaygın uygulamalar şunları içerir:
-
Cihaz Etkileşimi: Donanım kesintileri klavye, fare ve ağ kartları gibi cihazların CPU ile verimli bir şekilde etkileşime girmesini sağlar.
-
Görev değiştirme: İşletim sistemleri çoklu görevi uygulamak için kesintileri kullanır ve CPU'nun farklı işlemler veya iş parçacıkları arasında geçiş yapmasına olanak tanır.
-
Gerçek Zamanlı Sistemler: Gerçek zamanlı sistemlerde, zaman açısından kritik olayların ele alınması ve dış uyaranlara anında yanıt verilmesinin sağlanması için kesintiler önemlidir.
Avantajlarına rağmen kesintileri kullanmak bazı zorluklara yol açabilir:
-
Kesinti Giderleri: Sık kesintiler genel sistem performansını etkileyen ek yüke neden olabilir.
-
Kesinti Önceliği Yönetimi: Kesintilerin uygun şekilde önceliklendirilmesi, kaynak çekişmesini önlemek ve yüksek öncelikli olayların zamanında ele alınmasını sağlamak için kritik öneme sahiptir.
-
Kesinti Gecikmesi: Zamana duyarlı uygulamalar için bir kesme isteği ile bunun işlenmesi arasındaki süre (kesinti gecikmesi) en aza indirilmelidir.
Bu sorunları çözmek için sistem tasarımcıları kesinti birleştirme, kesinti önleme ve verimli kesinti işleme rutinleri gibi teknikler kullanır.
Ana özellikler ve benzer terimlerle diğer karşılaştırmalar
Kesinti ve Yoklama:
- Kesmeler olaya dayalı ve eşzamansızdır; yoklama ise olayları denetlemenin sürekli ve eşzamanlı bir yöntemidir.
- Kesintiler, CPU döngülerinin sürekli yoklamayla israf edilmesini önlediğinden daha verimlidir.
Kesinti ve İstisna:
- Kesintiler, CPU'nun dikkatini istemek için donanım veya yazılım tarafından oluşturulan harici olaylardır.
- İstisnalar, hata koşulları veya özel talimatlar nedeniyle CPU'nun kendisinin neden olduğu dahili olaylardır.
Kesinti ve Tuzak:
- Kesintiler harici olaylar için kullanılırken tuzaklar (yazılım kesintileri olarak da bilinir) sistem çağrıları gibi dahili olaylar için kullanılır.
Bilgi işlem ilerlemeye devam ettikçe, donanım ve yazılım etkileşimlerinin artan karmaşıklığının üstesinden gelmede kesintilerin rolü hayati olmaya devam edecek. Gelecek teknolojiler aşağıdakilere odaklanabilir:
-
Gelişmiş Gerçek Zamanlı Yetenekler: Araştırmalar muhtemelen gerçek zamanlı uygulamaların katı taleplerini karşılamak için kesinti işlemede iyileştirmelere yol açacaktır.
-
Enerji Verimli Kesinti Yönetimi: Taşınabilir cihazlarda ve veri merkezlerinde kesinti yükünü ve güç tüketimini azaltmaya yönelik teknikler.
-
Yenilikçi Önceliklendirme Mekanizmaları: Kaynak kullanımını optimize etmek ve yanıt verebilirliği sağlamak için daha karmaşık kesinti önceliklendirme şemaları.
Proxy sunucuları nasıl kullanılabilir veya Interrupt ile ilişkilendirilebilir?
Proxy sunucular ağ bağlantılı ortamlardaki kesintilerin yönetilmesinde önemli bir rol oynayabilir. Birden fazla istemci bir proxy aracılığıyla internete eriştiğinde proxy, DNS çözümlemeleri, içeriği önbelleğe alma ve bağlantıları yönetme gibi kesintileri verimli bir şekilde işleyebilir. Proxy sunucuları bir aracı görevi görerek ağ trafiğini optimize etmeye ve genel tarama deneyimini geliştirmeye yardımcı olabilir.
İlgili Bağlantılar
Kesintiler hakkında daha fazla bilgi için aşağıdaki kaynakları inceleyebilirsiniz: