Kesmek - Interrupt

kesme kaynakları ve işlemci kullanımı

In dijital bilgisayarlar , bir kesme ile bir cevaptır işlemci yazılımından ilgilenilmesi gereken bir olaya. Bir kesme koşulu, işlemciyi uyarır ve izin verildiğinde işlemcinin o anda yürütülmekte olan kodu kesmesi için bir istek görevi görür, böylece olay zamanında işlenebilir. İstek kabul edilirse, işlemci mevcut etkinliklerini askıya alarak, durumunu kaydederek ve olayla ilgilenmek için kesme işleyicisi (veya bir kesme hizmeti rutini, ISR) adı verilen bir işlevi yürüterek yanıt verir . Bu kesinti geçicidir ve kesinti önemli bir hata göstermediği sürece, kesme işleyicisi bittikten sonra işlemci normal faaliyetlerine devam eder.

Kesintiler, dikkat gerektiren elektronik veya fiziksel durum değişikliklerini belirtmek için donanım aygıtları tarafından yaygın olarak kullanılır. Kesintiler ayrıca , özellikle gerçek zamanlı bilgi işlemde , bilgisayar çoklu görevini uygulamak için yaygın olarak kullanılır . Kesintileri bu şekilde kullanan sistemlerin kesintiye dayalı olduğu söylenir.

Türler

İşletim sistemi.jpg'de 2 tür kesinti

Donanım veya yazılım olaylarına yanıt olarak kesinti sinyalleri verilebilir . Bunlar sırasıyla donanım kesintileri veya yazılım kesintileri olarak sınıflandırılır . Herhangi bir işlemci için, kesme türlerinin sayısı mimari ile sınırlıdır.

Donanım kesintileri

Bir donanım kesintisi, örneğin bir PC'deki bir kesme isteği (IRQ) hattı gibi harici bir donanım aygıtı tarafından sinyallenebilen veya işlemci mantığına gömülü aygıtlar (örneğin, CPU zamanlayıcısı) tarafından algılanabilen donanımın durumuyla ilgili bir durumdur. IBM System/370'te), aygıtın bakıma ihtiyacı olduğunu işletim sisteminden (OS) veya işletim sistemi yoksa CPU üzerinde çalışan "bare-metal" programından iletmek için. Bu tür harici aygıtlar bilgisayarın bir parçası olabilir (örneğin, disk denetleyicisi ) veya harici çevre birimleri olabilir . Örneğin, bir klavye tuşuna basmak veya bir PS/2 bağlantı noktasına takılı bir fareyi hareket ettirmek , işlemcinin tuş vuruşunu veya fare konumunu okumasına neden olan donanım kesintilerini tetikler.

Donanım kesintileri , işlemci saatine göre eşzamansız olarak ve komut yürütme sırasında herhangi bir zamanda gelebilir . Sonuç olarak, tüm donanım kesme sinyalleri, onları işlemci saatiyle senkronize ederek şartlandırılır ve yalnızca talimat yürütme sınırlarında hareket eder.

Birçok sistemde, her cihaz belirli bir IRQ sinyali ile ilişkilendirilir. Bu, hangi donanım cihazının servis talebinde bulunduğunu hızlı bir şekilde belirlemeyi ve bu cihazın servisini hızlandırmayı mümkün kılar.

Bazı eski sistemlerde, tüm kesmeler aynı konuma gitti ve işletim sistemi, bekleyen en yüksek öncelikli maskelenmemiş kesmeyi belirlemek için özel bir talimat kullandı. Çağdaş sistemlerde, genellikle bir veya daha fazla kesme vektör tablosu olarak uygulanan, her kesme türü veya her kesme kaynağı için ayrı bir kesme rutini vardır .

maskeleme

