Menyu
Pulsuz
Qeydiyyat
Ev  /  Qadın problemləri/ Kesinti növlərini kəsir. Aparat və proqram təminatında fasilələr

Kesintilər kəsilmə növləridir. Aparat və proqram təminatında fasilələr

PC arxitekturasında əsas giriş/çıxış sistemi (BIOS) xüsusi yer tutur. O, bir tərəfdən aparatın tərkib hissəsi kimi qəbul oluna bilər, digər tərəfdən bu sistem ƏS-nin proqram modullarından biridir.

BSVV-nin mühüm funksiyalarından biri sistem çağırışlarına və ya fasilələrə xidmət göstərməkdir. Sistem zəngləri müxtəlif əməliyyatları yerinə yetirmək üçün proqram və ya aparat tərəfindən yaradılır. Kesinti mexanizmi sistem çağırışlarını həyata keçirmək üçün istifadə olunur. Bu mexanizmin mahiyyəti ondan ibarətdir ki, maşının cari işləməsi, nə olursa olsun, dayandırıla bilər. qısa müddət dərhal emal tələb edən vəziyyətin baş verdiyini göstərən siqnallardan biri

Zamanla qaytarılan dəyər də tam dəyişənə kopyalanır. Sistem çağırışı yerinə yetirilməzsə, tarix dəyəri alacaq. Təqvim tənzimləmə məqsədləri üçün müntəzəm olaraq baş verən vaxt sıçrayışları sistem vaxtında əks olunmur.

Fərz edək ki, 1-ci proqram tərtib edildikdə yaradılan icra edilə bilən fayl həyəcan siqnalı adlanır və o, buradan çağırılır. komanda xətti aşağıdakı kimi. Bundan sonra siqnalizasiya sistemi 10 saniyədən sonra real vaxt siqnalı tələb etmək üçün çağırılır. Fasilə sistemi çağırışı çağırılır, hansısa siqnal alana qədər prosesin icrasını bloklayır.

kəsmək - bu, hansısa hadisəni idarə etmək üçün cari əmrin və ya cari əmrlər ardıcıllığının icrasını dayandırmaqdır xüsusi proqram - müdaxilə işləyicisi, ardınca kəsilmiş proqramın icrasına qayıdış.

Hadisə proqramın icrası zamanı yaranan xüsusi vəziyyət və ya xarici qurğunun siqnalı ilə yarana bilər. Proqramın icrası və xarici qurğularla qarşılıqlı əlaqə zamanı yaranan xüsusi vəziyyətlərə tez reaksiya vermək üçün fasilədən istifadə olunur.

Proseslə əlaqəli icra müddəti

Sonra yekun məzmundan ilkin məzmun çıxılmaqla fərq nəticə dəyişənində saxlanılır. Nəhayət, arxada və arxada gələn dəyişənlərin məzmunu aşağıdakı mesajlarda göstərilir. Cavab müddəti = 10. Sistemin çağırış vaxtı onu yerinə yetirərkən prosesin istifadə etdiyi vaxtı öyrənməyə imkan verir.

Bütün vaxtların hesablanması sistem prosesləri tərəfindən istifadəçi proseslərinə ayrılan vaxtı nəzərə almır. Zamanlama uğurlu olarsa, nəticə ixtiyari keçmişdən keçən faktiki vaxtı saxlamaq olacaq. Bu an sistemin işə başladığı və bir zəngdən digərinə dəyişmədiyi an ola bilər. Vaxt yerinə yetirilmədikdə, nəticə dəyəri ehtiva edəcəkdir.

Kəsilən zaman OS saxlayır prosessor vəziyyəti - dəyərləri və mənasını qeyd edin proqram sayğacı (PC)– kəsilmiş komandanın ünvanları . ƏS-də kəsmə işləyicisi obyekt kodu seqmentinin məzmunundan hansı növ fasilənin baş verdiyini və onu idarə etmək üçün hansı tədbirlərin görülməli olduğunu müəyyən edir. Mümkün kəsmə növləri arasında müxtəlif səhvləri qeyd etməklə yanaşı, həmçinin var taymer müdaxilə edir– üçün nəzərdə tutulmuş müəyyən bir zaman dilimindən sonra dövri fasilələr cihaz sorğusu– əməliyyat sisteminin bütün portların və zaman keçdikcə dəyişə bilən xarici cihazların vəziyyətini vaxtaşırı yoxlamaq üçün tədbirləri: məsələn, USB portuna bir flash sürücü qoşulmuşdur; printer çapı bitirdi və pulsuz oldu və s. ƏS sistemin yenidən konfiqurasiyasını həyata keçirir və cihaz haqqında məlumat saxlayan sistem cədvəllərini tənzimləyir

Fərz edək ki, 2-ci proqram tərtib edildikdə yaradılan icra olunan fayl vaxt adlanır və o, aşağıdakı kimi əmr sətrindən çağırılır. Döngə başa çatdıqda, sistem çağırış vaxtı yenidən çağırılır. Nəhayət, mesaj ekranda göstərilir.

Kəsmə meneceri asinxron hadisələrlə işləmək üçün məsuliyyət daşıyır. Bu hadisələrin əksəriyyəti periferik cihazlardan qaynaqlanır. Başqaları yaradılır " xarici dünya", məsələn, istifadəçi fasiləyə səbəb olan açarı sıxır. Kesinti prioritet əsasında cari kodun icrasının dayandırılmasına səbəb olan asinxron hadisədir.



Kəsmə mexanizmi müvafiq kompüter avadanlıqları və proqram təminatı ilə təmin edilir.

