A program egy algoritmust megvalósító utasítások sorozata magas színtű nyelven vagy gépi kódban. A folyamat (task, process) egy éppen végrehajtás alatt álló program. Egy program végrehajtása több folyamatot is létrehozhat. Egy program több különböző folyamatból is állhat. (Például egy levelező program esetén a bejelentkezés az első folyamat, mely létrehozhat egy szerkesztő, majd egy levélküldő folyamatot.) A létrehozó folyamat a szülő (parent process), a létrehozott a gyermekfolyamat (child process). A szülőt általában az operációs rendszer hozza létre.
Multitasking környezetben a processzorok száma általában kevesebb, mint a folyamatoké, így a folyamatok időnként várakozni kényszerülnek. A további folytatáshoz azonban néhány információt tárolni kell róla.
A folyamatleíró blokk (Process Control Block – PCB) azonosítja egyértelműen a folyamatot. Ez tartalmazza a folytatáshoz szükséges adatokat (konkrét tartalma az adott rendszertől függ):
- a folyamat azonosítóját
 - a programszámláló állását
 - a folyamat állapotát
 - a regiszterek tartalmát
 - a folyamathoz tartozó memóriaterületek adatait
 - a használt perifériák, állományok jellemzőit
 
Az eredeti: http://e-oktat.pmmf.hu/folyamatok
A folyamatok és a processzor kapcsolata igen szoros, a folyamatok 
minden utasítását a processzor hajtja végre. Egy folyamat az 
elindításától a befejezéséig folyamatosan igényli a processzor 
közreműködését. Rendszerünkben több folyamat is fut, ezért a precíz 
működés érdekében pontos időzítésre van szükség. A processzor 
kihasználtsági foka (különösen régebben, amikor a hardver igen drága 
volt,) elsőrendű fontossággal bírt, de manapság sem elhanyagolható.A felhasználók szempontjából azonban nem ez a kulcskérdés. A felhasználó akkor érzi jól magát, és akkor elégedett a számítógép működésével, ha az a programjait a lehető legrövidebb idő alatt végrehajtja. A kihasználtság és a sebesség tehát egyaránt fontos, ezért az operációs rendszereknek mindkét feltételt teljesíteniük kell.
Az idővel való gazdálkodást ütemezésnek (scheduling) nevezzük. Az ütemezés során a folyamatok állapota változik meg. Attól függően, hogy milyen állapotok között történik váltás, az ütemező több szintjét definiálhatjuk. (magas szintű ütemező , alacsony szintű ütemező)
Egy folyamat az időzítés szempontjából alapvetően 3 alapállapotot vehet fel, az állapotok között pedig 4 különböző átmenet lehetséges.
- 
Az alapállapotok:
 - Futásra kész (ready): Ebben az állapotban - a processzoron kívül - minden erőforrás a folyamat rendelkezésére áll. A folyamatok, létrejöttüket követően futásra kész állapotba kerülnek.
 - Fut (running): A processzor annak a folyamatnak az utasításait hajtja végre, amelyik ebben az állapotban van.
 - Várakozik (blocked): Ha futó folyamat olyan erőforrást igényel, amelyik pillanatnyilag nem áll rendelkezésre, vagy a további futásához szüksége van egy másik folyamat által szolgáltatandó eredményre, ebbe az állapotba kerül.
 
- 
Az átmenetek:
 - Elindul (dispatch): A központi egység felszabadulása esetén az alacsonyszintű ütemező a futásra kész állapotban lévő folyamatok közül választja ki azt, amelyik a fut állapotba kerülhet.
 - Megszakad (timer runout): Ha a futó folyamat számára biztosított idő lejár, visszakerül a futásra kész állapotba. (Nem mindegyik operációs rendszer teszi lehetővé, hogy egy folyamatot megszakítsunk, ehhez a rendszernek, illetve a folyamatnak megszakíthatónak kell lennie).
 - Vár (wait, block): Amennyiben olyan erőforrásra van szüksége, amely éppen foglalt, a fut állapotból a várakozik állapotba jut.
 - Feléled (awake): A várt esemény bekövetkezése esetén a folyamat futásra kész állapotba kerül és újra beáll a processzorra várakozó folyamatok sorába.
 
Nincsenek megjegyzések:
Megjegyzés küldése