İşlemciler tipik olarak , donanım kesintilerinin seçici olarak etkinleştirilmesine ve devre dışı bırakılmasına izin veren dahili bir kesinti maskesi kaydına sahiptir. Her kesme sinyali, maske kaydındaki bir bit ile ilişkilendirilir; bazı sistemlerde, bit ayarlandığında kesme etkinleştirilir ve bit temiz olduğunda devre dışı bırakılırken, diğerlerinde ayarlanmış bir bit kesmeyi devre dışı bırakır. Kesinti devre dışı bırakıldığında, ilgili kesinti sinyali işlemci tarafından yok sayılır. Maskeden etkilenen sinyallere maskelenebilir kesintiler denir .

Bazı kesme sinyalleri kesme maskesinden etkilenmez ve bu nedenle devre dışı bırakılamaz; bunlara maskelenemeyen kesintiler (NMI) denir . NMI'ler, bir watchdog zamanlayıcısından gelen zaman aşımı sinyali gibi hiçbir koşulda göz ardı edilemeyecek yüksek öncelikli olayları belirtir .

To maskesi bir kesme iken, bunu devre dışı bırakmaktır maskesini bir kesme bunu sağlamaktır.

Sahte kesintiler

Bir sahte kesme bir kaynak bulunabilir olan bir donanım kesmesidir. "Hayalet kesinti" veya "hayalet kesinti" terimi de bu fenomeni tanımlamak için kullanılabilir. Sahte kesintiler , seviyeye duyarlı bir işlemci girişine bağlı kablolu VEYA kesme devresiyle ilgili bir sorun olma eğilimindedir . Bir sistem hatalı davrandığında bu tür kesintileri belirlemek zor olabilir.

Kablolu VEYA devresinde, kesinti hattının öngerilim direnci yoluyla parazitik kapasitans şarjı/deşarjı, işlemci kesinti kaynağının temizlendiğini algılamadan önce küçük bir gecikmeye neden olacaktır. Araya giren cihaz, kesinti hizmeti rutininde (ISR) çok geç temizlenirse, ISR'nin mevcut örneği sona ermeden önce kesme devresinin hareketsiz duruma dönmesi için yeterli zaman olmayacaktır. Sonuç olarak, kesme isteği girişindeki voltaj, kesin bir dahili mantık 1 veya mantık 0 oluşturmak için yeterince yüksek veya düşük olmayacağından, işlemci başka bir kesmenin beklemede olduğunu düşünecektir. Görünen kesmenin tanımlanabilir bir kaynağı olmayacaktır, bu nedenle " sahte" lakabı.

Sahte bir kesinti, hatalı devre tasarımı, yüksek gürültü seviyeleri, karışma , zamanlama sorunları veya daha nadiren cihaz hatalarından kaynaklanan elektriksel anormalliklerin bir sonucu olabilir .

Sahte bir kesinti, ISR'nin böyle bir kesintinin meydana gelme olasılığını hesaba katmaması durumunda, sistem kilitlenmesine veya diğer tanımsız işlemlere neden olabilir. Sahte kesintiler çoğunlukla kablolu VEYA kesme devrelerinde bir sorun olduğundan, bu tür sistemlerdeki iyi programlama uygulaması, ISR'nin tüm kesme kaynaklarını etkinlik açısından kontrol etmesi ve kaynakların hiçbiri kesintiye uğratmıyorsa (muhtemelen olayı günlüğe kaydetme dışında) herhangi bir işlem yapmamasıdır. .

Yazılım kesintileri

Belirli yönergeler yürütüldüğünde veya belirli koşullar karşılandığında işlemcinin kendisi tarafından bir yazılım kesintisi istenir. Her yazılım kesme sinyali, belirli bir kesme işleyicisi ile ilişkilendirilir.

Bir yazılım kesintisine, tasarım gereği, yürütüldüğünde bir kesmeyi çağıran özel bir talimatın yürütülmesi kasıtlı olarak neden olabilir . Bu tür talimatlar, alt program çağrılarına benzer şekilde çalışır ve işletim sistemi hizmetleri talep etmek ve aygıt sürücüleriyle etkileşim kurmak (örneğin, depolama ortamını okumak veya yazmak için) gibi çeşitli amaçlar için kullanılır .

