Tavsiye, 2021

Editörün Seçimi

OS'de Kesme ve Yoklama Arasındaki Fark

İşlemciye fare, klavye, tarayıcı, yazıcı vb. Gibi pek çok harici aygıt eklenmiştir. Bu aygıtların da CPU dikkatine ihtiyacı vardır. Bir CPU'nun PDF görüntülemekle meşgul olduğunu ve masaüstündeki pencere medya oynatıcı simgesini tıklattığını varsayalım. İşlemci böyle bir olayın ne zaman gerçekleşeceği konusunda hiçbir fikre sahip olmamakla birlikte, bu girişlere G / Ç cihazlarından yanıt vermesi gerekir. Kesme ve Yoklama, CPU başka bir işlemi yürütmekle meşgulken herhangi bir anda gerçekleşebilecek cihazların ürettiği olayları ele almanın iki yoludur.

Yoklama ve Kesme, CPU'nun şu anda yaptığı şeyi durdurmasına ve daha önemli göreve yanıt vermesine izin verir. Yoklama ve Kesme, birçok açıdan birbirinden farklıdır. Ancak Yoklama ve Kesmeyi ayırt eden temel nokta, Yoklama CPU'sunun G / Ç aygıtlarını CPU hizmetine ihtiyaç duyup duymadığını düzenli aralıklarla kontrol etmeye devam ederken, kesme işleminde G / Ç cihazı işlemciyi keser ve CPU'ya CPU hizmetine ihtiyaç duyduğunu söyler. . Interrupt ve Polling arasındaki bazı farklılıkları aşağıdaki karşılaştırma tablosunda tartıştım, lütfen bir göz atın.

Karşılaştırma Tablosu

Karşılaştırma için temelKesmekoy verme
TemelAygıt, CPU'ya CPU dikkat etmesi gerektiğini bildirir.CPU sürekli olarak cihazın dikkatini gerektirip gerektirmediğini kontrol eder.
mekanizmaBir kesinti bir donanım mekanizmasıdır.Yoklama bir Protokoldür.
servisInterrupt işleyicisi, Aygıt'a hizmet eder.CPU cihaza hizmet eder.
belirtiKesinti isteği satırı, cihazın servis gerektirdiğini gösterir.Kullanıma hazır bit, cihazın servis gerektirdiğini gösterir.
İşlemciCPU sadece bir cihazın servis gerektirmesi durumunda bozulur ve bu işlem CPU döngülerini korur.CPU, çok fazla CPU çevrimi boşa harcayan bir cihazın servis gerektirip gerektirmediğini kontrol etmek zorundadır.
olayHerhangi bir zamanda bir kesinti olabilir.CPU cihazları düzenli aralıklarla yoklar.
verimAygıtlar CPU'yu tekrar tekrar kesmeye devam ettiğinde, kesme verimsiz hale gelir.
CPU nadiren servise hazır bir cihaz bulduğunda yoklama etkin olmaz.
ÖrnekZili çaldıktan sonra kimin geldiğini kontrol etmek için kapıyı açalım.Herhangi birisinin gelip gelmediğini kontrol etmek için sürekli kapıyı açmaya devam edin.

Interrupt tanımı

Bir kesinti, CPU'nun bir cihazın dikkat etmesi gerektiğini algılamasını sağlayan bir donanım mekanizmasıdır . CPU, her bir talimatın yerine getirilmesinden sonra CPU tarafından kontrol edilen bir kablo kesme talebi hattına sahiptir. CPU, kesme talebi satırında bir kesme sinyali algıladığında, CPU şu anda yürütme görevini durdurur ve kontrolü kesme işleyicisine geçirerek I / O aygıtı tarafından kesme gönderme işlemine yanıt verir. Kesme işleyicisi, cihaza servis vererek kesintiyi giderir.

Her ne zaman herhangi bir anda ortaya çıkabileceği için CPU ne zaman bir kesinti olacağını bilmese de, ne zaman meydana gelse kesmeye cevap vermek zorundadır.

Kesme işleyicisi kesme işlemini tamamladığında, CPU kesmeyi yanıtlamak için durdurduğu görevin yürütülmesini sürdürür . Yazılım, donanım, kullanıcı, programda bazı hatalar vb. Bir kesinti de oluşturabilir. İşlemcinin işleyişini kesintiye uğratan çoklu görevlere yol açar, yani bir kullanıcı aynı anda birkaç farklı görevi gerçekleştirebilir.