Kəsilə səbəb olan hər hansı istisna kəsilmə sorğusu (IR) adlanan siqnalla müşayiət olunur. Xarici qurğulardan kəsilmə sorğuları xüsusi xətlər vasitəsilə prosessora daxil olur, proqramın icrası zamanı yaranan sorğular isə birbaşa mikroprosessorun daxilindən gəlir. Hər iki növ kəsintilərin idarə edilməsi mexanizmləri oxşardır. Əsasən aparat fasilələrinin işlənməsinə əsaslanaraq, kəsilmə tələbi siqnalı görünən zaman kompüterin işləməsini nəzərdən keçirək (şək. 13).

Bu funksionallıq əməliyyat sistemləri tərəfindən real vaxt rejimində tapşırıqlar konsepsiyasını təmsil etmək üçün istifadə olunur. Avadanlığın köməyi olmadan, cari icra xəttini daimi olaraq itirmədən birdən çox icra kontekstini dəyişməyə imkan verən həqiqi proaktiv sistemə sahib olmaq mümkün deyil.

Kesintilər ya avadanlığın özündən, ya da ondan baş verə bilər proqram təminatı. Prosessor kəsmə xidməti rejimlərində yaddaş ünvanlarını ehtiva edən dolayı cədvəl sayəsində bu rejimləri haradan tapacağını bilir.

  • Dinamik fasilənin yenidən prioritetləşdirilməsi.
  • Prioritet dəyərlərin və obyektlərin qruplaşdırılması.
Prosessor fasilə baş verdikdə konteksti avtomatik saxlayır və kəsilmə baş verdikdə bu vəziyyətə qayıdır.

düyü. 13. Kompüterdə fasilənin yerinə yetirilməsi:

tр - fasilə sorğusuna prosessorun cavab müddəti;

tс - kəsilmiş proqramın vəziyyətini saxlamaq və kəsmə işləyicisini çağırmaq vaxtı;

tв - kəsilmiş proqramın bərpa müddəti.

Kəsinti sorğusu siqnalı göründükdən sonra kompüter proqramı - kəsmə işləyicisini icra etməyə davam edir. İşləyici, yaranmış müstəsna vəziyyətlə əlaqədar zəruri olan hərəkətləri yerinə yetirir. Məsələn, belə bir vəziyyət kompüter klaviaturasında bir düyməyə basmaq ola bilər. Sonra işləyici basılan düymənin kodunu klaviatura nəzarətçisindən prosessora ötürməli və ola bilsin ki, bu kodu təhlil etməlidir. İşləyici işini başa vurduqda idarəetmə kəsilmiş proqrama keçir.

Bu cədvəli Cədvəldəki istinad kitabçasında tapa bilərsiniz. Şəkil 3, sözügedən cədvəlin kəsilmə haqqında məlumat verən bir hissəsini göstərir. Mikrokontroller yaddaşına ünvan.

  • Kəsmə vektorunda mövqe.
  • Kəsmə prioriteti.
  • Prioritet növü.
  • Adını kəsin.
  • Kəsilin qısa təsviri.
Şəkil 5 vektor cədvəlinin yaddaşda necə təşkil edildiyini göstərir. Bu cədvəlin ikinci girişindən biz bütün istisnaları və kəsmə işləyicisini tapa bilərik.

Prioritet kəsmə səviyyələri

Bununla belə, bu xətlərdən yalnız 7-də onlarla əlaqəli müstəqil kəsmə var. Kesinti prioriteti iki şeyi müəyyən etməyə imkan verir. Tərtibatçılar daha çox çevikliyə malikdirlər. Bu rəqəm nə qədər az olsa, prioritet bir o qədər yüksəkdir. Eyni anda iki fasilə verilirsə, birincisi üstünlük təşkil edəcək. Əgər prosessor artıq fasilələr və daha yüksək prioritet kəsilmələr alırsa, cari kəsilmənin icrası dayandırılır və idarəetmə ən yüksək prioritetli kəsməyə keçir. Yüksək prioritetli kəsilmənin icrası tamamlandıqda, daha yüksək prioritetli kəsilmə baş vermədiyi təqdirdə icra əvvəlki kəsməyə qayıdır.

Reaksiya vaxtı- bu kəsmə tələbi siqnalının görünməsi ilə kəsmə proqramının (kesinti işləyicisi) icrasına başlaması arasındakı vaxtdır, əgər bu kəsmə xidmət üçün aktivdirsə.

Cavab müddəti prosessorun kəsmə sorğusunun baş verdiyini müəyyən etdiyi andan asılıdır. Kəsmə sorğularının sorğusu ya əmrin növbəti mərhələsi başa çatdıqdan sonra (məsələn, əmrin oxunması, birinci operandın oxunması və s.), ya da proqramda hər bir əmr yerinə yetirildikdən sonra həyata keçirilə bilər.

Şəkil 9-da müxtəlif prioritetlərin kəsilmə nümunəsi göstərilir. Bu kəsilməyə nəzarət prosesi "iç-içə" adlanır. Şəkil İçəri müdaxilələr. Bu yazıda fasilələrlə məşğul olmağın xüsusiyyətləri və kəsilmələr və mövzular arasında resursları bölüşdürməyin üç yolu haqqında danışacağıq. Nüvənin qalan hissəsindən fərqli olaraq, kəsmə konteksti atomik 2-dir, yəni onun kodu yüksək prioritet prosessorda xüsusi rejimdə işləyir, burada heç bir proseslər, mövzular və planlaşdırıcı 3 yoxdur, buna görə də fasilələr heç vaxt 4-ü yata bilməz və ya qala bilməz. uzun müddət gözləmək.

Kesintiləri üç qrupa bölmək olar: hardware, məntiqi və proqram təminatı.

