Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPVI_Spausdinti2003M.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
3.88 Mб
Скачать

26 Pav. Sąlyginių neciklinių duomenų mainų algoritmas

14.2. Pertrauktiniai duomenų mainai

Pertrauktiniu duomenų įvedimu ir išvedimu vadinami duomenų mainai, kuriuos iššaukia (inicijuoja) periferinis įrenginys, laikinai nutraukiant pagrindinę programą, vykdant pertraukties aptarnavimo paprogramę (įvedimą, išvedimą) ir vėl grįžtant atgal į pagrindinę programą toje vietoje, kur ji buvo nutraukta.

Pertrauktinius duomenų mainus organizuoja pertraukčių sistema, kurią sudaro:

  • techninės priemonės;

  • komandos ir programos valdančios šias priemones.

Pertrauktiniai duomenų mainai pavaizduoti 27 pav.

Prieš pradedant šios rūšies duomenų mainus, pagrindinėje programoje vykdoma pertraukčių sistemos pradinio nustatymo (inicializacijos), suderinimo procedūra (Pertrauktis leisti).

Pabaigus pertrauktis, kartais gali būti reikalinga speciali procedūra, baigianti pertraukčių sistemos darbą. Bet kuriuo pagrindinės programos vykdymo momentu, kai periferinis įrenginys pasiruošęs duomenų mainams, Įv.Išv.Į. gali inicijuoti pertrauktį, siųsdamas INTR pertraukties reikalavimo signalą.

27 Pav. Pertrauktiniai duomenų mainai

Pertrauktis atpažįstama (indentifikuojama) ir pradedama tik tam tikru griežtai nustatytu laiko momentu (pabaigus komandos ciklą, prieš pradedant išrinkimo fazę), nes ji gali prasidėti tik pabaigus vykdyti eilinę komandą pagrindinėje programoje. Pertraukties procesas vyksta taip:

  • automatiškai įsimenamas (dažniausiai dėklo atmintyje) PC programos skaitiklio turinys (programos nutraukimo vietos arba grįžimo adresas, nes priėmus pertraukties reikalavimo signalą PC yra įrašytas kitos eilinės (po pabaigtos) komandos adresas);

  • keičiamas PC turinys, įrašant pertraukties aptarnavimo paprogramės adresą;

  • pereinama į programos vietą (pertrauktį aptarnaujančią paprogramę), nurodytą PC;

  • darbas pertraukties paprogramėje (įvedimas, išvedimas);

  • grįžimas į pagrindinę programą, skaitant iš atminties (dažniausiai dėklo) grįžimo adresą ir jį įrašant į PC.

Pradedant darbą pertraukties paprogramėje, kai kurių programiškai valdomų registrų turinys įsimenamas atmintyje, o prieš grįžtant iš paprogramės jų turinys vėl atstatomas, nes neturi sutrikti pagrindinės programos darbas. Šis procesas vadinamas kontekstiniu perjungimu ir gali būti atliekamas kaip techninėmis, taip ir pograminėmis priemonėmis.

Pertraukties procesas daug kuo panašus į procesus, kurie vyksta, vykdant paprogramių iškvietimo ir grįžimo iš jų komandas.

Pertraukties atveju paprogramių iškvietimo komandos formuojamos ir įterpiamos į bendrąją komandų seką bet kurioje programos vietoje, tik pertraukties proceso metu, pertraukčių sistemos techninėmis priemonėmis.

Antruoju atveju šios komandos ištikrųjų visą laiką yra programos komandų fiksuotoje sekoje. Todėl pertrauktis gali būti laikoma paprogramės iškvietimu techninėmis priemonėmis.

Pertraukčių sistemos pagal vienu metu patvirtintų ir veikiančių pertraukčių skaičių gali būti:

  • vieno lygio;

  • daugelio lygių.

Vieno lygio sistemose bet kuriuo laiko momentu apdorojama tik viena pertrauktis, o kitos patvirtintos pertrauktys laukia savo eilės ir pradės veikti tik pabaigus eilinę pertrauktį. Pertrauktys blokuojamos vienu IS trigeriu, kuris fiksuoja pertraukties aptarnavimo faktą. Kai vienu metu pertraukčių reikalavimo signalai patenka iš keleto šaltinių, tai pertrauktys aptarnaujamos pagal jų svarbą, sudarytą prioritetinę eilę. Prioritetinė eilė sudaroma atsižvelgiant į:

  • pertraukties reikalavimų pasikartojimo dažnį;

  • pertraukties aptarnavimo trukmę;

  • pertraukties aptarnavimo uždelsimo pasekmes ir t.t.

Dažniausiai naudojama fiksuota tiesinė prioritetinė eilė. Tačiau gali būti ir kitokios prioritetinės eilės (programuojamos fiksuotos, dinaminės kintančios pagal nustatytą algoritmą). Pavyzdžiui, naudojant dinaminę cikliškai kintančią prioritetinę eilę, pabaigus eilinę pertrauktį vyksta cikliškas pertraukčių prioritetų poslinkis, suteikiant ką tik pabaigtai pertraukčiai žemiausią prioritetą.

Daugelio lygių sistemose leidžiamos kelios vienu metu veikiančios skirtingų lygių pertrauktys. Sudaroma lygių prioritetų eilė vadinama pirmine ir kiekviename lygyje griežtai fiksuota – antrinė prioritetų eilė. Pertraukties aptarnavimo procedūrą gali nutraukti tik bet kuri aukštesnio lygio pertrauktis.

MPS naudojamos šios pertraukčių sistemos [3]:

  • radialinė;

  • išplėstinė radialinė;

  • vektorinė.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]