Yazılım kesintileri, program yürütme hataları tarafından beklenmedik şekilde tetiklenebilir. Bu kesintilere tipik olarak tuzaklar veya istisnalar denir . Örneğin, işlemci, bölen sıfıra eşit bir bölme talimatı yürütürse, bir sıfıra bölme istisnası "atılır" (bir yazılım kesintisi istenir). Tipik olarak, işletim sistemi bu istisnayı yakalar ve işler.

Tetikleme yöntemleri

Her kesme sinyali girişi, bir mantık sinyal seviyesi veya belirli bir sinyal kenarı (seviye geçişi) tarafından tetiklenecek şekilde tasarlanmıştır. Seviyeye duyarlı girişler, girişe belirli bir (yüksek veya düşük) mantık seviyesi uygulandığı sürece sürekli olarak işlemci hizmeti talep eder. Kenara duyarlı girişler, sinyal kenarlarına tepki verir: belirli bir (yükselen veya düşen) kenar, bir hizmet talebinin kilitlenmesine neden olur; kesme işleyicisi yürütüldüğünde işlemci mandalı sıfırlar.

Seviye tetiklemeli

Bir seviyesi tetiklenen kesme kendi özel (yüksek ya da düşük) aktif olarak kesme sinyali tutarak istenen mantık seviyesine . Bir cihaz, sinyali aktif seviyeye getirerek ve bu seviyede tutarak seviye tetiklemeli bir kesmeyi başlatır. Genellikle cihaza servis verildikten sonra, işlemci bunu yapmasını istediğinde sinyali reddeder.

İşlemci, her talimat döngüsü sırasında kesme giriş sinyalini örnekler. Örnekleme gerçekleştiğinde sinyal verilirse, işlemci kesme talebini tanıyacaktır.

Seviye tetiklemeli girişler, birden fazla cihazın kablolu VEYA bağlantıları aracılığıyla ortak bir kesme sinyalini paylaşmasına izin verir. İşlemci, hangi aygıtların hizmet istediğini belirlemek için yoklama yapar. Bir aygıtın servisini yaptıktan sonra, işlemci ISR'den çıkmadan önce tekrar yoklayabilir ve gerekirse diğer cihazlara servis verebilir.

Kenar tetikli

Bir kenar tetiklenen kesme bir tarafından gönderilen bir kesinti olduğunu düzeyde geçiş kesme hattı üzerinde, ya da düşen kenar (düşük yükseğe) veya bir çıkış kenarı (en yüksek yükseğe). Bir kesme sinyali vermek isteyen bir cihaz, hatta bir darbe gönderir ve ardından hattı inaktif durumuna bırakır. Darbe, yoklamalı G/Ç tarafından algılanamayacak kadar kısaysa, onu algılamak için özel donanım gerekebilir.

işlemci yanıtı

İşlemci, her talimat döngüsü sırasında kesme tetikleme sinyalini örnekler ve yalnızca örnekleme gerçekleştiğinde sinyal verilirse tetiğe yanıt verir. Tetikleme yönteminden bağımsız olarak, işlemci, algılanan bir tetikleyicinin ardından bir sonraki talimat sınırında kesinti işlemeye başlar ve böylece aşağıdakileri sağlar:

  • Program sayacı (PC) , bilinen bir yerde saklanır.
  • PC tarafından işaret edilenden önceki tüm talimatlar tam olarak yürütülmüştür.
  • PC tarafından işaret edilenin ötesinde hiçbir talimat yürütülmedi veya bu tür herhangi bir talimat, kesme işlenmeden önce geri alınmadı.
  • PC tarafından işaret edilen talimatın yürütme durumu bilinmektedir.