Mənbələr hardware fasilələri – təchizatı gərginliyinin azalması, klaviaturada düymənin basılması, vaxt sayğacından növbəti impulsun gəlməsi, xüsusi siqnallar disketdən və ya sərt disklərdən və s.

Məntiqi və ya prosessor müdaxilə edirəsas mikroprosessorun işində müxtəlif qeyri-standart vəziyyətlərdə yaranır - sıfıra bölmə, registr daşması, "qırılma nöqtəsinin" görünüşü və s.

Onlar, bəzən aşağı gecikmə və qısa müddətlə aparat və proqram təminatından gələn sorğulara xidmət etmək üçün mövcuddur. Kesinti, addım prosesi işləmədiyi üçün qeyri-müəyyən davranışa səbəb olmaq riski altında olan heç bir funksiyanı çağıra bilməz, kəsilmələr kilidləri gözləyə bilməz, əks halda bu, 5-ci kilidə səbəb olacaq, çünki bu kontekstdə kəsmə prosessordan çıxarıla bilməz prosessor heç vaxt kəsilmənin asılmasına səbəb olan kilidi olan bir ipi icra edə bilməyəcək. Buna görə də hər hansı bir funksiyanı belə çağırmağa icazə verilmir.

Proqram təminatı kəsilir- ən geniş kateqoriya. Onlar bir proqram digər proqramdan müəyyən bir xidmət almaq istədikdə istehsal olunur və bu xidmət adətən aparatın işləməsi ilə əlaqələndirilir.

Hər kəsin unikal nömrəsi var və yaranmış vəziyyətə xidmət etmək üçün nəzərdə tutulmuş xüsusi alt proqramla əlaqələndirilə bilər. Xidmət alt proqramının özü, ümumiyyətlə, başqa bir fasilə ilə də dayandırıla bilər; lakin çox vaxt müəyyən fasiləyə xidmət göstərən alt proqramın işləməsi zamanı digər fasilələr “maskalanır”, yəni onlara dərhal xidmət göstərilmir, lakin növbəyə qoyulur.

Kesintiləri söndürən bu mexanizm vacibdir, çünki kəsmə kodu gözləyə bilmədiyi üçün, bloklama aktiv olduqda, bu, ümumiyyətlə baş verməməlidir. ictimai çıxış. Bu üsul bütün sistem fasilələrinin icrasını gecikdirir, sistemin gecikməsini artırır və buna görə də kilidin saxlanma müddəti minimumda saxlanılmalıdır. Sonra, mövzular və kəsilmələr arasında paylaşılan yaddaş yalnız bir dəyişəndirsə, faylda müəyyən edilmiş atomik funksiyalar ailəsindən istifadə edə bilərsiniz.

Bu funksiyalar atomik kontekstdə işləmək üçün təhlükəsizdir, bu dəyişənləri paylaşarkən hər hansı bir yarış problemindən qaçın. Nəhayət, bu məqalədə təqdim olunan son paylaşılan yaddaş seçimi məlumat axını paylaşmaqdır.

Maşının aparat komponentlərində, DOS-un özündə və tətbiqi proqramlarda xidmət göstərilməli olan fasilələr yaradıla bilər. BSVV aşağı səviyyəli fasilələrə - aparat komponentlərinə birbaşa nəzarət tələb edənlərə xidmət etmək vəzifəsi ilə həvalə edilmişdir. Bu kəsilmələr 0-dan 31-ə qədər nömrələnir (hex rəqəmləri 0 - 1F). Digər kəsmələr - rəqəmlər 32 - 63 (hex nömrələri 20 - 3F) - daha yüksək səviyyəyə aiddir və onların saxlanması digər ƏS modullarına təyin olunur.

Xatırlamağa dəyər ki, 6 talisman fasilələrdə tapılır və bu məqalədə təqdim olunan bütün qaydalar onlara da aiddir. Təxirə salınmış emal həyata keçirmək üçün faydalıdır. Klaviatura çox sadə daxiletmə qurğusudur: sadəcə ona görə ki, o, çox yavaş-yavaş kiçik həcmdə məlumat yaradır. Düyməni basdığınız və ya buraxdığınız zaman, bu hadisənin dəyəri işə salınmaq üçün klaviatura kabelindən istifadə edilməklə bildirilir hardware kəsilməsi.

Əməliyyat sisteminin işi bu fasilələrə qarşı xəbərdar olmaqdır. Kəsmə idarəedicisinin əslində etdiyi şey yaddaşın altındakı sistem sahəsindəki açarı qiymətləndirməkdir. Disklər və ya şəbəkə kartları kimi daha mürəkkəb daxiletmə qurğuları oxşar şəkildə işləyir. Yuxarıda, disk sorğusunun tamamlandığını bildirmək üçün avtobusdan istifadə edən bir disk nəzarətçisinin işini etdik. Disk əslində fasiləyə səbəb olur. Disk kəsilməsi işləyicisi daha sonra sorğu verən proqram tərəfindən sonradan istifadə etmək üçün alınan məlumatları yaddaşa köçürür.

Cədvəldə 3 verilmişdir ümumi siyahı BSVV tərəfindən xidmət edilən fasilələr. Real assembler dili proqramlarında və texniki ƏS ədəbiyyatında kəsilmələr onaltılıq kodlarla müəyyən edilir. Cədvəlin təhlilindən. 3-dən görünür ki, BSVM tərəfindən xidmət edilən kəsilmələr xarici cihazların - displey, klaviatura, float sürücü, printer, rabitə kanallarını idarə etmək üçün əsas əməliyyatlara uyğundur. Bu zaman BSVM-ə daxil olan alt proqramlar aşağı səviyyəli əməliyyatları yerinə yetirir. Məsələn, disket sürücüsünə xidmət göstərilməsi ilkin olaraq maqnit başlıqları quraşdırmaq, cihazın cari vəziyyətini yoxlamaq, müəyyən edilmiş disk sektorlarını birbaşa oxumaq və yazmaq, oxunmuş və ya yazılmış məlumatları yoxlamaq və nəhayət, diskləri formatlaşdırmaq (ilkin yerləşdirmə) imkanlarını əhatə edir.

