0 امتیاز
قبل در کامپیوتر و اینترنت توسط (1.1هزار امتیاز)
تفاوت fork و exec برای ایجاد فرآیند در سیستم عامل های Unix-like چیست؟

1 پاسخ

+2 امتیاز
قبل توسط (190 امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ
ببینید این مستقیم بر می کرده به نحوه عملکرد کرنل لینوکس و یا به طور کلی هر سیستم عامل بر پایه POSIX و اما جواب سوال شما در سیستم لینوکس یک برنامه اجازه مستقیما بارگذاری شدن بر روی حافظه و اجرا نداره و باید از طریق یک برنامه دیگر به اجرا در بیاد و پایه ای ترین برنامه در سیستم عامل بعد از خود کرنل . shell i هست. این مقدمه رو گفتم که بهتر درک کنید چرا دو تابع وجود داره در لینوکس. ۱- fork : این تابع سیستمی از برنامه درحال اجرا به طور کامل یعنی کل بلوک کنترلی برنامه در حافظه یک کپی دیگه ایجاد می کنه بعنی بعد از اجرا این تابع شما دو برنامه یک سان خواهید داشت که یکی والد و دیگری فرزند هستند ولی به جز در شناسه پروسه با هم هیچ تفاوتی ندارند. ۲- exec : حالا که .دو برنامه داریم بعد از فرک فرزند میاد درون خودش با فراخوانی دستور سیستمی exec محتویات بلوک کنترلی خودش رو که در حافظه هست با محتوایات برنامه ای که قرار هست اجرا شه تعویض می کنه به این ترتیب فرایند جدید ایجاد می شه.
قبل توسط (1.1هزار امتیاز)
جواب بسیار خوبی بود. توضیح تکمیلی اینکه در exec رابطه پدر فرزندی وجود ندارد و یک فرایند جدید کاملا مستقل ایجاد می شود.

سوالات مشابه

+1 امتیاز
1 پاسخ 1.9هزار بازدید
+2 امتیاز
1 پاسخ 2.8هزار بازدید
0 امتیاز
0 پاسخ 649 بازدید
0 امتیاز
1 پاسخ 517 بازدید
+2 امتیاز
1 پاسخ 2.0هزار بازدید
0 امتیاز
0 پاسخ 354 بازدید
...