فرایند فرزند: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
FreshmanBot (بحث | مشارکتها) |
FreshmanBot (بحث | مشارکتها) جز ←top: اصلاح فاصله مجازی + اصلاح نویسه با ویرایشگر خودکار فارسی |
||
خط ۱:
در [[رایانش]]، '''فرایند فرزند''' به [[فرایند (علوم رایانه)|فرایندی]] گفته میشود که توسط [[فرایند والد|یک فرایند دیگر]]
یک فرایند فرزند، بسیاری از خصوصیاتش را از فرایند والد به ارث میبرد. از جمله این خصوصیات که از فرایند والد به فرایند فرزند به ارث میرسند میتوان به [[توصیفگر پرونده|توصیفگرهای پرونده]] اشاره کرد. در [[سیستمعامل]] [[یونیکس]] و سیستمعاملهای سازگار با استاندارد [[پازیکس]]، یک فرایند فرزند معمولاً به صورت یک کپی از فرایند والد و با استفاده از یک [[فراخوان سیستمی]] به نام [[fork (فراخوان سیستمی)|fork(){{چر}}]] ایجاد میشود. در مرحله بعد، فرایند فرزند میتواند خودش را با یک برنامه دلخواه جایگزین کند. این کار با استفاده از فراخوان سیستمی [[exec]] صورت میگیرد.
هر فرایند میتواند به تعداد دلخواهی فرایند فرزند ایجاد کند (تا وقتی که محدودیت سیستمی اجازه دهد). همچنین فرایندهای فرزند هم میتوانند به نوبه خود فرایندهای فرزند دیگری ایجاد کنند. به این ترتیب یک ساختار [[درخت (ساختار داده)|درختی]] از فرایندها در سیستم ایجاد خواهد شد. اما هر فرایند تنها و تنها میتواند ''یک'' فرایند والد داشته باشد. اگر فرایندی، والد نداشته باشد، معمولاً به این معنی خواهد بود که فرایند مورد نظر مستقیما توسط [[هسته سیستمعامل]] ایجاد شدهاست. در بیشتر سیستمعاملها، از جمله [[لینوکس]] و [[بیاسدی]]، اولین فرایند در هنگام بوت شدن سیستم توسط هسته
وقتی که اجرای یک فرایند فرزند خاتمه مییابد، دچار وقفه شود یا اینکه پس از وقفه اجرای آن ادامه یابد، یک سیگنال SIGCHLD به والدش ارسال خواهد شد. اگر فرایند والد این سیگنال را اداره نکند، به شکل پیشفرض سیگنال نادیده گرفته خواهد شد. <ref>{{man|7|signal||overview of signals}}</ref>
|