„Folyamat (számítástechnika)” változatai közötti eltérés
[ellenőrzött változat] | [ellenőrzött változat] |
Tartalom törölve Tartalom hozzáadva
aNincs szerkesztési összefoglaló |
aNincs szerkesztési összefoglaló |
||
1. sor:
[[Fájl:Htop.png|jobbra|bélyegkép|400x400px|A [[htop]] által megjelenített folyamatok listája]]
A számítástechnikában a '''folyamat''' egy [[Program (informatika)|számítógépes program]] [[Példány (számítógépes programozás)|példánya]],
Míg a számítógépes program passzív [[Utasítás (informatika)|utasítások]] gyűjteménye, addig a folyamat ezen utasítások tényleges végrehajtása. Több folyamat társítható ugyanahhoz a programhoz; például ugyanazon program több példányának megnyitása gyakran egynél több folyamat végrehajtását eredményezi.
A [[többfeladatosság]] olyan módszer,
A többfeladatosság általános formáját a processzor az [[időosztás]] által biztosítja, mely egy módszer a felhasználói folyamatok és szálak, sőt a független kernelfeladatok végrehajtásának összeillesztésére – bár ez utóbbi funkció csak olyan preemptív [[Rendszermag|kerneleken]] valósítható meg, mint például a [[Linux (rendszermag)|Linux]]. A preempciónak fontos mellékhatása van az interaktív folyamatok számára,
A biztonság és a megbízhatóság érdekében a legtöbb modern [[operációs rendszer]] megakadályozza a független folyamatok közötti közvetlen [[folyamatok közötti kommunikáció|kommunikációt]], szigorúan közvetített és ellenőrzött folyamatok közötti kommunikációs funkciókat biztosítva.
18. sor:
* Egy programhoz társított végrehajtható [[gépi kód]] ''képe''.
* Memória (általában a [[virtuális memória]] valamilyen régiója);
* A folyamathoz hozzárendelt erőforrások operációsrendszer-leírói, például [[fájlleíró]]k ([[Unix]] terminológia) vagy [[Handle (számítástechnika)|fogantyúk]] ([[Windows]]), valamint adatforrások és összefoglalók.
* [[Számítógépes biztonság|Biztonsági]] attribútumok, például a folyamat tulajdonosa és a folyamat engedélyei (megengedett műveletei).
* A [[Central processing unit|processzor]] állapota ([[Kontextus (számítástechnika)|kontextus]]), például a [[Regiszter (számítástechnika)|regiszterek]] tartalma és fizikai memóriacímzése. Az ''állapotot'' általában számítógépes regiszterekben tárolják, amikor a folyamat végrehajtódik, egyébként pedig a memóriában.<ref name="OSC Chap4" />
Az operációs rendszer az aktív folyamatokkal kapcsolatos információk nagy részét [[folyamatvezérlő blokk]]oknak nevezett adatszerkezetekben tárolja. Bármilyen részhalmaza az erőforrásoknak, jellemzően legalább a processzor állapota, összefüggésben lehet minden folyamat szálaival olyan operációs rendszerek esetében,
Az operációs rendszer elválasztja a folyamatokat, és elosztja a szükséges erőforrásokat, hogy azok kevésbé zavarják egymást, és ezzel rendszerhibákat okozzanak (pl. [[holtpont]] vagy [[Thrashing (számítástechnika)|cséplés]]). Az operációs rendszer mechanizmusokat is biztosíthat a [[folyamatok közötti kommunikáció]]hoz, lehetővé téve a folyamatok biztonságos és kiszámítható módon történő kölcsönhatását.
31. sor:
A [[Többfeladatosság|többfeladatos]] [[operációs rendszer]] tud váltani a folyamatok között, így úgy tűnhet, mintha a folyamatokat egyidejűleg (azaz [[Párhuzamos számítástechnika|párhuzamosan]]) [[Végrehajtás (számítástechnika)|hajtaná végre]], de valójában csak egy folyamatot tud végrehajtani egy időben egyetlen [[Central processing unit|processzoron]] (kivéve, ha a processzor több maggal rendelkezik, akkor [[többszálú utasításvégrehajtás]]t vagy más hasonló technológiákat lehet használni).{{jegyzet* |megj=Néhány modern processzor két vagy több független processzort egyesít [[Többmagos processzor|többmagos]] konfigurációban, és több folyamatot is végrehajthat egyszerre. Egy másik módszer, amelyet [[Simultaneous multithreading|egyidejű többszálú utasításvégrehajtásnak]] hívnak (az [[Intel]] [[HyperThreading|Hyper-Threading]] technológiájában használják), szimulálhatja több folyamat vagy szál egyidejű végrehajtását.}}
Általában egy folyamatot egy főprogramhoz társítunk, a ''gyermek (child)'' folyamatokat pedig minden mellékághoz, párhuzamos folyamathoz,
A folyamatokat gyakran „feladatoknak” nevezik a [[Beágyazott rendszer|beágyazott]] operációs rendszerekben. A „folyamat” (vagy feladat) jelentése „valami, ami időt vesz igénybe”, szemben a „memóriával”,
A fenti leírás vonatkozik mind az operációs rendszer által kezelt folyamatokra, mind azokra a folyamatokra,
Ha egy folyamat valami olyat kér,
=== Folyamatállapotok ===
43. sor:
[[Fájl:Process_states.svg|jobbra|bélyegkép|300x300px|A különböző folyamatállapotok az állapotdiagramban megjelenítve, nyilakkal jelölve az állapotok közötti lehetséges átmeneteket]]
Egy operációs rendszer [[rendszermag]]jának,
* Először, a folyamatot „létrehozzuk” egy [[Memória (számítástechnika)#Elsődleges, másodlagos és harmadlagos memória|másodlagos tárolóeszközről]] ([[Merevlemez|merevlemez-meghajtó]], [[CD-ROM]] stb.) a [[Memória (számítástechnika)#Elsődleges, másodlagos és harmadlagos memória|főmemóriába]] töltéssel. Ezután a [[Ütemezés (számítástechnika)|folyamatütemező]] hozzárendeli a „várakozó” állapotot.
52. sor:
== Folyamatok közötti kommunikáció ==
Amikor a folyamatoknak kommunikálniuk kell egymással, meg kell osztaniuk a [[Címtér|címterük]] egy részét vagy más folyamatok közötti kommunikációt (IPC) kell használniuk. Például egy héjfutószalagon ''(shell pipeline)'' az első folyamat kimenetének el kell jutnia a másodikhoz és így tovább; egy másik példa egy olyan feladat,
Lehetséges, hogy két vagy több folyamat különböző gépeken fut,
== Előzmények ==
60. sor:
Az 1960-as évek elején a számítógépes vezérlőszoftver a [[monitorvezérlő szoftver]]ekről, például az [[IBM 7090/94 IBSYS|IBSYS]], a [[végrehajtóvezérlő-szoftver]]ekké fejlődött. Az idő múlásával a számítógépek gyorsabban fejlődtek, miközben a [[Időosztás|számítógépes idő]] még mindig nem volt olcsó és nem volt teljes mértékben kihasználva; egy ilyen környezet lehetővé és szükségessé tette a [[Többfeladatosság|multiprogramozást]]. A multiprogramozás azt jelenti, hogy több program fut [[Egyidejűség (számítástechnika)|egyidejűleg]]. Eleinte egynél több program futott egy processzoron az [[Egyprocesszoros rendszer|egyprocesszoros]] számítógép-architektúra eredményeként, és szűkös és korlátozott hardver-erőforrásokon osztoztak; következésképpen az egyidejűség ''soros'' jellegű volt. A későbbi [[Többprocesszoros feldolgozás|többprocesszoros rendszereken]] egyszerre több program futhat ''[[Párhuzamos számítástechnika|párhuzamosan]]''.
A programok utasításokat tartalmaznak a processzorok számára. Egy processzor egyszerre csak egy utasítást futtathat: lehetetlen több program futtatása egyszerre. Előfordulhat, hogy egy programnak valamilyen [[Rendszererőforrás|erőforrásra]], például bemeneti eszközre van szüksége,
Röviddel ezután a „program” fogalmát kibővítették a „végrehajtó program és annak összefüggései” fogalmára. Megszületett egy folyamat koncepciója,
== Megjegyzések ==
|