Folyamatvezérlő blokk az operációs rendszerben
A legutóbbi blogban megismertük a folyamatokat az operációs rendszerben és a folyamat különböző állapotait. Ha nem ismeri a Process in OS akkor meg kell kész, hogy a blog innen. Ebben a blogban a Folyamatvezérlő blokkról fogunk tanulni az operációs rendszerben. Tehát kezdjük el.
Az operációs rendszerben számos folyamat van jelen. Minden folyamat rendelkezik bizonyos információkkal, amelyekre a CPU-nak szüksége van a folyamat végrehajtásához. Szükségünk van tehát valamilyen adatstruktúrára, amely az adott folyamatra vonatkozó információkat tárolja.
A Process Control Block vagy egyszerű PCB egy olyan adatstruktúra, amely egy folyamat információinak tárolására szolgál, amelyekre szükség lehet egy adott folyamat ütemezésének kezeléséhez.
Minden folyamat kap tehát egy PCB-t, amely egyfajta azonosító kártyája a folyamatnak. A rendszerben lévő összes folyamathoz tartozik egy PCB, és ezek a PCB-k egy összekapcsolt listában vannak összekapcsolva.
A folyamatvezérlő blokk attribútumai
A PCB-nek különböző attribútumai vannak, amelyek segítik a CPU-t egy adott folyamat végrehajtásában. Ezek az attribútumok a következők:
- Process Id: A process id egy folyamat egyedi azonosítója. Minden folyamatot a process id segítségével azonosítunk.
- Program Counter: A programszámláló, a CPU által végrehajtandó következő utasításra mutat. A következő végrehajtandó utasítás megtalálására szolgál.
- Folyamatállapot: Egy folyamat a folyamat lehetséges állapotai közül bármelyikben lehet. A CPU-nak tehát ismernie kell a folyamat aktuális állapotát, hogy annak végrehajtása könnyen elvégezhető legyen. A folyamat állapotáról itt tudhat meg többet.
- Prioritás: Minden folyamathoz tartozik egy prioritás. A CPU a prioritás alapján találja meg, hogy melyik folyamatot kell először végrehajtani. A magasabb prioritású folyamatot hajtja végre először.
- Általános célú regiszterek: Egy folyamat végrehajtása során számos olyan adatot kezel, amelyeket a folyamat használ és módosít. A legtöbb esetben azonban le kell állítanunk egy folyamat végrehajtását, hogy egy másik folyamatot indíthassunk, és bizonyos idő elteltével az előző folyamatot ismét folytatni kell. Mivel az előző folyamat bizonyos adatokkal foglalkozott, és megváltoztatta az adatokat, ezért amikor a folyamat újraindul, akkor csak ezeket az adatokat kell használnia. Ezeket az adatokat valamilyen regisztereknek nevezett tárolóegységekben tárolják.
- CPU ütemezési információk:
- Megnyitott fájlok listája: Egy folyamat számos fájlt kezelhet, ezért a CPU-nak listát kell vezetnie a folyamat által megnyitott fájlokról, hogy biztosítsa, hogy egyidejűleg más folyamat ne tudja megnyitni a fájlt.
- Az I/O eszközök listája: Egy folyamatnak számos I/O eszközre lehet szüksége különböző feladatok elvégzéséhez. Ezért megfelelő listát kell vezetni, amely megmutatja, hogy melyik folyamat melyik I/O eszközt használja.
Ezek a folyamatvezérlő blokk attribútumai, és ezekre az információkra azért van szükség, hogy részletes információval rendelkezzünk a folyamatról, ami viszont a folyamat jobb végrehajtását eredményezi.
Ez a blog ennyi. Remélem, ma tanult valami újat.