logo

ISR ve İşlev Çağrısı arasındaki fark

Bu yazıda, arasındaki farkı öğreneceksiniz. ISR Ve işlev çağrısı , ancak farklılıkları tartışmadan önce ISR ve işlev çağrısı hakkında kısaca bilgi sahibi olmanız gerekir.

Ssis eğitimi

ISR nedir?

Kesinti hizmeti rutini (ISR), donanımın bir kesintiye yanıt olarak çağırdığı bir yazılım rutinidir. ISR bir kesmeyi inceler, nasıl ele alınacağını belirler, çalıştırır ve mantıksal bir kesme değeri döndürür. Daha fazla işlem gerekmiyorsa, ISR çekirdeğe bir dönüş değeri bildirir. Cihazın çalışmasının ve tüm düşük öncelikli ISR'lerin çalışmasının yavaşlamasını önlemek için bir ISR'nin çok hızlı çalışması gerekir.

Bir ISR, verileri bir CPU yazmacından veya bir donanım bağlantı noktasından bir bellek arabelleğine taşıyabilmesine rağmen, genellikle gerekli işlemlerin çoğunu gerçekleştirmek için kesme hizmeti iş parçacığı (IST) adı verilen özel bir kesme iş parçacığına (veya görevine) dayanır. Ek işlem gerekiyorsa ISR, çekirdeğe mantıksal bir kesme değeri döndürür. Daha sonra fiziksel bir kesme numarasını mantıksal bir kesme değerine eşler.

Kesinti İşleme Mekanizması

Aşağıda, aşağıdaki adımlarda kesme işleme mekanizması verilmiştir:

  • Kesinti, CPU'nun mevcut programı askıya almasını ve bir ISR yürütmesini sağlayan bir durumdur. ISR, kesintiye neden olan duruma hizmet etmek için özel olarak yazılmış bir programdır.
  • Bir kesintiye hizmet verildikten sonra CPU, tam olarak bir sonraki talimatta kaldığı yerden ana programa geri döner.
  • Kesintiye dayalı veri aktarımında, G/Ç cihazı veri aktarımı için hazır olduğunda CPU'yu keser. ISR'de CPU veri aktarımını gerçekleştirecektir.
  • Bu yöntem yoklamadan daha iyidir çünkü CPU'nun G/Ç cihazının durumunu kontrol etmekle zaman kaybetmesi gerekmez. Klavye, kesintiye dayalı G/Ç erişimine iyi bir örnektir.
  • Klavyenin CPU'yu kontrol etmek yerine bir tuşa basıldığında CPU'yu kesmesi gerekir. Böylece kullanıcı hiç yazmadığı zamanlarda klavyeyi tekrar tekrar kontrol ederek zaman kaybı yaşanmaz.
  • G/Ç cihazı göndererek bir kesinti talep eder. $overline{INTR}$ CPU'ya sinyal.
  • CPU her aldığında $overline{INTR}$ sinyali aldığında, mevcut talimatın yürütülmesini tamamlar ve ardından ISR'yi yürütür. CPU hazır olduğunda, onay sinyalini gönderir. SIRASINDA astar.
  • ISR yürütülür ve CPU ana programa geri döner.
  • G/Ç aygıtları kapatılır $overline{INTR}$ infazdan sonra sinyal.
ISR ve İşlev Çağrısı arasındaki fark

Örneğin: Aşağıdaki örnekte, kesmeye dayalı G/Ç ile G/Ç aktarımı.

  • İşlemci ile veri aktarımı yapmak isteyen bir I/O cihazının işlemciyi kesmesi gerekir.
  • Kesinti, işlemcinin bir Kesinti Hizmeti Rutinini yürütmesini sağlayan bir durumdur.
  • ISR'de işlemci, I/O cihazı ile veri aktarımını gerçekleştirecektir.

Bu örnekte klavye tuşuna basılarak isteğin kesilmesi,

  • İşlemcinin bir tuşa basılıp basılmadığını kontrol etmesi yerine klavye, bir tuşa basıldığında işlemciyi kesintiye uğratır.
  • Klavye sürücüsü yazılımının bir parçası olan klavyenin ISR'sinde işlemci, klavyedeki verileri okuyacaktır.
ISR ve İşlev Çağrısı arasındaki fark

ISR'nin Avantajları

Aşağıda ISR'nin aşağıdaki avantajları verilmiştir:

  • ISR eşzamansız olayları, programın yürütülmesi sırasında herhangi bir zamanda meydana gelebilir.
  • ISR, bilgisayarı, Bayrakları ve kayıtları yığına kaydeder, tüm kesintileri devre dışı bırakır ve ISR'nin adresini yükler.
  • ISR'nin kendisine aktarılabilecek argümanları olamaz.
  • ISR değerleri döndüremez.
  • ISR kesintileri etkinleştirir.
  • Genellikle ISR küçüktür, çünkü başka bir işlemin zamanını alır.
  • Bazı ISR'lerin kendi yığınları vardır.

