انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: ommolbanin در 07 آذر 1392، 12:46 بظ
-
سلام
دوستان کسی تفاوت()forkرو با()vforkرو میدونه؟؟؟؟؟ :?:
-
سلام تابع فورک یا تابع ایجاد بچه برای سوکت پروگرامینگ استفاده می شه که تو یونیکس های بی اس دی استفاده میشدن و تو توابع سوکت پروگرامینگ و ارتباط با سوکت استفاده می شد
و vfork برای استفاده توابع فورک تو ویرچوال ومجازی سازی استفاده میشه
تا همین قدر می دونم از بچه های برنامه نویس اگر کسی می دونه کامل تر کنه
موفق باشید
-
نه fork و نه vfork ربطی به سوکتپروگرامینگ یا مجازیسازی ندارند.
vfork رو میتونید فراموش کنید، نباید ازش استفاده بشه. اگر با این وجود دوست دارید بیشتر بدونید: لینک (http://tldp.org/HOWTO/Secure-Programs-HOWTO/avoid-vfork.html)
-
تفاوتشونو درست متوجه نشدم اگه میشه بیشتر توضیح بدین(انگلیسیشو درست متوجه نشدم)
مرسی
-
ببخشید
من قبلا که با فری بی اس دی کار می کردم برای کار با سوکت پروگرامینگ بایدتابع فورک یا بچه زا رو صدا می کردم نمی دونم درست بود یا نه ولی تو چند تا کتاب هم نوشته بود که برای ایجاد پروسس های بچه زا در سیستم عامل های سری بی اس دی از تابع فورک استفاده می کنن
اگر شما از لینوکس استفاده می کنید نباید از تابع vfork استفاده کنید چون این موضوع در کرنل لینوکس اسیب پذیره ولی رو سیستم عاملهای سری بی اس دی میتونید استفاده کنید چون تابعش بهینه شده چیزی بود که از متن فهمیدم ...
موفق باشید
-
الان بر اساس چیزایی که از این دو تابع متوجه شدم,همfork و هم vfork پروسه فرزند رو تولید می کنند اما در تابع vforkوقتی پروسه فرزند تولید شد پروسه پدر بلاک می شه.اما سوالی که الان برام پیش اومده تابع وقتی قراره پروسه پدر رو بلاک کنه پس کاربردش چیه؟میشه آسیب هاشو بگید؟ :?:
ممنون
-
بهتره بگید برای چه چیزی یا کاری میخواید تا بیشتر راهنماییتون کنیم
در فورک میشه همزمان دو تا پروسسی که تولید میشه با هم کار کنن اما تابع وی فورک پروسس قبلی رو استاپ میکنه و خودش کار میکنه و وفتی هم که کارش تموم میشه باید یه جورایی حتما اگزیت بشه و مشکلشم همینه که بر نمیگرده سمت پروسسی که صداش کرده
حالا ممکنه شمایه پروسس سیستمی رو با وی فورک صدا کرده باشید که به مشکل بر میخورید البته تو لینوکس اینجوریه..
موفق باشید
-
برای سوکتپروگرامینگ میشه از fork استفاده کرد، میشه از pthread استفاده کرد یا از روشهای دیگه، ولی خوب این باعث نمیشه که بگیم fork یا pthread برای سوکتپروگرامینگ هستند. از هر دو روش در جاهای بسیار زیادی استفاده میشه که اصلا ربطی به سوکتپروگرامینگ نداره.
چه توی گنو-لینوکس و چه توی بیاسدی، به دلیل بهبودها و اصلاحاتی که انجام شده، دیگه کسی از vfork استفاده نمیکنه. دلیلی که قدیم از vfork استفاده میشده این بوده که vfork کل فضای حافظه رو کپی نمیکنه، در نتیجه مصرف حافظه کمتری داشته و میتونسته سریعتر باشه.