Hər kəsmə növü prioritet səviyyə ilə əlaqələndirilir. Daha aşağı prioritetli kəsmələr daha yüksək prioritet kəsmələrə üstünlük verməlidir. Yükləmə zamanı əməliyyat sistemi hər bir aparat cihazı tərəfindən hansı nömrəli kəsmələrin istifadə ediləcəyini bilməlidir ki, siz hər biri ilə müvafiq meneceri əlaqələndirə bilərsiniz.

Biz həmçinin kəsilmənin nə olduğunu və ondan necə istifadə etməyin yaxşı olduğunu izah edəcəyik. Əgər kəsilmənin nə olduğunu və nəyin yaxşı olduğunu bilirsinizsə, növbəti hissəyə keçə bilərsiniz. Hər bir prosessor fərdi təlimatları oxumaqla və sonra onları emal etməklə işləyir. Bu yükləmə sinxrondur, yəni təlimatlar yaddaşda saxlandıqları ardıcıllıqla işlənir.

Cədvəl 3. BSVV tərəfindən xidmət edilən fasilələr

Onluq ədəd Hexadecimal ədəd
Sıfıra bölmə
Mikroprosessorun addım rejiminə keçirilməsi
Təchizat gərginliyinin azalması
Komanda ardıcıllığında kəsilmə nöqtəsinin görünməsi
Arifmetik vahid registrinin daşması
Ekranın qrafik surətinin çapı
Qorunur
Qorunur
Vaxt sayğacından siqnal - taymer
Klaviaturada bir düyməyə basmaqla siqnal
A Qorunur
Onluq ədəd Hexadecimal ədəd Xidmət edilən vəziyyət və ya yerinə yetirilən funksiya
IN Qorunur
İLƏ Qorunur
D Qorunur
E NMD ilə mübadilə bitməsi haqqında siqnal
F Printer xidməti üçün qorunur
Ekrana nəzarət
Qoşulmuş avadanlıqların siyahısını tələb edin
Fiziki yaddaş ölçüsünün sorğulanması
NMD rəhbərliyi
Rabitə adapterinin idarə edilməsi
Maqnitofon və digər cihazlara nəzarət etmək
Klaviatura nəzarəti
Printerin idarə edilməsi
ROM-da quraşdırılmış BASIC-ə daxil olmaq
Sistemin yenidən işə salınması
1A Sorğu / cari vaxtı və tarixi təyin edin
1B
1C
1D Ekranın başlanğıc parametrləri cədvəlinin ünvanı.
1E NGMD parametrləri cədvəlinin ünvanı
1F 128-255 kodları ilə simvol cədvəlinin ünvanı

Cədvəldə sadalananlardan bəziləri. 3 kəsmə bir-biri ilə əlaqəli bir neçə funksiyaya çıxışı təmin edir. Hər bir funksiya onaltılıq sayı (kod) ilə müəyyən edilir və müəyyən əməliyyatları yerinə yetirir.

Bəs istifadəçi düyməni basdıqda proqramın saymağı dayandırmasını istəsək nə etməli? Bu hadisə giriş pinindəki dəyər dəyişikliyi ilə əks olunur. Bu nümunəni tərcümə edib işlətsək, yəqin ki, lazım olduğu kimi işləyəcək. Bəs əsas loopdakı proqram daha uzun çəkirsə?

Amma bu o deməkdir ki, proqram hər üçüncü saniyədə düymənin vəziyyətini yoxlayacaq. Aparat fasilələrindən istifadə. Kesinti mühüm hadisələrə asinxron şəkildə xidmət göstərmək üsuludur. Bu o deməkdir ki, dərhal cavab verilməli olan hadisə baş verərsə, prosessor əsas proqram təlimatlarının yüklənməsini dayandırır və fasilələri idarə etmək üçün proqramı yükləməyə başlayır. Biz deyirik ki, o, kəsmə işləyicisini icra edəcək. Kəsmə bəyanatı başa çatdıqdan sonra prosessor orijinal əməliyyata qayıdır.

Beləliklə, məsələn, kəsmə 19 (NGMD və NMD-yə nəzarət) 0-17 kodları ilə 18 funksiyaya girişi təmin edir:

0 - ilkin quraşdırma (disk sıfırlaması),

1 - cari disk vəziyyətini göstərmək,

2 - sektorlar qrupunu (blokunu) bir yoldan oxumaq,

3 - bir qrup sektoru bir yola qeyd etmək,

4 - oxuduqdan və ya yazdıqdan sonra yoxlama,

5 - trek formatlaması (sektor işarələrini qeyd etmək),

Bu xassədən istifadə etmək üçün kəsmə prosessoru aparatda həyata keçirilməlidir. Buna bir neçə dəfə cavab vermək olar. Yuxarıdakı nümunədə hardware kəsilməsindən istifadə etmək faydalı olardı. Ancaq bəzən biz digər hadisələrə cavab vermək istəyə bilərik, məsələn, müəyyən bir müddətdən sonra hesablamanı yenidən həyata keçirmək istəyirik. Bunu etmək üçün taymer kəsilməsindən istifadə edəcəyik. Və ya hər halda proqram xətası, biz prosessorun fasilə yaratmasını istəyirik və biz bu xətaya həssasıq.