Sistem uygulaması

Kesintiler, donanımda kontrol hatları ile ayrı bir bileşen olarak uygulanabilir veya bunlar bellek alt sistemine entegre edilebilir.

Donanımda ayrı bir bileşen olarak uygulanırsa, IBM PC'nin Programlanabilir Kesinti Denetleyicisi (PIC) gibi bir kesinti denetleyici devresi, tipik olarak bir veya iki CPU hattına çeşitli kesinti kaynaklarını çoğullamak için kesintiye uğrayan aygıt ile işlemcinin kesinti pimi arasına bağlanabilir. mevcut. Bellek denetleyicisinin bir parçası olarak uygulanırsa , kesintiler sistemin bellek adres alanına eşlenir .

Paylaşılan IRQ'lar

Birden çok cihaz, tasarlandıkları takdirde, kenardan tetiklenen bir kesme hattını paylaşabilir. Kesinti hattının bir aşağı çekme veya yukarı çekme direncine sahip olması gerekir, böylece aktif olarak sürülmediğinde varsayılan durumu olan etkin olmayan durumuna yerleşir. Cihazlar, hattı varsayılan olmayan durumuna kısaca sürerek bir kesme sinyali verir ve bir kesme sinyali vermediğinde hattın yüzmesine izin verir (aktif olarak sürmeyin). Bu tip bağlantıya açık kollektör de denir . Hat daha sonra tüm cihazlar tarafından üretilen tüm darbeleri taşır. (Bu, herhangi bir yolcunun sürücüye durmak istediğini bildirmek için çekebileceği bazı otobüs ve troleylerdeki çekme kablosuna benzer .) Ancak, farklı cihazlardan gelen kesinti darbeleri, yakın zamanda meydana gelirse birleşebilir. Kesintileri kaybetmemek için CPU, darbenin arka kenarında tetiklenmelidir (örneğin, hat yukarı çekilip aşağı sürülürse yükselen kenar). Bir kesinti tespit ettikten sonra CPU, servis gereksinimleri için tüm cihazları kontrol etmelidir.

Kenar tetiklemeli kesmeler, seviye tetiklemeli kesmelerin paylaşımla ilgili sorunları yaşamaz. Düşük öncelikli bir cihazın servisi keyfi olarak ertelenebilirken, yüksek öncelikli cihazlardan gelen kesintiler alınmaya ve servis edilmeye devam edilir. CPU'nun nasıl servis vereceğini bilmediği, sahte kesmelere neden olabilecek bir cihaz varsa, diğer cihazların kesme sinyallerine müdahale etmez. Ancak, kenar tetiklemeli bir kesmenin kaçırılması kolaydır - örneğin, kesintiler bir süre için maskelendiğinde - ve olayı kaydeden bir tür donanım mandalı olmadığı sürece kurtarılması imkansızdır. Bu sorun, ilk bilgisayar donanımında birçok "kilitlenmeye" neden oldu çünkü işlemci bir şey yapmasının beklendiğini bilmiyordu. Daha modern donanımlarda genellikle, kesme isteklerini kilitleyen bir veya daha fazla kesme durumu kaydı bulunur; iyi yazılmış kenar odaklı kesme işleme kodu, hiçbir olayın kaçırılmadığından emin olmak için bu kayıtları kontrol edebilir.

Eski Endüstri Standardı Mimari (ISA) veri yolu, cihazların IRQ hatlarını paylaşabilmesini zorunlu kılmadan uçtan tetiklenen kesmeler kullanır, ancak tüm ana akım ISA anakartları, IRQ hatlarında çekme dirençleri içerir, bu nedenle IRQ hatlarını paylaşan iyi niyetli ISA cihazları sadece iyi çalışmalı. Paralel bağlantı noktası aynı zamanda kenar tetiklenen kesme kullanır. Birçok eski cihaz, IRQ hatlarını özel olarak kullandıklarını varsayar, bu da onları paylaşmayı elektriksel olarak güvenli yapmaz.

