„Folyamat (számítástechnika)” változatai közötti eltérés

[nem ellenőrzött változat][nem ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
aNincs szerkesztési összefoglaló
aNincs szerkesztési összefoglaló
17. 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); amely magában foglalja a végrehajtható kódot, a folyamat specifikus adatokat (bemeneti és kimeneti), egy [[Hívási verem|hívási vermet]] (az aktív [[Függvény (programozás)|alprogramok]] és/vagy egyéb események nyomon követéséhez) és egy halom a futási idő során generált közbenső számítási adatot.
* A folyamathoz hozzárendelt erőforrások operációs rendszer leírói, például [[Fájlleíró|fájlleírók]] ([[Unix]] terminológia) vagy [[Fogantyú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ória címzésememó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|folyamatvezérlő blokkoknak]] 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, amelyek támogatják a [[Szál (programozás)|szálakat]] vagy a ''gyermek'' (''(child)'') folyamatokat.
 
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 [[CséplésThrashing (számítástechnika)|cséplés]]). Az operációs rendszer mechanizmusokat is biztosíthat a [[Folyamatok közötti kommunikáció|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.
 
== Többfeladatosság és folyamatkezelés ==
34. sor:
A fenti leírás vonatkozik mind az operációs rendszer által kezelt folyamatokra, mind azokra a folyamatokra, amelyeket [[folyamatkalkulus]] határoz meg.
 
Ha egy folyamat valami olyat kér, amelyre várnia kell, akkor blokkolva lesz. Ha a folyamat [[Folyamatállapot|blokkolt állapotban]] van, akkor lemezre cserélhető, de ez transzparens egy [[virtuális memória]] rendszerben, ahol a folyamat memória régiói valóban a lemezen vannak és nem a [[Memória (számítástechnika)#Elsődleges, másodlagos és harmadlagos memória|főmemóriában]]. Vegye figyelembe, hogy akár az aktív folyamatok/feladatok (végrehajtó programprogramok) is cserélhetőek lemezre, ha az utóbbi időben nem használták őket. ANem kell a végrehajtó program és annak összes részének nem kell a fizikai memóriában lennie, hogy a társított folyamat aktív legyen.
 
=== Folyamatállapotok ===
43. sor:
* Amíg a folyamat „várakozó” állapotban van, addig az [[Ütemezés (számítástechnika)|ütemező]] elvégzi az úgynevezett [[Kontextusváltás|kontextusváltást]]. A kontextusváltás betölti a folyamatot a processzorba, és az állapotot „futóra” változtatja, miközben az előzőleg „futó” folyamat „várakozó” állapotban van tárolva.
* Ha a „futó” állapotban levő folyamatnak meg kell várnia egy erőforrást (például várnia kell a felhasználói bemenetre vagy egy fájl megnyitására), akkor „blokkolt” állapotba kerül. A folyamat állapota visszaáll „várakozásra” amikor a folyamatnak már nem kell várnia (blokkolt állapotban).
* Amint a folyamat befejezi a végrehajtást, vagy az operációs rendszer leállítja, nincsen már rá szükség. A folyamat azonnal eltávolításra vagy „befejezett” állapotba kerül. Eltávolításkor csak arra vár, hogy eltávolítsák a főmemóriából.<ref name="OSC Chap4" /><ref name="Stallings">{{cite book |last=Stallings |first=William |title=Operating Systems: internals and design principles |edition=5th |date=2005 |publisher=Prentice Hall |isbn=0-13-127837-1}} (particularly chapter 3, section 3.2, "process states", including figure 3.9 "process state transition with suspend states")</ref>
 
== Folyamatok közötti kommunikáció ==
55. sor:
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, amely nagy késleltetéssel rendelkezik vagy egy program lassú műveletet indíthat, például kimenetet küldhet egy nyomtatóra. Ez azt eredményezné, hogy a processzor kihasználatlan marad („üresjárat”). Annak érdekében, hogy a processzor mindig el legyen foglalva, egy ilyen program végrehajtását leállítják, és az operációs rendszer átváltja a processzort egy másik program futtatására. A felhasználó számára úgy tűnik, hogy a programok egyszerre futnak (innen a „párhuzamos” kifejezés).
 
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, amely az [[Újrahívhatóság (számítástechnika)|újrahívható kód]] feltalálásával szükségessé vált. A [[Szál (programozás)|szálak]] valamivel később jöttek. Azonban az olyan fogalmak megjelenésével, mint az [[időosztás]], a [[Számítógép-hálózat|számítógépes hálózatok]] és a többprocesszoros [[megosztottközös memória]] számítógépek, a régi „multiprogramozás” helyet adott a valódi [[többfeladatosság]] ''(multitasking)'', a többfolyamatos ''(multiprocessing)'' és később a [[Többszálú utasításvégrehajtás|többszálú]] utasításvégrehajtás ''(multithreading)'' számára.
 
== Jegyzetek ==