Alternativ olaraq, prosessor sıfıra təyin edildikdə kəsmə ilə cavab vermək istəyirik. Prosessorun fasiləyə cavab verməsi üçün onu işə salmaq lazımdır. Bəzən elə olur ki, biz hansısa qeyri-ciddi əməliyyat həyata keçiririk və onun kəsilməsini istəmirik. Bu halda, kəsmə dayandırıla bilər və prosessor bütün xarici hadisələrə məhəl qoymayacaq. Bununla belə, kəsilmə aktivdirsə, fasilə baş verən zaman prosessor əsas proqram təlimatlarının yüklənməsini dayandırır. mühüm hadisə, iş dəftəri dəyərlərini yığında saxlayır və fasilə rejimimizin yerləşdiyi ünvana sıçrayır.

8 - cari sürücü parametrlərinin ekranı,

9 - sabit disk parametrləri cədvəlinin işə salınması,

A - "uzun" oxu,

B - "uzun" rekord,

C - istədiyiniz treki axtarın,

D - ilkin disk quraşdırılması,

10 - diskin hazırlığının yoxlanılması,

11 - diskin kalibrlənməsi,

14 - nəzarətçi diaqnostikası,

15 - sürücü növünün ekranı,

Bu ünvan kəsilmə vektoru adlanır. Onlar 0 və 1 ilə nömrələnir və rəqəmsal sancaqlar 2 və 3-də tapılır. Bu şamlardan sonra cəmi 4 ədəd ola bilər. müxtəlif növlər hadisələr. Məsələn, bir düyməyə basmağa cavab vermək istəsək, siqnalın yüksələn və ya enən kənarını müşahidə edəcəyik.

Mikroprosessor bir neçə yüz sadə əməliyyatı yerinə yetirə bilən mürəkkəb bir maşındır, yəni. maşın sifarişi. Hər bir əmrin öz kodu, bir və ya bir neçə bayta yazılmış nömrə var. Prosessor növbəti baytları yaddaşdan götürür, onlara təlimat və ya verilənlər kimi baxır və proqramlaşdırılmış əməliyyatları yerinə yetirir. Bütün mikroprosessorlar oxşar elementləri ehtiva edir.

16 - disk statusunu dəyişdirin,

17 - sürücü növünün təyin edilməsi.

Kəsmə dərinliyi- bir-birini dayandıra bilən proqramların maksimum sayı. Kəsmə dərinliyi adətən kəsmə sistemi tərəfindən tanınan prioritet səviyyələrin sayına uyğun gəlir. Fərqli kəsmə dərinliklərində (n) kəsmə sisteminin işləməsi Şəkildə göstərilmişdir. 10. Burada kəsilmə sorğusunun sayı artdıqca onun prioritetinin də artdığı güman edilir.


düyü. 14. Müxtəlif kəsilmə dərinliklərində kəsmə sisteminin işləməsi

Kəsmə sorğusu qəbul edildikdə, kompüter aşağıdakı hərəkətlər ardıcıllığını yerinə yetirir:

1) ən yüksək prioritet olan maskalanmayan kəsilmə sorğusunun müəyyən edilməsi (eyni zamanda bir neçə sorğu qəbul edilibsə);

2) seçilmiş sorğunun növünün müəyyən edilməsi;

3) qənaət cari vəziyyət proqram sayğacı və bayraq reyestri;

4) kəsmə növü üzrə kəsmə işləyicisinin ünvanının müəyyən edilməsi və idarəetmənin bu işləyicinin birinci əmrinə ötürülməsi;

5) proqramın yerinə yetirilməsi - kəsmə işləyicisi;

6) proqram sayğacının və kəsilmiş proqramın bayraq registrinin saxlanmış dəyərlərinin bərpası;

7) kəsilmiş proqramın icrasının davam etdirilməsi.

1-4-cü mərhələlər kəsilmə sorğusu göründükdə kompüter avadanlığı tərəfindən avtomatik yerinə yetirilir. Mərhələ 6, həmçinin kəsmə idarəçisindən geri qaytarma əmri ilə aparatda yerinə yetirilir.

Müvafiq kəsmə işləyicisinə keçid (mikroprosessorun real iş rejimində) kəsmə vektor cədvəli vasitəsilə həyata keçirilir. Bu cədvəl ən aşağı ünvanlarda yerləşir RAM, 1 KB həcminə malikdir və 256 kəsmə işləyicisi üçün əmr seqmenti registrinin (CS) və təlimat göstəricisinin (IP) dəyərlərini ehtiva edir.

Kəsmə vektoru– kəsmə işləyicisinin ünvanını ehtiva edən yaddaş hüceyrəsi.

Kəsmə vektorları kəsilmə vektor cədvəlində birləşdirilir. Cədvəlin yeri mikroprosessorun növündən və iş rejimindən asılıdır.

Kəsmə mexanizminin əsas funksiyaları:

1.Kəsilmənin tanınması və ya təsnifatı.

2. İdarəetmənin kəsilmə işləyicisinə ötürülməsi.

3. Kəsilən proqrama düzgün qayıdış

Kəsilən proqramdan işləyiciyə və arxaya keçid mümkün qədər tez həyata keçirilməlidir. Sürətli üsullardan biri kompüter üçün icazə verilən bütün fasilələrin siyahısını və müvafiq işləyicilərin ünvanlarını ehtiva edən cədvəldən istifadə etməkdir. Kəsilən proqrama düzgün qayıtmaq üçün idarəetməni idarəediciyə ötürməzdən əvvəl prosessor registrlərinin məzmunu ya birbaşa giriş yaddaşında, ya da sistem yığınında saxlanılır.

