عملية الطفل في الحوسبة هي عملية تم إنشاؤها بواسطة عملية أخرى عملية الأصل(الأب). وتتعلق هذه التقنية بأنظمة التشغيل متعددة المهام ، وتسمى أحيانًا عملية فرعية.
هناك إجراءان رئيسيان لإنشاء عملية الطفل:استدعاء أمر Frok ( متواجد في أنظمة Unix-like و POSIX standard ). والنسل أو التوالد ( متواجد في المعالجات الحديثة لمايكروسوفت ويندوز ، و في بعض أنظمة التشغيل التاريخية).
التاريخ
يعود تاريخ عمليات الطفل إلى أواخر الستينيات ، مع شكل مبكر من (البرمجة المتعددة مع عدد ثابت من المهام) الإصدار الثاني (MFT-II) لنظام التشغيل IBM OS / 360 ، والذي قدم مهمة فرعية (انظر المهمة) .و يعتمد النموذج الحالي في يونكس على مولتكس (1969) ، بينما يعتمد نموذج مايكروسوفت ويندوز NT على VAX / VMS ، من RSX-11 (1972).
عمليات الطفل المنشأة بأمر Fork
ترث عملية الطفل معظم سماتها مثل واصفات الملفات من أصلها ( الأب ). وفي يونكس، يتم إنشاء عملية فرعية عادة كنسخة من الأصل (الأب)، باستخدام Frok. يمكن أن تندمج/تتداخل العملية الفرعية مع برنامج مختلف (باستخدام exec) حسب الحاجة.
كل عملية تنشأ بامكانها انشاء العديد من عمليات الطفل ولكن سيكون لها عملية أصل (أب) واحده، فإذا لم يكن للعملية الطفل عملية أصل (أب) فهذا يشير إلى انه تم انشاؤها مباشرة بواسطة Kernel. في بعض الأنظمة، بما في ذلك أنظمة linux-based تبدأ أول عملية في وقت التشغيل (تسمى init) بواسطة Kernel ولا تنتهي أبدًا (راجع عملية بدء تشغيل Linux) ؛ و يتم انشاء العديد من عمليات الطفل بدون أصل (أب) لتنفيذ مهام خفية مختلفة في مساحة المستخدمين. و أيضا هنالك طريقة أخرى لعملية الطفل تنتهي بدون أصل(أب) إذا مات أصلها (الأب) فتصبح عملية يتيمة و سيتم تبنيها بفترة قصيرة بواسطة init.
إشارة SIGCHLD ترسل من عملية الأصل ( الأب ) إلى عملية الطفل عند خروجها أو مقاطعتها أو استئنافها بعد مقاطعتها و بشكل افتراضي يتم تجاهلها.[1]
عمليات الطفل المنشأة بالنسل
نهاية الحياة
عندما تنتهي عملية الطفل ، يتم إرجاع بعض المعلومات إلى عملية الأصل.
و عندما تنتهي عملية الطفل قبل استدعاء عملية الأصل ( الأب) لأمر- wait- ، يحتفظ - kernel- ببعض المعلومات حول عملية الطفل مثل حالة الخروج لتمكين عملية الأصل (الأب) من استدعاء أمر - wait- في وقت لاحق. و أيضاً تعرف عملية الزومبي بانها عملية الطفل التي لا تزال تستهلك موارد النظام و لا تنفذها. و يتم استدعاء أمر -wait- في معالج SIGCHLD .
POSIX.1-2001 يتيح لعملية الأصل ( الأب ) ان تقترح إلى Kernel ان تحصد عمليات الطفل بشكل تلقائي عند تغيير SIGCHLD to SIG_IGN في الاداره -The disposition-.أو عن طريق وضع علامة SA_NOCLDWAIT لإشارة SIGCHLD. تلتزم Linux 2.6 kernels بهذا السلوك ، ويدعم فري بي إس دي كلا الطريقتين منذ الإصدار 5.0. [4] على كل حال ، بسبب الاختلافات التاريخية بين سلوكيات النظام V و BSD فيما يتعلق بتجاهل SIGCHLD ، يظل استدعاء أمر -wait- هو أكثر نموذج محمول للتنظيف بعد عمليات الطفل.[5]
انظرأيضاً
- exit
- pstree, for UNIX to find the child process (pstree PID, where PID is the process id of the process).
الملاحظات
تستند هذة المقالة على مواد من قاموس الحوسبة المجاني على الانترنت، وهو ترخيص تحت رخصة جنو للوثائق الحرة.
المراجع
-
signal.h
نسخة محفوظة 29 أبريل 2009 على موقع واي باك مشين.