"Aynı hattı paylaşan" birden fazla cihazın yükseltilebilmesinin 3 yolu vardır. Birincisi özel iletim (anahtarlama) veya özel bağlantı (pinlere). Sonraki otobüsle (hepsi aynı hatta bağlı dinleme): otobüsteki kartlar ne zaman konuşacaklarını ve konuşmayacaklarını bilmelidir (yani, ISA bus). Konuşma iki şekilde tetiklenebilir: toplama mandalı veya mantık kapıları ile. Mantık kapıları, anahtar sinyaller için izlenen sürekli bir veri akışı bekler. Akümülatörler yalnızca uzak taraf geçidi bir eşiğin ötesinde uyardığında tetiklenir, bu nedenle üzerinde anlaşılan hız gerekmez. Her birinin hıza karşı mesafe avantajları vardır. Bir tetik, genellikle, uyarımın tespit edildiği yöntemdir: yükselen kenar, düşen kenar, eşik ( osiloskop çok çeşitli şekil ve koşulları tetikleyebilir).

Yazılım kesintileri için tetikleme, yazılımda yerleşik olmalıdır (hem işletim sisteminde hem de uygulamada). Bir 'C' uygulamasının başlığında, hem uygulamanın hem de işletim sisteminin bildiği ve uygun şekilde kullandığı, donanımla ilgili olmayan bir tetik tablosu (bir işlev tablosu) vardır. Ancak bunu CPU'ya sinyal veren donanım kesintileri ile karıştırmayın (CPU, yazılımı, yazılım kesintilerine benzer şekilde bir işlev tablosundan çıkarır).

Kesinti hatlarını paylaşma zorluğu

Bir kesme hattını (herhangi bir tetikleme stilinde) paylaşan birden fazla cihazın tümü, birbirine göre sahte kesme kaynakları olarak hareket eder. Bir hatta çok sayıda cihaz olduğunda, servis kesintilerindeki iş yükü, cihaz sayısının karesiyle orantılı olarak büyür. Bu nedenle, cihazları mevcut kesme hatları boyunca eşit olarak dağıtmak tercih edilir. Kesinti hatlarının yetersizliği, kesinti hatlarının farklı fiziksel iletkenler olduğu eski sistem tasarımlarında bir sorundur. Kesinti hattının sanal olduğu mesaj sinyalli kesmeler, yeni sistem mimarilerinde ( PCI Express gibi ) tercih edilir ve bu sorunu önemli ölçüde giderir.

Kötü tasarlanmış bir programlama arayüzüne sahip bazı cihazlar, hizmet talep edip etmediklerini belirlemenin bir yolunu sağlamaz. İstemedikleri zaman servis yapılırsa kilitlenebilirler veya başka şekilde yaramazlık yapabilirler. Bu tür cihazlar, sahte kesintilere tahammül edemez ve dolayısıyla bir kesinti hattının paylaşılmasına da müsamaha gösteremez. ISA kartları, genellikle ucuz tasarım ve yapım nedeniyle bu sorunla ünlüdür. Donanım mantığı ucuzladıkça ve yeni sistem mimarileri paylaşılabilir kesintileri zorunlu kıldığından , bu tür cihazlar çok daha nadir hale geliyor .

hibrit

Bazı sistemler, seviye tetiklemeli ve kenar tetiklemeli sinyalleşmenin bir melezini kullanır. Donanım sadece bir kenar aramakla kalmaz, aynı zamanda kesme sinyalinin belirli bir süre aktif kaldığını da doğrular.

