عملية الطفل في الحوسبة هي عملية تم إنشاؤها بواسطة عملية أخرى عملية الأصل (الأب). وتتعلق هذه التقنية بأنظمة التشغيل متعددة المهام، وتسمى أحيانًا عملية فرعية.
هناك إجراءان رئيسيان لإنشاء عملية الطفل:استدعاء أمر Frok (متواجد في أنظمة Unix-like وPOSIX standard). والنسل أو التوالد (متواجد في المعالجات الحديثة لمايكروسوفت ويندوز، وفي بعض أنظمة التشغيل التاريخية).
يعود تاريخ عمليات الطفل إلى أواخر الستينيات، مع شكل مبكر من (البرمجة المتعددة مع عدد ثابت من المهام) الإصدار الثاني (MFT-II) لنظام التشغيل IBM OS / 360، والذي قدم مهمة فرعية (انظر المهمة).و يعتمد النموذج الحالي في يونكس على مولتكس (1969)، بينما يعتمد نموذج مايكروسوفت ويندوز NT على VAX / VMS ، من RSX-11 (1972).
ترث عملية الطفل معظم سماتها مثل واصفات الملفات من أصلها (الأب). وفي يونكس، يتم إنشاء عملية فرعية عادة كنسخة من الأصل (الأب)، باستخدام 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]
تستند هذة المقالة على مواد من قاموس الحوسبة المجاني على الانترنت، وهو ترخيص تحت رخصة جنو للوثائق الحرة.
signal.h
– Base Definitions المرجع، مُوَاصَفَة يونكس الموحدة، الإصدارة 4 من المجموعة المفتوحة (بالإنجليزية: The Single UNIX Specification, Version 4 from The Open Group) "نسخة مؤرشفة". مؤرشف من الأصل في 2009-04-29. اطلع عليه بتاريخ 2018-07-08.{{استشهاد ويب}}
: صيانة الاستشهاد: BOT: original URL status unknown (link)
pstree(1)
: print process trees – قالب:Man/die.net