Kəsmə siqnalları təsadüfi vaxtlarda baş verdiyindən, kəsilmə zamanı yalnız ardıcıllıqla işlənə bilən bir neçə kəsmə siqnalı ola bilər. Kəsmə siqnallarını ağlabatan ardıcıllıqla emal etmək üçün onlara prioritetlər verilir. Proqramlar, xüsusi maska ​​registrlərini idarə edərək, müxtəlif xidmət intizamlarını həyata keçirməyə imkan verir:

Daxili müdaxilələr.

Yuvalanmış kəsmələrlə, daha yüksək prioritet səviyyəsinə malik kəsmə sorğusu gəldikdə, cari kəsmə rejimi kəsilə (gecikdirilə bilər). Daha çox ilə bir fasilə emal sonra yüksək səviyyə prioritet olduqda, prosessor kəsilmiş prosedura qayıdır və bu kəsilmə bitənə qədər və ya yeni kəsilmə baş verənə qədər emal etməyə davam edir. Aydındır ki, daha yüksək prioritet səviyyəyə malik fasilə xidməti rejimi öz növbəsində daha yüksək prioritet səviyyəli fasilə ilə kəsilə bilər və s. Eyni zamanda, interrupts daha çox var aşağı səviyyə cari ilə müqayisədə prioritet adətən qadağandır (maskalı).

Proseslərin vəziyyətini dəyişdirən hərəkətverici qüvvə hadisələrdir. Hadisələrin əsas növlərindən biri fasilələrdir. Kesintilər kompüter sistemində ayrı-ayrı cihazların paralel işini koordinasiya etməyə və prosessorun işləməsi zamanı yaranan xüsusi şərtlərə cavab verməyə imkan verən mexanizmdir. Beləliklə, kəsmə müəyyən bir hadisə baş verdikdə baş verən idarəetmənin icraçı proqramdan sistemə (və onun vasitəsilə müvafiq kəsmə ilə işləmə proqramına) məcburi ötürülməsidir.

Kesintilər ideyası 50-ci illərin ortalarında irəli sürülüb və mübaliğəsiz demək olar ki, o, kompüter texnologiyasının inkişafına ən mühüm töhfə verib. Fasilələrin tətbiqinin əsas məqsədi asinxron iş rejimini həyata keçirmək və hesablama kompleksinin ayrı-ayrı qurğularının işini paralelləşdirməkdir.

Kəsmə mexanizmi aparat və proqram təminatında həyata keçirilir. Kəsmə sistemlərinin strukturları (aparat arxitekturasından asılı olaraq) çox fərqli ola bilər, lakin onların hamısında bir var ümumi xüsusiyyət– kəsilmə, şübhəsiz ki, prosessor tərəfindən təlimatların icrası qaydasında dəyişikliklə nəticələnir.

Kompüter sisteminin arxitekturasından asılı olmayaraq kəsintilərin idarə edilməsi mexanizmi aşağıdakı elementləri ehtiva edir:

1. Fasilə faktının müəyyən edilməsi (kesinti siqnalının alınması) və kəsilmənin müəyyən edilməsi (əməliyyat sistemlərində bu, bəzən 4-cü addımda təkrar edilir).

2. Kəsilən prosesin vəziyyətini xatırlamaq. Prosesin vəziyyəti ilk növbədə proqram sayğacının dəyəri, prosessor registrlərinin məzmunu ilə müəyyən edilir və həmçinin rejimin spesifikasiyası (məsələn, istifadəçi və ya imtiyazlı rejim) və digər məlumatları ehtiva edə bilər.

3. İdarəetmə aparat vasitəsi ilə kəsilmələrin idarə edilməsi alt proqramına ötürülür.

4. Aparat əməliyyatlarından istifadə etməklə 2-ci addımda saxlanıla bilməyən kəsilmiş proqram haqqında məlumatın saxlanması. Bəzi hesablama sistemləri kəsilmiş prosesin vəziyyəti haqqında kifayət qədər böyük miqdarda məlumatın saxlanmasını təmin edir.

5. İdarəetməni dayandırın. Bu iş 3-cü addımda idarəetmənin ötürüldüyü eyni alt proqram tərəfindən yerinə yetirilə bilər, lakin OS-də bu, ən çox müvafiq alt proqramın sonradan çağırılması ilə həyata keçirilir.

6. Kəsilmiş proseslə bağlı məlumatın bərpası (mərhələ 4-cü mərhələyə əks).

7. Kəsilən proqrama qayıdın.

1-3-cü addımlar aparatda, 4-7-ci addımlar proqram təminatında həyata keçirilir.

düyü. 13. İdarəetməni dayandırın

Şəkil 13 göstərir ki, kəsilmə sorğusu baş verdikdə hesablamaların təbii axını pozulur və idarəetmə baş vermiş fasilənin işlənməsi proqramına verilir. Bu halda, aparat (bir qayda olaraq, stek yaddaş mexanizmlərindən istifadə etməklə) dayandırılmış proqramın icrasının davam etdirilməli olduğu təlimatın ünvanını saxlayır. Kəsmə xidməti proqramı icra edildikdən sonra, saxlanmış komanda ünvanını komanda indeksinə daxil etməklə idarəetmə əvvəllər dayandırılmış proqrama qaytarılır. Bununla belə, bu sxem yalnız ən sadə proqram mühitlərində istifadə olunur.

Beləliklə, kəsmə mexanizminin əsas funksiyaları:

Fasilələrin tanınması və ya təsnifatı;

Müvafiq olaraq, nəzarətin kəsilmə idarəçisinə ötürülməsi;

Kəsilən proqrama düzgün qayıdış.