Bir karma kesmenin yaygın bir kullanımı, NMI (maskelenemeyen kesme) girişi içindir. NMI'ler genellikle büyük – hatta felaket niteliğindeki – sistem olaylarını işaret ettiğinden, bu sinyalin iyi bir şekilde uygulanması, kesintinin bir süre boyunca aktif kaldığını doğrulayarak geçerli olmasını sağlamaya çalışır. Bu 2 adımlı yaklaşım, yanlış kesintilerin sistemi etkilemesini önlemeye yardımcı olur.

mesaj sinyalli

Bir mesaj-sinyal kesme fiziksel bir kesme hattı kullanmaz. Bunun yerine, bir cihaz hizmet talebini bazı iletişim ortamları, tipik olarak bir bilgisayar veri yolu üzerinden kısa bir mesaj göndererek bildirir . İleti, kesintiler için ayrılmış bir türde olabilir veya bellekte yazma gibi önceden var olan bir türde olabilir.

İleti sinyalli kesmeler, kesmenin sürekli bir durumdan ziyade anlık bir sinyal olması bakımından, kenardan tetiklenen kesmelere çok benzer. Kesinti işleme yazılımı, ikisine de aynı şekilde davranır. Tipik olarak, aynı mesaja sahip (aynı sanal kesme hattı) birden çok bekleyen mesaj sinyalli kesmenin birleştirilmesine izin verilir, tıpkı yakın aralıklı kenar tetiklemeli kesmelerin birleşebileceği gibi.

Mesaj sinyalli kesme vektörleri , temeldeki iletişim ortamının paylaşılabileceği ölçüde paylaşılabilir. Ek çaba gerekmez.

Kesintinin kimliği, ayrı bir fiziksel iletken gerektirmeyen bir veri biti modeli ile gösterildiğinden, daha birçok farklı kesinti verimli bir şekilde işlenebilir. Bu, paylaşım ihtiyacını azaltır. Kesinti mesajları, herhangi bir ek hat gerektirmeden bir seri veri yolu üzerinden de iletilebilir.

Bir seri bilgisayar veri yolu olan PCI Express , yalnızca mesaj sinyalli kesmeleri kullanır .

Kapı zili

Bilgisayar sistemlerine uygulanan bir basma düğmesi benzetmesinde , kapı zili veya kapı zili kesintisi terimi genellikle bir yazılım sisteminin bir bilgisayar donanım cihazına yapılması gereken bir iş olduğunu bildirdiği veya bildirdiği bir mekanizmayı tanımlamak için kullanılır . Tipik olarak, yazılım sistemi verileri bazı iyi bilinen ve karşılıklı olarak üzerinde anlaşmaya varılan bellek konumlarına yerleştirecek ve farklı bir bellek konumuna yazarak "kapı zilini çalacaktır". Bu farklı bellek konumuna genellikle kapı zili bölgesi denir ve bu bölgede farklı amaçlara hizmet eden birden fazla kapı zili bile olabilir. Belleğin kapı zili bölgesine "zili çalan" ve donanım cihazına verilerin hazır ve beklemede olduğunu bildiren bu yazma eylemidir. Donanım aygıtı artık verilerin geçerli olduğunu ve buna göre hareket edilebileceğini bilecektir. Genellikle verileri bir sabit disk sürücüsüne yazar veya bir üzerinden gönderir veya şifreler , vb.

Terimi kesme kapı zili genellikle olduğu yanlış isim . Bir kesmeye benzer, çünkü cihaz tarafından bazı işlerin yapılmasına neden olur; bununla birlikte, kapı zili bölgesi bazen bir yoklamalı bölge olarak uygulanır , bazen kapı zili bölgesi fiziksel cihaz kayıtlarına yazar ve bazen kapı zili bölgesi doğrudan fiziksel cihaz kayıtlarına bağlanır . Fiziksel aygıt kayıtlarına doğrudan veya doğrudan yazarken, bu , varsa aygıtın merkezi işlemci biriminde ( CPU ) gerçek bir kesintinin oluşmasına neden olabilir .