CPU'ya birden fazla kesinti gönderilirse, kesinti işleyicisi işlenmeyi bekleyen kesintileri yönetmeye yardımcı olur. Kesme işleyicisi, bir kesme işleminin alımı tarafından tetiklendiğinde, CPU tarafından işlenmeyi bekleyen kesintileri öncelik sırasına koyar ve servis için sıraya sokar.

Polling'un tanımı

Kesintilerde gördüğümüz gibi, G / Ç cihazından gelen giriş, CPU'dan işlem yapmasını isteyen her an ulaşabilir. Yoklama, CPU'ya bir cihazın dikkat etmesi gerektiğini bildiren bir protokoldür . Kesintiden farklı olarak, aygıtın CPU'ya CPU işlemesi gerektirdiğini söylediği durumlarda, sorgulama CPU'sunda G / Ç aygıtına CPU işlemesi gerekip gerekmediğini sormaya devam eder.

CPU, herhangi bir cihazın CPU dikkatine ihtiyaç duyup duymadığını tespit etmek için kendisine bağlı her cihazı sürekli olarak test eder. Her aygıtın, o aygıtın durumunu belirten, CPU tarafından yürütülecek bazı komutları olup olmadığını belirten bir komutu hazır biti vardır. Eğer komut biti 1 olarak ayarlanmışsa, bit 0 ise çalıştırılması gereken başka bir komuttur, daha sonra komut yoktur. CPU, CPU'nun meşgul olup olmadığını gösteren durumunu gösteren meşgul bir bit içerir. Meşgul bit 1 olarak ayarlanırsa, bazı aygıtların komutlarını çalıştırmakla meşgul, aksi halde 0'dır .

Oy kullanma algoritması

  • Bir aygıt CPU tarafından yürütülecek bazı komutlara sahip olduğunda, sürekli açık olana kadar CPU'nun meşgul bitini kontrol eder (0).
  • Meşgul bit netleştiğinde, aygıt komut kaydında yazma bitini ayarlar ve veri çıkış kaydında bir bayt yazar.
  • Şimdi cihaz (1) komuta hazır biti ayarlar.
  • CPU, aygıtları komut için hazır biti denetlediğinde ve setini (1) bulduğunda, meşgul bitini (1) ayarlar.
  • CPU daha sonra cihazın komut kaydını okur ve cihazın komutunu çalıştırır.
  • Komut yürütme işleminden sonra, CPU komutun hazır bitini, cihazın komutunun başarılı bir şekilde yürütüldüğünü göstermek için cihazın hata bitini temizler ve ayrıca CPU'nun yürütmek için serbest olduğunu belirtmek için meşgul bitini de temizler (0). başka bir cihazın komutu.

OS'de Kesme ve Yoklama Arasındaki Temel Farklılıklar

  1. Ara vermede cihaz servis işlemine ihtiyacı olduğunu CPU'ya bildirir, oylama işleminde ise CPU sürekli olarak bir cihazın servis gerektirip gerekmediğini kontrol eder.
  2. Kesme, CPU'nun, kesmenin gerçekleştiğini bildiren bir tel, kesme isteği satırı olduğu için bir donanım mekanizmasıdır . Öte yandan, Polling, bir cihazın yürütülecek bir şey olup olmadığını bildirmek için kontrol bitlerini kontrol etmeyi sürdüren bir protokoldür .
  3. Interrupt işleyicisi, cihazlar tarafından üretilen kesintileri ele alır. Öte yandan, oylamada CPU gerektiğinde cihaza hizmet eder.
  4. Kesintiler, kesme-istek hattı tarafından bildirilir. Ancak, Komuta hazır biti, cihazın servis gerektirdiğini gösterir.
  5. Kesmelerde, CPU sadece herhangi bir cihaz kesdiğinde bozulur. Diğer taraftan, sorgulamada, CPU her cihazın komuta hazır bitini tekrar tekrar kontrol ederek çok fazla CPU çevrimi boşa harcar.
  6. Herhangi bir zamanda bir kesinti meydana gelebilir, oysa CPU cihazı düzenli aralıklarla sorgulamaya devam eder.
  7. CPU, cihazı sorgulamaya devam ettiğinde ve servis için hazır herhangi bir cihazı nadiren bulduğunda yoklama etkin olmaz. Öte yandan, cihazlar tekrar tekrar CPU işlemine ara vermeye devam ettiğinde kesmeler verimsiz hale geliyor.

Sonuç:

Yoklama ve Kesmeler Hem I / O cihazlarına katılırlar. Ancak yukarıda tartışıldığı gibi belirli koşullarda verimsiz hale gelebilirler.

Top