Kəsilmiş proqramdan işləyiciyə və arxaya keçid mümkün qədər tez həyata keçirilməlidir. Sürətli üsullardan biri kompüter üçün icazə verilən bütün fasilələrin siyahısını və müvafiq işləyicilərin ünvanlarını ehtiva edən cədvəldən istifadə etməkdir. Kəsilən proqrama düzgün qayıtmaq üçün idarəetməni kəsmə idarəçisinə ötürməzdən əvvəl prosessor registrlərinin məzmunu ya birbaşa giriş yaddaşında, ya da sistem yığınında saxlanılır.

Hesablama sisteminin işləməsi zamanı baş verən fasilələri iki əsas sinfə bölmək olar: xarici (bəzən asinxron adlanır) və daxili (sinxron).

Xarici kəsilmələr kəsilən prosesdən kənarda baş verən asinxron hadisələr nəticəsində yaranır, məsələn:

Taymeri kəsir;

Xarici cihazlardan kəsilmələr (giriş/çıxış fasilələri);

Elektrik kəsilməsi səbəbindən fasilələr;

Kompüter sisteminin operator konsolundan fasilələr;

Başqa bir prosessordan və ya başqa bir kompüter sistemindən kəsilir.

Daxili fasilələr prosessorun işləməsi ilə əlaqəli olan və onun əməliyyatları ilə sinxron olan hadisələrdən qaynaqlanır. Nümunələr aşağıdakı kəsmə sorğularıdır:

Ünvan pozuntusu halında (qadağan edilmiş və ya mövcud olmayan ünvan icra olunan komandanın ünvan hissəsində göstərilir, virtual yaddaş mexanizmlərini təşkil edərkən çatışmayan seqmentə və ya səhifəyə giriş);

Əməliyyat kodu sahəsində istifadə olunmamış ikili birləşmə varsa;

Sıfıra bölündükdə;

Sifariş çoxaldıqda və ya yox olduqda;

Monitorinq vasitələri ilə müxtəlif aparat qurğularının işində paritet xətalar və xətalar aşkar edildikdə.

ƏS nəzarətçisinə daxil olduqda hələ də fasilələr ola bilər - bəzi kompüterlərdə bəzi əmrlər istifadəçilər tərəfindən deyil, yalnız ƏS tərəfindən istifadə edilə bilər. Müvafiq olaraq, aparat müxtəlif iş rejimlərini təmin edir və istifadəçi proqramları bu imtiyazlı təlimatların yerinə yetirilmədiyi bir rejimdə icra olunur. Bu rejimdə qadağan edilmiş bir əmrdən istifadə etməyə cəhd etsəniz, daxili fasilə yaranır və idarəetmə ƏS nəzarətçisinə verilir. İmtiyazlı əmrlərə mərkəzi prosessorun iş rejimini dəyişdirmək əmrləri də daxildir.

Əslində proqramda fasilələr var. Bu kəsmələr müvafiq kəsmə əmrinə cavab olaraq baş verir, yəni bu əmrlə prosessor adi daxili fasilələrlə demək olar ki, eyni hərəkətləri yerinə yetirir.

Fasilə yaradan siqnallar prosessordan kənarda və ya prosessorun özündə yaradılır; eyni vaxtda baş verə bilərlər. Onlardan birinin emal üçün seçilməsi hər bir kəsilmə növünə təyin edilmiş prioritetlər əsasında həyata keçirilir. Aydındır ki, prosessorun idarəetmə sxemlərindən kəsilmələr ən yüksək prioritetə ​​sahib olmalıdır (əgər aparat düzgün işləmirsə, məlumatı emal etməyə davam etməyin mənası yoxdur). Birincisini tamamlayan ikinci üsul müxtəlif fasilələrə xidmət fənlərindən istifadə etməyə imkan verir.

Kəsmə siqnalının olması mütləq işləyən proqramın dayandırılmasına səbəb olmur. Prosessorda fasilələrdən qorunma vasitələri ola bilər: kəsmə sistemini söndürmək, fərdi kəsilmə siqnallarını maskalamaq (inhibe etmək). Bu vasitələrin proqram təminatı ilə idarə edilməsinə imkan verir əməliyyat sistemi kəsmə siqnallarının işlənməsini tənzimləmək, prosessoru gəldikdən dərhal sonra onları emal etməyə məcbur etmək, onların işlənməsini bir müddət gecikdirmək və ya onlara tamamilə məhəl qoymamaq. Tipik olaraq, kəsmə əməliyyatı yalnız cari əmr icrasını tamamladıqdan sonra həyata keçirilir.

Xüsusi maska ​​registrlərinin proqram təminatı (kəsmə siqnallarının maskalanması) müxtəlif xidmət intizamlarını həyata keçirməyə imkan verir:

Nisbi prioritetlərlə, yəni daha yüksək prioritetləri olan müraciətlər olsa belə, xidmət kəsilmir. Verilmiş sorğuya xidmət göstərildikdən sonra ən yüksək prioritet olan sorğuya xidmət göstərilir. Belə bir nizam-intizamı təşkil etmək üçün bu sorğuya xidmət proqramında bütün digər kəsmə siqnallarına maskalar tətbiq etmək və ya sadəcə kəsmə sistemini söndürmək lazımdır;

Mütləq prioritetlərlə, yəni ən yüksək prioritetli kəsmə həmişə xidmət göstərir. Bu rejimi həyata keçirmək üçün fasilələrin işlənməsi zamanı daha aşağı prioritetli bütün sorğuları maskalamaq lazımdır. Bu halda çoxsəviyyəli fasilə mümkündür, yəni kəsilmənin işlənməsi proqramlarının kəsilməsi.