Kapı zili kesmeleri, bazı benzerlikleri olduğu için Message Signaled Interrupts ile karşılaştırılabilir .

Çok işlemcili IPI

Çok işlemcili sistemlerde, bir işlemci, işlemciler arası kesintiler (IPI) aracılığıyla başka bir işlemciye kesme isteği gönderebilir .

Verim

Kesintiler , düşük yükte düşük ek yük ve iyi gecikme sağlar , ancak birkaç patolojiyi önlemek için özen gösterilmedikçe, yüksek kesme hızında önemli ölçüde bozulur. Kesintileri işlemek için harcanan aşırı miktarda işlem süresi nedeniyle genel sistem performansının ciddi şekilde engellendiği olguya kesinti fırtınası denir .

Çeşitli canlı kilit biçimleri vardır , sistem tüm zamanını işleme kesintilerini diğer gerekli görevleri hariç tutmak için harcadığında. Aşırı koşullar altında, çok sayıda kesinti (çok yüksek ağ trafiği gibi) sistemi tamamen durdurabilir. Bu tür sorunlardan kaçınmak için, bir işletim sistemi , işlem yürütmeyi planladığı kadar dikkatli bir şekilde ağ kesintisi işlemeyi de planlamalıdır.

Çok çekirdekli işlemcilerle, çok sıralı NIC'ler kullanıldığında alma tarafı ölçekleme (RSS) yoluyla kesme işlemede ek performans iyileştirmeleri elde edilebilir . Bu tür NIC'ler , ayrı kesintilerle ilişkili çoklu alma kuyruğu sağlar ; bu kesintilerin her birini farklı çekirdeklere yönlendirerek, tek bir NIC tarafından alınan ağ trafiği tarafından tetiklenen kesme isteklerinin işlenmesi birden çok çekirdek arasında dağıtılabilir. Kesintilerin çekirdekler arasında dağıtımı işletim sistemi tarafından otomatik olarak gerçekleştirilebilir veya kesintilerin yönlendirilmesi (genellikle IRQ yakınlığı olarak adlandırılır ) manuel olarak yapılandırılabilir.

