فرایند فرزند: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
بدون خلاصۀ ویرایش |
FreshmanBot (بحث | مشارکتها) |
||
خط ۱:
در [[رایانش]]، '''فرایند فرزند''' به [[فرایند (علوم رایانه)|فرایندی]] گفته میشود که توسط [[فرایند والد|یک فرایند دیگر]] بوجود آمده باشد.
یک فرایند فرزند، بسیاری از خصوصیاتش را از فرایند والد به ارث میبرد. از جمله این خصوصیات که از فرایند والد به فرایند فرزند به ارث میرسند میتوان به [[توصیفگر پرونده|توصیفگرهای پرونده]] اشاره کرد. در [[سیستمعامل]] [[یونیکس]] و سیستمعاملهای سازگار با استاندارد [[پازیکس]]، یک فرایند فرزند
هر فرایند میتواند به تعداد دلخواهی فرایند فرزند ایجاد کند (تا وقتی که محدودیت سیستمی اجازه دهد). همچنین فرایندهای فرزند هم میتوانند به نوبه خود فرایندهای فرزند دیگری ایجاد کنند. به این ترتیب یک ساختار [[درخت (ساختار داده)|درختی]] از فرایندها در سیستم ایجاد خواهد شد. اما هر فرایند تنها و تنها میتواند ''یک'' فرایند والد داشته باشد. اگر فرایندی، والد نداشته باشد،
وقتی که اجرای یک فرایند فرزند خاتمه مییابد، دچار وقفه شود یا اینکه پس از وقفه اجرای آن ادامه یابد، یک سیگنال SIGCHLD به والدش ارسال خواهد شد. اگر فرایند والد این سیگنال را اداره نکند، به شکل پیشفرض سیگنال نادیده گرفته خواهد شد. <ref>{{man|7|signal||overview of signals}}</ref>
وقتی که فرایند فرزندی، قبل از اینکه والدش [[wait]] را اجرا کند، خاتمه یابد، هسته برخی از اطلاعات مربوط به فرایند فرزند را حفظ میکند، از جمله [[وضعیت خروج]] فرایند فرزند خاتمه یافته را. این کار به این منظور صورت میگیرد که والد بعدا بتواند wait(){{چر}} را اجرا کند<ref name="man2wait">{{man|2|wait||wait for process to change state}}</ref> و آن اطلاعات حفظ شده را بدست آورد و بر طبق
== منابع ==
|