Yığın prinsipinə görə və ya bəzən dedikləri kimi, LCFS (son gələn ilk xidmət) nizam-intizamına görə, yəni daha aşağı prioritetli sorğular daha yüksək prioritetli bir fasilənin işlənməsini dayandıra bilər. Bunun üçün heç bir kəsmə siqnalına maskalar tətbiq etməməli və kəsmə sistemini söndürməməlisiniz.

Son iki fənnin düzgün həyata keçirilməsi üçün 1-4 və 6-7 addımlarını yerinə yetirərkən kəsmə sisteminin tam maskalanmasını təmin etmək lazımdır, yəni. kəsmə sistemi yalnız daxil olanı emal edərkən işə salına bilər erkən fasilələr. Çoxsəviyyəli fasilə bir prosesdən digərinə keçid mərhələsində deyil, faktiki kəsilmənin emalı mərhələsində (5-ci addım) baş verməlidir.

Fasilələrin səbəbləri ƏS (kesinti nəzarətçisi adlanan modul) tərəfindən müəyyən edilir və o, həmçinin verilmiş fasilə üçün və verilmiş vəziyyətdə lazım olan hərəkətləri yerinə yetirir. Buna görə də, real vaxt rejimində işləyən hər hansı bir əməliyyat sistemi, ilk növbədə, kəsmə sisteminin idarə edilməsi, tapşırıq vəziyyətlərinin və hadisələrinin monitorinqi, tapşırıqların sinxronizasiyası, yaddaşın ayrılması və idarə edilməsi üçün vasitələr və yalnız bundan sonra məlumatların təşkili üçün vasitələr daxildir.

Kəsinti xidmətinin iki xidmət bölməsi var. Bu, 2-ci addımda saxlanıla bilməyən kəsilmiş tapşırığın kontekstinin saxlandığı birinci bölmə və əksinə, kontekstin bərpa olunduğu sonuncu, yekun bölmədir.

Kəsmə sisteminin kəsilmə sorğusu siqnalına yenidən reaksiya verməsinin qarşısını almaq üçün o, adətən kəsmələri avtomatik olaraq “bağlayır” (söndürür), buna görə də kəsilmənin idarə olunması qaydasında kəsmə sistemini yenidən aktivləşdirmək lazımdır. Nəzərdən keçirilən fasilələrin işlənməsi rejimlərinin quraşdırılması emal alt proqramının birinci bölməsinin sonunda həyata keçirilir. Beləliklə, icra müddəti üçün mərkəzi fasilələr işə salınır. Emal alt proqramının son bölməsi işləyərkən, kəsmə sistemi söndürülməli və kontekst bərpa edildikdən sonra yenidən aktivləşdirilməlidir.

Bir çox əməliyyat sistemlərində fasilələrlə işləmə proqramının xidmət bölmələri xüsusi sistem proqram moduluna - kəsmə nəzarətçisinə ayrılır.

Kəsmə nəzarətçisi, ilk növbədə, cari tapşırığın deskriptorunda kəsilmiş hesablama prosesinin kontekstini müəyyən edən prosessorun iş registrlərini saxlayır. Sonra, hazırkı (cari) kəsmə sorğusuna xidmət göstərməklə əlaqəli hərəkətləri yerinə yetirməli olan alt proqramı müəyyənləşdirir. Nəhayət, nəzarəti bu alt proqrama ötürməzdən əvvəl kəsmə nəzarətçisi tələb olunan kəsilmənin işlənməsi rejimini təyin edir. Fasilələrin idarə edilməsi alt proqramını yerinə yetirdikdən sonra nəzarət yenidən supervayzerə, bu dəfə tapşırıqları göndərən modula ötürülür. Və tapşırıq meneceri, öz növbəsində, prosessor vaxtının (işləyən proseslər arasında) paylanması üçün qəbul edilmiş rejimə uyğun olaraq, prosessorun ayrılması qərara alınacaq tapşırığın kontekstini bərpa edəcəkdir (Şəkil 14).


düyü. 14. ƏS nəzarətçilərinin iştirakı ilə fasilələrin idarə edilməsi

Şəkil 14-dən gördüyümüz kimi, əvvəllər kəsilmiş proqrama birbaşa kəsilmə rejiminin özündən birbaşa qayıdış yoxdur.

Birbaşa dərhal geri qayıtmaq üçün, prosessor aparatının etdiyi geri ünvanını yığında saxlamaq kifayətdir. Eyni zamanda, yığın həmişə LCFS (sonuncu - ilk xidmət) intizamını tətbiq etdiyi üçün iç-içə kəsilmələr halında asanlıqla geri qayıtma qabiliyyətini təmin edir.

Bununla belə, əgər proses konteksti yuxarıda təsvir edilən tapşırıq deskriptorlarında deyil, adətən aparatda həyata keçirildiyi kimi sadəcə yığında saxlanılsaydı, o zaman hansı tapşırığı prosessora ötürmək lazım olduğunu seçməkdə çevik olmaq imkanımız olmayacaqdı. xidmətin dayandırılması proseduru tamamlanır. Təbii ki, bu, yalnız ümumi prinsipdir. Xüsusi prosessorlarda və xüsusi OS-lərdə nəzərdən keçirilən sxemdən bəzi sapmalar və/yaxud ona əlavələr ola bilər. Məsələn, müasir prosessorlar tez-tez kəsilmiş prosesin kontekstini bilavasitə onun sapında saxlamaq üçün xüsusi aparat imkanlarına malikdirlər, yəni proses tutacağı (ən azı onun bir hissəsi) aparat tərəfindən saxlanılan məlumat strukturuna çevrilir.