Tėvinis procesas
Šiam straipsniui ar jo daliai trūksta išnašų į patikimus šaltinius. Jūs galite padėti Vikipedijai pridėdami tinkamas išnašas su šaltiniais. |
Šio puslapio ar jo dalies stilius neatitinka Vikipedijos kalbos standartų. Jei galite, pakoreguokite stilių, kad tiktų enciklopedijai. Tik tada bus galima ištrinti šį pranešimą. |
Tėvinis procesas yra kompiuterinis procesas, kuris sukūrė vieną ar daugiau vaikų procesų.
Operacinėse sistemose su hierarchine procesų organizacija (pvz., UNIX, Linux), kiekvienas procesas, išskyrus nulinį procesą (kintamasis) yra sukuriamas, kai kitas procesas atlieka „fork“ sistemos komandą (angl. system call). Procesas, kuris iššaukia „fork“ komandą, yra tėvinis procesas, o naujai sukurtas procesas vadinamas vaiko procesu (angl. child process). Kiekvienas procesas (išskyrus nulinį procesą) turi tik vieną tėvinį procesą, bet gali turėti daug vaikų procesų.
Branduolys identifikuoja kiekvieną procesą pagal jo identifikatorių (PID) (angl. process identifier). Nulinis procesas yra ypatingas procesas, kuris yra sukuriamas sistemos užkrovimo metu; po vaiko proceso išsišakojimo (1 procesas), nulinis procesas tampa kintamuoju procesu. Pirmasis procesas, žinomas kaip pirminis (angl. init), yra kiekvieno kito proceso sistemoje protėvis.
Vaiko procesas baigia darbą, iškviesdamas sistemines komandas:
- exit (angl. exit system call) – jeigu sėkmingai baigė darbą;
- dėl klaidos, sugeneruodamas lemtingą pabaigos klaidą (angl. fatal execution error);
- gavęs darbo pabaigos signalą. Darbo pabaigos būdas grąžinamas operacinei sistemai.
Tėvinis procesas yra informuojamas apie jo vaiko proceso nutraukimą per SIGCHLD (SIGCHILD – vaiko proceso signalas) signalą. Tėvinis procesas gauna vaiko proceso išėjimo būseną, iškviesdamas „wait“ sistemos komandą. Tačiau, jei tėvinis procesas to neatlieka, vaiko procesas tampa mirusiu procesu (angl. zombie process).