a kapcsolási folyamat nyomon követéséhez szükséges összes információ egy folyamatvezérlő blokknak nevezett adatcsomagban található. A folyamatvezérlő blokk általában a következőket tartalmazza:
- egy azonosító szám, amely azonosítja a folyamatot
- A program azon helyeire mutat, ahol a feldolgozás utoljára történt
- regiszter tartalma
- különböző zászlók és kapcsolók állapota
- a folyamathoz szükséges memória felső és alsó határára mutat
- a folyamat által megnyitott fájlok listája
- a folyamat prioritása
- az összes adat állapota
- /o a folyamathoz szükséges eszközök
minden folyamathoz tartozik egy állapot. Sok folyamat nem fogyaszt CPU időt, amíg nem kap valamilyen bemenetet. Előfordulhat például, hogy egy folyamat billentyűleütésre vár a felhasználótól. Amíg a billentyűleütésre vár, nem használ CPU időt. Amíg várakozik, “felfüggesztik”. Amikor a gombnyomás megérkezik, az operációs rendszer megváltoztatja állapotát. Amikor a folyamat állapota megváltozik, például függőben lévőről aktívra, vagy felfüggesztettről futásra, a folyamatvezérlő blokkban lévő információkat ugyanúgy kell használni, mint bármely más program adatait az operációs rendszer feladatváltó részének közvetlen végrehajtásához.
hirdetés
Ez a folyamatcsere közvetlen felhasználói beavatkozás nélkül történik, és minden folyamat elegendő CPU-ciklust kap ahhoz, hogy ésszerű idő alatt elvégezze feladatát. A hiba akkor kezdődhet, ha a felhasználó túl sok folyamatot próbál egyszerre működni. Maga az operációs rendszer bizonyos CPU-ciklusokat igényel az alkalmazási folyamatok összes regiszterének, sorainak és halmainak mentéséhez és cseréjéhez. Ha elegendő folyamat indul el, és ha az operációs rendszert nem gondosan tervezték meg, a rendszer elkezdheti használni a rendelkezésre álló CPU-ciklusok túlnyomó részét a folyamatok közötti váltáshoz, nem pedig a folyamatok futtatásához. Amikor ez megtörténik, ezt verésnek hívják, és általában valamilyen közvetlen felhasználói beavatkozást igényel a folyamatok leállításához és a rendszer rendjének visszaállításához.
Ez a tartalom nem kompatibilis ezen az eszközön.
Ez a tartalom nem kompatibilis ezen az eszközön.
az egyik módja annak, hogy az operációs rendszer tervezői csökkentsék a verés esélyét, az, hogy csökkentik az új folyamatok szükségességét a különböző feladatok elvégzéséhez. Egyes operációs rendszerek lehetővé teszik a” process-lite ” nevű szálat, amely képes kezelni a normál folyamat összes CPU-intenzív munkáját, de általában nem foglalkozik az I/O különféle típusaival, és nem hoz létre olyan struktúrákat, amelyek megkövetelik a rendszeres folyamat kiterjedt folyamatvezérlő blokkját. Egy folyamat sok szálat vagy más folyamatot indíthat el, de egy szál nem indíthat el egy folyamatot.
eddig az összes ütemezés, amelyet megvitattunk, egyetlen CPU-ra vonatkozott. Két vagy több CPU-val rendelkező rendszerben az operációs rendszernek meg kell osztania a munkaterhelést a CPU-k között, megpróbálva egyensúlyba hozni a szükséges folyamatok igényeit a különböző CPU-k elérhető ciklusaival. Az aszimmetrikus operációs rendszerek egy CPU-t használnak saját igényeikhez, és az alkalmazási folyamatokat felosztják a többi CPU között. A szimmetrikus operációs rendszerek megosztják magukat a különféle CPU-k között, kiegyensúlyozva a keresletet a CPU elérhetőségével, még akkor is, ha maga az operációs rendszer fut.