Ugrás a tartalomhoz

Operációs rendszerek

Dr. Fazekas Gábor (2011)

Kempelen Farkas Hallgatói Információs Központ

Megszakítások

Megszakítások

  • A normális utasításvégrehajtási sorrend megszakítása:

    • Egy külső esemény hatására létrejövő folyamatfelfüggesztés olyan módon, hogy a felfüggesztett folyamathoz való visszatérés lehetséges

    • A végrehajtás alatt álló utasítássorozat feldolgozása valamelyik utasítás végrehajtása után „megszakad”, új sorozat „kezdődik”

  • A feldolgozás hatásfokát növeli:

    • Például a processzor más program utasításait hajthatja végre, amíg egy I/O művelet folyamatban van

Programok végrehajtásának folyamata megszakítással és anélkül

Megszakítás kezelő

  • Program, amely meghatározza a megszakítás okát és végrehajtja azokat az eljárásokat, amelyek ebben az esetben szükségesek (a vezérlést megsza-kításkor kapja meg)

  • A megszakítás (interrupt) átadja a vezérlést a megszakítás-feldolgozó rutinnak. Ez általában a megszakítási vektor segítségével történik, amelynek megfelelő elemei tartalmazzák a megszakítási osztályokhoz tartozó feldolgozó rutin első végrehajtandó utasításának címét.

  • A megszakítási rendszernek tárolnia kell a megszakított utasítás címét.

  • A megszakítási jel forrását tekintve egy megszakítás lehet külső (pl. I/O, Timer, Hardver), vagy belső (szoftveres megszakítás)

  • A megszakítás feldolgozó rutin (operációs rendszer része!) közvetlen feladatai:

    • a további megszakítások letiltása, („maszkolás„)

    • a CPU állapotának megőrzése

    • a megszakítás okának, körülményeinek részletesebb elemzése

    • a megszakított programhoz történő visszatérés megszervezése

A megszakítások osztályai

  • Program:

    • aritmetikai túlcsordulás

    • nullával való osztás

    • nem létező művelet végrehajtásának megkísérlése

    • felhasználói memóriaterületen kívülre való hivatkozás (szegmentációs hiba)

    • „rendszerhívás” (szoftver által direkt módon kiváltott megszakítás: INT, SVC, Tr, ...)

  • Rendszeróra (időzítő, időadó, timer)

  • I/O berendezés/adapter által kiváltott

  • Hardverhiba

Megszakítási ciklus

  • egy-egy gépi utasítás végrehajtása után a processzor „megvizsgálja / érzékeli, van-e megszakítás”

  • ha nincs, betölti a program(címszámláló) szerinti soron következő utasítást a memóriából

  • ha egy megszakítás függőben van, felfüggeszti a program végrehajtását, és elindítja a megfelelő megszakításkezelőt.

Ezt személteti a következő ábra:

Többszörös megszakítás

  • Újabb megszakítások letilthatók, amíg egy megszakításkérlem feldolgozás alatt áll, hogy el ne vesszenek (lost interrupt), ilyenkor a processzor figyelmen kívül hagy minden újabb megszakításkérést

Megszakítási sorrend és prioritás

  • A megszakítások letilthatók (maszkolás), amíg a processzor befejez egy feladatot, és függőben maradnak addig, amíg a processzor újból engedélyezi a megszakítást

  • A megszakításkezelő rutin feladatának elvégzése után a processzor további megszakítások fogadására kész

  • A magas prioritású megszakítások várakozásra késztetik az alacsonyabb prioritású megszakításokat

  • Alacsonyabb prioritású megszakításkezelő megszakítható

  • Példa: egy kommunikációs csatornán való bevitelt gyorsan fogadni kell, hogy hely legyen a következő bevitelnek, (az I/O szűkkeresztmetszet!)

Multiprogramozás

Motivációs háttér: a processzorok és az adatátvitel sebessége jelentősen eltér egymástól és ez az eltérés csak növekszik (Moore törvénye) .

Moore törvényének egy megfogalmazása :

„az integrált áramkörökben lévő tranzisztorok száma minden 18. hónapban megduplázódik”.

A háttértárak sebessége azonban messze nem nő ilyen ütemben!

Multiprogramozás kivitelezése:

  • a processzornak egynél több, az opratív memóriába betöltött programot kell végrehajtania

  • a programok végrehajtásának sorrendje függ azok relatív prioritásától illetve attól, hogy várnak-e valamilyen I/O műveletre

  • a megszakításkezelő (ütemező) rutin befejeztével a vezérlés nem feltétlenül kerül vissza ahhoz a programhoz, amelyik futása közben a megszakításkérés történt