İşlev Çağrısı Nedir?

Bir işlev çağrısına aynı zamanda alt program çağrısı da denir. Altprogram, programın tekrar tekrar ihtiyaç duyduğu talimatlar dizisidir. Belirli bir görevi yerine getirmekten sorumlu olan daha büyük bir programın parçasıdır. Daha büyük program ağır bir iş yükünü yürütebilir ve alt program yalnızca basit bir görevi gerçekleştiriyor olabilir ve bu da kalan program kodlamasından bağımsızdır.

ilk dizüstü bilgisayar

Bir işlev, birden çok kez ve farklı yerlerden (hatta diğer işlevlerin içinden) çağrılabilecek şekilde kodlanmıştır. Bir fonksiyon çağrıldığında işlemci, fonksiyonun kodunun bulunduğu yere gidebilir ve fonksiyonun talimatlarını tek tek çalıştırabilir. İşlevler tamamlandıktan sonra işlemci kaldığı yerden tam olarak dönecek ve bir sonraki talimattan başlayarak yürütmeye devam edecektir.

İşlevler kodun yeniden kullanımı için harika bir araçtır. Birçok modern programlama dili işlevleri destekler. Fonksiyonların toplamına denir kütüphane . Kütüphaneler genellikle yazılım paylaşımı ve ticareti aracı olarak kullanılır. Bazı durumlarda programın tamamı bir dizi altprogramdan oluşabilir.

8086 işlemci durumunda, bir alt program bir komut tarafından çağrılır. ARAMA talimat ve kontrol geri dönüşleri bir SAĞ talimat. Programın boyutunu azaltır.

ISR ve İşlev Çağrısı arasındaki fark

Bir işlev açıkça çağrılmalı ve onu çağıranla aynı bağlamın ve yürütme iş parçacığının bir parçası olmalıdır. Bir donanım ISR'si açıkça çağrılmaz, bunun yerine bazı harici olaylar tarafından çağrılır. Geçerli iş parçacığının içeriği, bağlamı ISR'ye değiştirmeden önce bir kesme çağrıldığında otomatik olarak korunur.

Buna karşılık, ters bağlam anahtarı meydana gelir ve işlemcinin kesinti öncesindeki durumu geri yüklenir, böylece yürütme kesinti noktasından devam eder. Aşağıda ISR ile işlev çağrısı arasındaki bazı farklar verilmiştir.

ISR İşlev Çağrısı
Kesme genellikle talimatların yürütülmesinden ziyade dahili veya harici bir sinyal mikroişlemcisi tarafından başlatılır. ISR, programın geçerli durumunu yığına kaydettikten sonra yürütülür.
ISR, kesintiye uğrayan cihaza veya programcı tarafından yazılan talimatlara bağlı olarak farklı görevleri gerçekleştirir.
İşlev çağrısı, belirli görevleri gerçekleştiren ve programın boyutunu azaltan talimatların yürütülmesiyle çağrılır.
Donanım ISR'nin adresini belirler.
ISR adresi kesme vektör tablosunun içine yazılır ve her kesmenin ISR adresi sabittir.
Altprogramın adresi, ana program kodunun içine yazılan talimatın içine yazılır.
ISR tüm genel amaçlı görevler için kullanılır. Programa özgü görevler için işlev çağrıları yapılır.
Geçerli bir programın yürütülmesi sırasında bir kesinti meydana geldiğinde, bu nedenle mevcut talimatın yürütülmesinden sonra işlemci ISR'yi yürütür. ISR'nin yürütülmesinden sonra işlemci, programı tam olarak kesinti meydana gelmeden önceki haliyle devam ettirmelidir.
Bunun için PC içeriği, µP kayıtları ve bazı durum koşulları saklanır. Bir mikroişlemcideki tüm durum bit koşullarının toplanmasına PSW (program durum sözcüğü) adı verilir.
  • Kesme döngüsü sırasında PC ve PSW'nin içerikleri yığına aktarılır. Belirli bir kesmenin şube adresi daha sonra PC'ye iletilir ve durum kaydına yeni bir PSW yüklenir.
  • ISR'deki son talimat, kesintiye uğrayan talimattan geri dönüştür. Bu talimat yürütüldüğünde eski PSW ve dönüş adresi yığından çıkarılır.
Burada, ana programdaki bir sonraki talimatın adresini almak için yığında yalnızca bir PC saklanır.
Alt programın çağıran alt programdan gelen verilere erişimi olmalı ve sonuçları bu alt programa döndürmelidir. Bu nedenle alt program parametreleri ve veri bağlantısı yapılır.
Bu aracılığıyla yapılabilir
  • AC kaydı, tek bir giriş parametresi ve tek bir çıkış parametresi için kullanılabilir. Birden fazla işlemci kaydına sahip bilgisayarlarda bu yolla daha fazla parametre iletilebilir.
  • Verileri bir alt programa aktarmanın başka bir yolu da bellektir.