Ugrás a tartalomhoz

Operációs rendszerek

Dr. Fazekas Gábor (2011)

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

Processzus vezérlés

Processzus vezérlés

Processzusleírás

  • Az operációs rendszernek információra van szüksége a processzusok és erőforrások pillanantnyi állapotáról

  • Az operációs rendszer az általa felügyelt egységekhez táblázatokat rendel

  • Négy ilyen táblázat (operációs rendszer függő):

A processzustábla

  • Hol található meg a processzus?

  • Jellemzők, melyek szükségesek a processzus kezeléséhez:

    • – processzus azonosító (ID)

    • – processzus állapot

    • – elfoglalt memóriaterület

Processzuskép (Process Image):

  • Felhasználói adat

    • – lokális és globális változók illetve definiált konstansok számára fenntartott adat területek

  • Felhasználói program

    • – a processzus során végrehajtandó program(ok)

  • Rendszer verem (System stack)

    • – rendszerhívások paramétereinek tárolása

  • Processzusvezérlő blokk (Process Control Block - PCB)

    • – az operációs rendszer számára a processzus vezérléséhez szükséges adatok

A processzusvezérlő blokk elemei

  • Processzusazonosítás

    • – processzusazonosító: egyedi numerikus azonosító

      • az elsődleges processzustábla egy indexe is lehet

    • – szülőprocesszus azonosítója

    • – felhasználóazonosító

  • Processzorállapot információ (Processor State Information)

    • – felhasználó által látható regiszterek állapota

    • – vezérlő- és státuszregiszterek állapota: processzorregiszterek, melyek a processzor működését vezérlik

      • programszámláló: a következő végrehajtandó utasítás címét tartalmazza

      • állapotkód: a legutolsó aritmetikus vagy logikai művelet eredményét tartalmazza (előjel, nulla, átvitel, egyenlő, túlcsordulás)

      • státuszinformáció: megszakítás bekapcsolva/kikapcsolva, végrehajtó mód

    • – veremmutatók (Stack Pointer) állapota

      • minden processzushoz társítva van egy vagy több "last-in-first-out" (LIFO) rendszerverem

      • ez a verem a rendszerhívások és eljárások számára paraméterek és címek tárolására szolgál

      • a veremmutató ezen verem tetejére mutat

  • Processzusvezérlő információ (Process Control Information)

    • – ütemezési és állapot információ: ez az információ szükséges az operációs rendszernek, hogy az ütemezési feladatát elvégezze

      • processzusállapot: a végrehajtásra kijelölt processzus készenléti fokát határozza meg (futó, futásra kész, várakozó, leállított).

      • prioritás: egy vagy több mező írja le a processzus ütemezésének prioritását. (alapértelmezett, azonnali, megengedhető legmagasabb)

      • ütemezéssel kapcsolatos információ: a használt ütemezési algoritmustól függ. Például a processzus várakozással telt idejének mértéke, ill. a legutolsó végrehajtás során eltelt idő

      • esemény: milyen eseményre várakozik a processzus, hogy az végrehajtható legyen?

    • –adatrendszerezés

      • egy processzus más processzushoz csatolódhat valamilyen rendszer szerint. Például szülő-gyerek viszonyban lehet más processzus(okk)al. A PCB ilyen szerkezetek, viszonyok kialakítását támogatja, más processzusra mutató pointerek alkalmazásával

    • – processzusok közötti kommunikáció

      • több jelző illetve üzenet is rendelhető két független processzus kommunikációjához

      • ezen információk egy része vagy egésze a processzusvezérlő blokkban tárolható és tartható fenn

    • – processzus privilégiumok

      • a processzusoknak privilégiumok adhatók, amelyek a számukra elérhető memóriát és a végrehajtható utasítások típusait határozzák meg

    • – memóriakezelés

      • ez a rész laptábla mutatókat tartalmazhat, mely a processzushoz rendelt virtuális memóriát írja le

    • – erőforrás felhasználás

      • a processzus által használt erőforrásokat (pl. megnyitott fájlok) jelezheti

      • a processzor illetve más erőforrás felhasználásának történetét is tartalmazhatja

      • ez az információ az ütemezőrendszer számára lehet fontos

A processzusvezérlés folyamata

  • Végrehajtás módjai:

    • – felhasználói mód

      • csökkentett privilégiumokkal járó mód

      • felhasználói programok tipikusan ebben a módban kerülnek végrehajtásra

    • – kernel mód

      • több privilégiummal rendelkező mód

      • teljes felügyelet a processzor (és összes utasítása), a regiszterek és a memória felett

  • Processzuslétrehozás lépései:

    • – egyedi processzusazonosító hozzárendelése

    • – tárfoglalás a processzus számára – processzusvezérlő blokk inicializálása

    • – megfelelő kapcsolatok beállítása

      • ütemezési sorhoz szükséges listához történő kapcsolódás

    • – egyéb adatrendszerek létrehozása

      • könyvelési fájl fenttartása

  • Processzusváltás okai:

    • megszakítás

      • – óramegszakítás

        • a processzus a maximális időszeleten túlfut

      • – I/O megszakítás

      • – laphiba

        • a memóriacím a virtuális memóriában lévő adatra hivatkozik, amit először a főmemóriába kell áthozni, csak ezután futhat tovább a processzus

    • csapda (trap)

      • – hibaesemény

      • – a processzus „Kilépés” állapotba történő mozgatását jelentheti

    • rendszerhívás (INT) – operációs rendszer valamely szolgáltatásának (funkció) hívása