Alma paketi yönlendirmesi (RPS) olarak bilinen alıcı trafik dağıtımının tamamen yazılım tabanlı bir uygulaması, alınan trafiği kesme işleyici işlevinin bir parçası olarak veri yolunda daha sonra çekirdekler arasında dağıtır . RPS'nin RSS'ye göre avantajları, belirli bir donanım için hiçbir gereklilik, daha gelişmiş trafik dağıtım filtreleri ve bir NIC tarafından üretilen daha düşük kesinti oranı içerir. Bir dezavantajı olarak, RPS, işlemciler arası kesintilerin (IPI'ler) oranını artırır . Alma akışı yönlendirmesi (RFS), uygulama konumunu hesaba katarak yazılım tabanlı yaklaşımı daha da ileri götürür ; daha fazla performans iyileştirmesi, belirli ağ paketlerinin hedeflenen uygulama tarafından tüketileceği aynı çekirdekler tarafından işlenerek kesme isteklerinin işlenmesiyle elde edilir.

Tipik kullanımlar

Kesintiler genellikle donanım zamanlayıcılarına hizmet vermek, depolamaya ve depolamadan veri aktarmak (örneğin, disk G/Ç) ve iletişim arayüzleri (örneğin, UART , Ethernet ), klavye ve fare olaylarını işlemek ve zamana duyarlı diğer olaylara yanıt vermek için kullanılır. Başvuru sisteminin gerektirdiği şekilde. Maskelenemeyen kesintiler, genellikle bekçi uygulaması zaman aşımları, güç kapatma sinyalleri ve tuzaklar gibi yüksek öncelikli isteklere yanıt vermek için kullanılır .

Donanım zamanlayıcıları genellikle periyodik kesintiler oluşturmak için kullanılır. Bazı uygulamalarda, bu tür kesintiler, mutlak veya geçen süreyi takip etmek için kesme işleyicisi tarafından sayılır veya işletim sistemi görev zamanlayıcısı tarafından çalışan işlemlerin yürütülmesini yönetmek için kullanılır veya her ikisi birden. Periyodik kesintiler ayrıca analogdan dijitale dönüştürücüler , artımlı kodlayıcı arabirimleri ve GPIO girişleri gibi giriş cihazlarından örnekleme başlatmak ve dijitalden analoga dönüştürücüler , motor kontrolörleri ve GPIO çıkışları gibi çıkış cihazlarını programlamak için yaygın olarak kullanılır .

Bir disk kesintisi, disk çevre biriminden veya çevre birimine veri aktarımının tamamlandığını bildirir; bu, okumayı veya yazmayı bekleyen bir işlemin çalışmasına neden olabilir. Kapanma kesintisi, yakın güç kaybını öngörür ve bilgisayarın, bunu yapmak için hala yeterli güç varken düzenli bir şekilde kapanmasını sağlar. Klavye kesmeleri, tipik olarak, typeahead uygulamak için tuş vuruşlarının arabelleğe alınmasına neden olur .

Kesintiler bazen bir ürün ailesindeki bazı bilgisayarlarda uygulanmayan talimatları taklit etmek için kullanılır. Örneğin, kayan nokta talimatları bazı sistemlerde donanımda uygulanabilir ve daha düşük maliyetli sistemlerde taklit edilebilir. İkinci durumda, uygulanmamış bir kayan nokta talimatının yürütülmesi, bir "geçersiz talimat" istisna kesintisine neden olacaktır. Kesme işleyicisi, yazılımda kayan nokta işlevini uygulayacak ve ardından donanım tarafından uygulanan talimat yürütülmüş gibi kesilen programa geri dönecektir. Bu, tüm hat boyunca uygulama yazılımı taşınabilirliği sağlar.

Kesintiler sinyallere benzer , fark, sinyallerin işlemler arası iletişim (IPC) için kullanılması , çekirdek tarafından aracılık edilmesi (muhtemelen sistem çağrıları aracılığıyla) ve işlemler tarafından işlenmesi, kesintilere işlemci tarafından aracılık edilmesi ve çekirdek tarafından işlenmesidir . Çekirdek (tipik örnekler buna neden işlemi için bir sinyal olarak bir kesme geçebilir SIGSEGV , SIGBUS , SIGILL ve SIGFPE ).

Tarih

Donanım kesintileri, yoklama döngülerinde harici olayları bekleyen verimsiz bekleme süresini ortadan kaldıran bir optimizasyon olarak tanıtıldı . Bu yaklaşımı kullanan ilk sistem , 1954'te tamamlanan DYSEAC'dı , ancak daha önceki sistemler hata tuzağı işlevleri sağlıyordu.

UNIVAC 1103 bilgisayar genellikle üzerinde, başlarında 1953 yılında kesmeleri en erken kullanımı ile yatırılmaktadır UNIVAC I (1951) "Aritmetik taşma ya programcının seçimine bağlı olarak, 0 adresinde uygulamaya aktarılmasının iki talimat düzeltme-up rutin tetikledi veya , bilgisayarın durmasına neden oldu." IBM, 650 (1954 tarihli) kesme maskeleme ilk geçtiği dahil. Standartlar Ulusal Bürosu DYSEAC (1954) I / O için kesmeleri kullanan ilk oldu. IBM 704 için kesmeleri kullanan ilk oldu ayıklama bir dallanma komutu ile karşılaşıldı zaman özel bir rutin uygulayarak herhangi bir "aktarma tuzağı" ile. MIT Lincoln Laboratuvarı TX-2 sistemi (1957), çoklu öncelik kesintileri sağlayan ilk sistemdi.

Ayrıca bakınız

Notlar

Referanslar

Dış bağlantılar