Kəsmə və İstisna Arasındakı Fərq

Kəsmə və İstisna Arasındakı Fərq
Kəsmə və İstisna Arasındakı Fərq

Video: Kəsmə və İstisna Arasındakı Fərq

Video: Kəsmə və İstisna Arasındakı Fərq
Video: Sel və daşqın fəsadları ilə bağlı müşavirə keçirildi 2024, Iyul
Anonim

Kəsmə və İstisna

Hər hansı bir kompüterdə proqramın normal icrası zamanı CPU-nun müvəqqəti dayanmasına səbəb ola biləcək hadisələr baş verə bilər. Bu kimi hadisələr kəsilmə adlanır. Fasilələrə proqram təminatı və ya hardware xətaları səbəb ola bilər. Aparat fasilələri (sadəcə) Kesintilər adlanır, proqram təminatının kəsilməsi isə İstisnalar adlanır. Kesinti (proqram və ya aparat) qaldırıldıqdan sonra idarəetmə kəsilmə ilə yaranan şərtləri idarə edə bilən ISR (Kəsmə Xidməti Rejimi) adlı xüsusi alt proqrama ötürülür.

Kəsmək nədir?

Kəsmə termini adətən aparat fasilələri üçün qorunur. Onlar xarici aparat hadisələri nəticəsində yaranan proqram nəzarətinin kəsilməsidir. Burada CPU-dan kənar xarici vasitələr. Aparat fasilələri adətən taymer çipi, periferik qurğular (klaviatura, siçan və s.), Giriş/çıxış portları (seriyalı, paralel və s.), disk sürücüləri, CMOS saatı, genişləndirmə kartları (səs kartı, video) kimi bir çox müxtəlif mənbələrdən gəlir. kart və s.). Bu o deməkdir ki, icraçı proqramla bağlı bəzi hadisələrə görə hardware fasilələri demək olar ki, heç vaxt baş vermir. Məsələn, istifadəçinin klaviaturada düyməyə basması və ya daxili aparat taymerinin vaxt aşımı kimi bir hadisə bu cür fasiləni artıra bilər və CPU-ya müəyyən bir cihazın müəyyən diqqətə ehtiyacı olduğunu bildirə bilər. Belə bir vəziyyətdə CPU etdiyi hər şeyi dayandıracaq (yəni cari proqramı dayandıracaq), cihaz tərəfindən tələb olunan xidməti təmin edəcək və normal proqrama qayıdacaq. Avadanlıqda fasilələr baş verdikdə və CPU ISR-ni işə saldıqda, digər aparat fasilələri deaktiv edilir (məsələn, 80×86 maşınlarda). Əgər sizə ISR işləyərkən başqa aparat fasilələrinin baş verməsi lazımdırsa, bunu kəsilmə bayrağını silməklə (sti göstərişi ilə) aydın şəkildə etməlisiniz.80×86 maşınlarında kəsmə bayrağının silinməsi yalnız aparat fasilələrinə təsir edəcək.

İstisnalar nədir?

İstisna proqramın kəsilməsidir və onu xüsusi işləyici qaydası kimi müəyyən etmək olar. İstisna avtomatik baş verən tələ kimi müəyyən edilə bilər (Tələ proqramçı tərəfindən başlanan nəzarətin ötürülməsi kimi müəyyən edilə bilər). Ümumiyyətlə, istisnalarla əlaqəli heç bir xüsusi təlimat yoxdur (tələlər xüsusi təlimatdan istifadə etməklə yaradılır). Deməli, proqramın icrası zamanı baş verən “müstəsna” vəziyyətə görə istisna baş verir. Məsələn, sıfıra bölmək, qeyri-qanuni əməliyyat kodunun icrası və ya yaddaşla bağlı nasazlıq istisnalara səbəb ola bilər. Hər hansı bir istisna qaldırıldıqda, CPU icra etdiyi proqramı müvəqqəti olaraq dayandırır və ISR-i işə salır. ISR istisna ilə nə edəcəyini ehtiva edir. O, problemi düzəldə bilər və ya mümkün deyilsə, uyğun bir səhv mesajı çap edərək proqramı zərif şəkildə dayandıra bilər. Müəyyən bir göstəriş istisnaya səbəb olmasa da, istisna həmişə göstərişə səbəb olacaqdır. Məsələn, sıfır xəta ilə bölmə yalnız bölmə təlimatının icrası zamanı baş verə bilər.

Kəsmə və İstisna arasında nə fərq var?

Kəsiklər aparat təminatının kəsilməsidir, istisnalar isə proqram təminatının kəsilməsidir. Avadanlıq kəsmələrinin baş verməsi adətən digər avadanlıq kəsmələrini söndürür, lakin bu, istisnalar üçün doğru deyil. İstisna təqdim olunana qədər aparat fasilələrinə icazə verməməlisinizsə, kəsilmə bayrağını açıq şəkildə silməlisiniz. Və adətən kompüterdəki kəsmə bayrağı istisnalardan fərqli olaraq (hardware) kəsmələrə təsir göstərir. Bu o deməkdir ki, bu bayrağın təmizlənməsi istisnaların qarşısını almayacaq.

Tövsiyə: