سوال در مورد Light Wieght Process - نسخهی قابل چاپ |
سوال در مورد Light Wieght Process - armin_b00ter - 14 مهر ۱۳۹۱ ۰۵:۱۴ ب.ظ
سلام دوستان. یه سوال واسم پیش اومد. تو کتاب آقای حقیقت گفته شده که lwp ها تو فضای هسته هستن ولی من چون این قضیه قبلا یه جور دیگه تو ذهنم بود wiki چک کردم دیدم زده که تو فضای کاربر هستن. حالا بالاخره تکلیف چیه ؟؟؟؟ الان خودم به این نتیجه رسیدم که حقیقت اشتباه گفته. lwp معمولا با چند نخ سطح کاربر و تنها یک نخ سطح هسته در ارتباطه. اگه lwp تو فضای آدرس هسته باشه نمی تونه از مزیت context switch سری فضای آدرس کاربر استفاده کنه و باز میشه همون نخ سطح هسته. |
RE: سوال در مورد Light Wieght Process - mp1368 - 14 مهر ۱۳۹۱ ۰۵:۴۲ ب.ظ
سلام . ببین اول این رو توجه داشته باش که خوده آقای حقیقت هم اشاره کرده که کلا خیلی ها همون نخ ها رو حالا از هر نوعی که باشن lwp حساب می کنن. ببین تو WIKI این تفکیک رو انجام داده یا نه . حالا تو به این توجه داشته باش که کلا دلیل ایجاد مولفه ای ترکیبی دو سطح چیه. همون طوری که توی کتاب گفته برای حل مشکلاتی هست که نخ های سطح کاربر دارن و اون محدودیت هاشون که باعث بروز مشکلات میشه. حالا به نظرت اگه این lwp ها هم توی سطح کاربر باشن می تونن مشکلات رو برطرف کنه یا نه. اگه مبهم بود بگو بیشتر با هم روشون بحث کنیم |
سوال در مورد Light Wieght Process - armin_b00ter - 14 مهر ۱۳۹۱ ۰۵:۵۲ ب.ظ
(۱۴ مهر ۱۳۹۱ ۰۵:۴۲ ب.ظ)mp1368 نوشته شده توسط: سلام . درسته اول گفته که دسته بندی اونجوریم میشه ولی بعدش کاملا بحث رو همین قضیه است. دقیقا به نظرم اگه تو سطح کاربر باشن این مشکل حل میشه. اگه یه نگاهی به این بحث تو solaris بکنی این قضیه کاملا روشنه. فک کنم تو stallings در مورد solaris کامل توضیح داده یادمه قبلا خونده بودمش. و اون دسته بندی که گفتی تو wiki انجام شده و گفته شده بعضی ها تو سیستم هایی که لایه دیگه ای بین نخ های هسته و کاربر نیست به نخ های هسته می گن lwp. ولی تو کتاب یه عکس هست که طرح ترکیبی رو نشون میده ولی lwp هارو تو فضای هسته در نظر گرفته!!! |
RE: سوال در مورد Light Wieght Process - mp1368 - 14 مهر ۱۳۹۱ ۰۶:۰۰ ب.ظ
(۱۴ مهر ۱۳۹۱ ۰۵:۵۲ ب.ظ)armin_b00ter نوشته شده توسط: درسته اول گفته که دسته بندی اونجوریم میشه ولی بعدش کاملا بحث رو همین قضیه است. دقیقا به نظرم اگه تو سطح کاربر باشن این مشکل حل میشه. اگه یه نگاهی به این بحث تو solaris بکنی این قضیه کاملا روشنه. فک کنم تو stallings در مورد solaris کامل توضیح داده یادمه قبلا خونده بودمش. و اون دسته بندی که گفتی تو wiki انجام شده و گفته شده بعضی ها تو سیستم هایی که لایه دیگه ای بین نخ های هسته و کاربر نیست به نخ های هسته می گن lwp. ولی تو کتاب یه عکس هست که طرح ترکیبی رو نشون میده ولی lwp هارو تو فضای هسته در نظر گرفته!!! حالا دو تا نکته اینجا وجود داره : ۱/ توی کتاب پریسیما اگه داری ببین دقیقا همین شکل هست که lwp ها رو دوبخشی کشیده توی دو تا فضا. ۲/ به نظر خودت اصلا به گفته ی کتاب توجه نکنیم. اون راه حل هایی رو که توی بحث های بعدی در مورد نخ ها حقیقت گفته آیا به نظرت می تونن توی فضای کاربر اجرا بشن. مثلا همون راه حلی که واسه مشکل در مسدود شدن یه نخ و اثرش بر بقیه نخ ها. اگه نخ ها نتونن توی فضای هسته وجود داشته باشن که این کار رو هم همون LWP سبک انجام میده چطور باید مشکل رو برطرف کرد . اینجا که دیگه سیستم عامل نمیتونه دخالت کنه . (طبق گفته ی کتاب خوده سیستم عاملم یه برنامه هاست که فرآینداش توی فضای هسته هستن و باید یه فرآیند توی فضای هسته باشه تا درش دخالت داشته باشه) |
سوال در مورد Light Wieght Process - armin_b00ter - 14 مهر ۱۳۹۱ ۰۶:۱۸ ب.ظ
(۱۴ مهر ۱۳۹۱ ۰۶:۰۰ ب.ظ)mp1368 نوشته شده توسط: ۲/ به نظر خودت اصلا به گفته ی کتاب توجه نکنیم. اون راه حل هایی رو که توی بحث های بعدی در مورد نخ ها حقیقت گفته آیا به نظرت می تونن توی فضای کاربر اجرا بشن. مثلا همون راه حلی که واسه مشکل در مسدود شدن یه نخ و اثرش بر بقیه نخ ها.بله می تونن.چون هر process از چند lwp تشکیل میشه و هر lwp میتونه با چند نخ کاربر در ارتباط باشه.بنابراین وقتی که یه نخ بخواد باعث مسدود شدن بشه lwp میتونه بقیه نخ های مربوط به خودشو اجرا کنه یا کلا یه lwp دیگه اجرا بشه که این قضیه با توجه به اینکه هر lwp با یه نخ سطح هسته در ارتباطه کاملا شدنیه و باعث مسدود شدن کل process نمیشه. (۱۴ مهر ۱۳۹۱ ۰۶:۰۰ ب.ظ)mp1368 نوشته شده توسط: اگه نخ ها نتونن توی فضای هسته وجود داشته باشن که این کار رو هم همون LWP سبک انجام میده چطور باید مشکل رو برطرف کرد . اینجا که دیگه سیستم عامل نمیتونه دخالت کنه . (طبق گفته ی کتاب خوده سیستم عاملم یه برنامه هاست که فرآینداش توی فضای هسته هستن و باید یه فرآیند توی فضای هسته باشه تا درش دخالت داشته باشه)این قسمت از حرفتو اصلا متوجه نشدم. کدوم مشکل رو باید برطرف کرد ؟؟؟ |
RE: سوال در مورد Light Wieght Process - mp1368 - 14 مهر ۱۳۹۱ ۰۶:۵۰ ب.ظ
(۱۴ مهر ۱۳۹۱ ۰۶:۱۸ ب.ظ)armin_b00ter نوشته شده توسط: بله می تونن.چون هر process از چند lwp تشکیل میشه و هر lwp میتونه با چند نخ کاربر در ارتباط باشه.بنابراین وقتی که یه نخ بخواد باعث مسدود شدن بشه lwp میتونه بقیه نخ های مربوط به خودشو اجرا کنه یا کلا یه lwp دیگه اجرا بشه که این قضیه با توجه به اینکه هر lwp با یه نخ سطح هسته در ارتباطه کاملا شدنیه و باعث مسدود شدن کل process نمیشه. خوب عزیز دمت گرم دیگه خودت داری میگی. ما چند lwp داریم که هر کدام حاوی بسته نخ خود هستن و همچنین هر lwp برای رفع مشکلات نخ های خود در فضای هسته قرار دارد. که با lwp دیگر نیز در ارتباط هست . حالا ابهام کجاهه؟ |
سوال در مورد Light Wieght Process - armin_b00ter - 14 مهر ۱۳۹۱ ۰۷:۴۴ ب.ظ
خب مشکل اینجاس که واسه switch شدن Lwp ها در هر صورت باید به فضای هسته بریم. ولی برای switch شدن روی نخ ها توی lwp نیازی نیست که به فضای هسته بریم و این کار می تونه در فضای کاربر انجام بشه. بنابراین نیازی نیست که lwp توی فضای هسته تعریف بشه.و تعریف کردن اون تو فضای کاربر تا حدی overhead رو کاهش میده. و اگه بخوایم lwp رو هم به فضای هسته ببریم دیگه فرقی با نخ های سطح هسته پیدا نمی کنه. |
RE: سوال در مورد Light Wieght Process - mp1368 - 14 مهر ۱۳۹۱ ۰۸:۱۱ ب.ظ
(۱۴ مهر ۱۳۹۱ ۰۷:۴۴ ب.ظ)armin_b00ter نوشته شده توسط: خب مشکل اینجاس که واسه switch شدن Lwp ها در هر صورت باید به فضای هسته بریم. ولی برای switch شدن روی نخ ها توی lwp نیازی نیست که به فضای هسته بریم و این کار می تونه در فضای کاربر انجام بشه. بنابراین نیازی نیست که lwp توی فضای هسته تعریف بشه.و تعریف کردن اون تو فضای کاربر تا حدی overhead رو کاهش میده. و اگه بخوایم lwp رو هم به فضای هسته ببریم دیگه فرقی با نخ های سطح هسته پیدا نمی کنه. آها نه دیگه جانم مشکل همین جاست. ما اومدیم نخ ها رو به صورت بسته ای در فضای کاربر تعریف کردیم که سرعت کار بالا بره تا اینجا که شکی نیست این کار اگه انجام بشه راندمان بالا میره نه ؟ حالا بعد از این عمل یکسری مشکلات برای مدیریت نخ ها وجود داره از جمله همون مشکل مسدود شدن یکیشون که قبلا باهم توافق کردیم. حالا چون این نخ ها محدودیت دارند و با سیستم عامل هم ارتباطه ضعیفی دارن پس نمیتون به خودی خود مشکل رو حل کنن. پس ناگزیر به مراجعه به فضای قویتر هسته هستیم. حالا نه می خوایم این قابلیت سرعت رو توی فضای کاربر از دست بدیم و هم از طرف دیگه می خوایم که مشکلات رو بتونیم حل کنیم. پس بهترین راه حل در اینه که ریشه این نخ ها در فضای هسته باشه که همون LWP کتاب حقیقت میشه (که توی قسمت پایینی شکل کتاب نمایش داده شده ) توی فضای هسته تعریف میشه. پس ما با یه مدیر سطحه هسته و نخ های کاربردی در سطح کاربری به هدفمون می رسیم. فک نمیکنم که تعویض متن LWP تکی ریشه که مدیر بسته نخ هم هست آنقدر زمان رو هم از سیستم بگیره تا زمانی که کل نخ ها در فضای هسته باشن نه ؟ |
سوال در مورد Light Wieght Process - armin_b00ter - 14 مهر ۱۳۹۱ ۰۹:۵۳ ب.ظ
(۱۴ مهر ۱۳۹۱ ۰۸:۱۱ ب.ظ)mp1368 نوشته شده توسط: فک نمیکنم که تعویض متن LWP تکی ریشه که مدیر بسته نخ هم هست آنقدر زمان رو هم از سیستم بگیره تا زمانی که کل نخ ها در فضای هسته باشن نه ؟دوست عزیز اتفاقا زمان گیره چون باید تغییر مد داده بشه نیاز به وقفه هست و ... که خودت می دونی. موضوع اینه که lwp به عنوان واسطی بین نخ های user-level و kernel-level عمل می کنه و هر lwp به یک نخ kernel-level نگاشت میشه و رابطه ی چند به چند با نخ های user-level داره. هدف از به وجود اومدنشم استفاده از مزایای هر دو روشه. از طرفی تو این حالت واحد زمان بندی cpu نخ هست که هر نخ متناظر با یه lwp هم هست. بنابراین وفتی یک نخ user-level بخواد اجرا بشه باید به یه lwp نگاشت بشه.حالا با توجه به اینکه ارتباط بینشون چند به چنده اگه قرار باشه هر بار که یه نخ جدید می خواد به یه lwp نگاشت بشه بریم به فضای آدرس هسته که دیگه چه نیازی به وجود lwp هست ؟؟ یهو نگاشتش می کنیم به نخ kernel-level. اگه یه سرچ کوچیک بزنی می بینی که هیچ جا lwp به این معنی که ما داریم بحث می کنیم رو تو فضای آدرس هسته نمی زاره. بازم ارجاعت می دم به سیستم عامل solaris که جز معدود سیستم عامل هایی که lwp رو پشتیبانی می کنه. |
RE: سوال در مورد Light Wieght Process - mp1368 - 14 مهر ۱۳۹۱ ۱۰:۴۹ ب.ظ
من کلا واسه کارشناسی ناپیوسته و الانم ارشد سه تا کتاب (مهرداد فهیمی – حقیقت – پریسیما آتاماژوری) رو خوندم و استدلالهام هم بر اساس این سه تا کتابه. حالا نمیدونم با کتاب آقای استالینگز یکی هست یا نه ولی میدونم که کتاب حقیقت خلاصه ی همشونه حالا بیشتر تننباوم . حالا ۱/با این استدلالتون که برای نگاشت هر نخ به lwp باید به فضای هسته بریم و این زمانبره موافقم. ولی خوب شما از این جا به بعدشو در نظر بگیرین. ما چرا داریم این overhead رو به سیستم با آوردن lwp تحمیل می کنیم واسه اینکه بعد از این مشکلات زیر رو حل کنیم: الف ) یک فراخوان سیستمی مسدود کننده، کل فرآیند رو بلوکه نخواهد کرد. ب ) یک نقص صفحه، کل فرآیند رو بلوکه نخواهد کرد. حالا به نظر شما با بسته ی نخی که همش توی فضای هسته وجود داره میشه این مشکلات رو حل کرد . اگر بله پس دیگه چرا مفهوم lwp توی این کتاب ها معرفی شده. ۲/راجبه بحث تفاوت زمانی درج و حذف هم من متن صریح کتاب آقای حقیقت رو واستون مینویسم : تنها نقطه ضعف استفاده از lwp در ترکیب با نخ های سطح کاربر این است که همچنان نیاز به ایجاد و حذف lwp ها داریم که به همان اندازه نخ های سطح هسته هزینه بر است. با این وجود ایجاد و حذف lwp ها فقط هر از گاهی لازم است و کاملا توسط سیستم عامل کنترل می شود. |
سوال در مورد Light Wieght Process - armin_b00ter - 14 مهر ۱۳۹۱ ۱۱:۳۶ ب.ظ
(۱۴ مهر ۱۳۹۱ ۱۰:۴۹ ب.ظ)mp1368 نوشته شده توسط: ما چرا داریم این overhead رو به سیستم با آوردن lwp تحمیل می کنیم واسه اینکه بعد از این مشکلات زیر رو حل کنیم:بینید lwp یک tradeoff. یعنی این که می خواد از مزایای هر دو روش استفاده کنه ولی خب یه هزینه های اضافی هم داره ولی در مجموع و به صورت کلی نه به منظور خاص بهینه تر از هر کدوم از اون حالاته. و این مفهوم کمک می کنه ما overhead مربوط به رفتن به فضای هسته رو با استفاده از context switch تو فضای کاربر کم کنیم ( که تو پست قبلی توضیح دادم به چه صورته ). و از طرفی با داشتن چند lwp برای یک process جلوی بلوکه شدن کل process رو بگیریم. این چیزیه ما با استفاده از lwp به دست می یاریم. (۱۴ مهر ۱۳۹۱ ۱۰:۴۹ ب.ظ)mp1368 نوشته شده توسط: تنها نقطه ضعف استفاده از lwp در ترکیب با نخ های سطح کاربر این است که همچنان نیاز به ایجاد و حذف lwp ها داریم که به همان اندازه نخ های سطح هسته هزینه بر است. با این وجود ایجاد و حذف lwp ها فقط هر از گاهی لازم است و کاملا توسط سیستم عامل کنترل می شود.این قضیه هم به خاطر اینه که باید هر lwp به یه نخ kernel-level نگاشت بشه و همون طور که گقته شده تعداد این عملیات کمه.ولی از طرفی نخ های user-level که تو فضای کاربر ایجاد میشن تعدادشون خیلی بیشتره و به همین دلیل تا حد زیادی سرعت کار رو بالا می برن. امیدوارم تونسته باشم قانعت کنم. در ضمن تو کتاب آقای حقیقت کلا نقشی واسه نخ های kernel-level دیده نشده.در حالی نقش مهمی رو ایفا می کنن و یه جورایی lwp رو همون نخ kernel-level در نظر گرفته.در کل به نظرم خواسته مطلبو ساده توضیح بده ولی یه جورایی دچار اشتباه علمی شده!!! |
RE: سوال در مورد Light Wieght Process - mp1368 - 15 مهر ۱۳۹۱ ۱۲:۱۱ ق.ظ
(۱۴ مهر ۱۳۹۱ ۱۱:۳۶ ب.ظ)armin_b00ter نوشته شده توسط: بینید lwp یک tradeoff. یعنی این که می خواد از مزایای هر دو روش استفاده کنه ولی خب یه هزینه های اضافی هم داره ولی در مجموع و به صورت کلی نه به منظور خاص بهینه تر از هر کدوم از اون حالاته. و این مفهوم کمک می کنه ما overhead مربوط به رفتن به فضای هسته رو با استفاده از context switch تو فضای کاربر کم کنیم ( که تو پست قبلی توضیح دادم به چه صورته ). و از طرفی با داشتن چند lwp برای یک process جلوی بلوکه شدن کل process رو بگیریم. این چیزیه ما با استفاده از lwp به دست می یاریم. خوب قربونت دیگه توی این بحث هیچ چیز مبهمی نموند. اگر مونده پس شما صورت سوال رو بهتر توضیح بده |
سوال در مورد Light Wieght Process - armin_b00ter - 15 مهر ۱۳۹۱ ۱۲:۱۸ ق.ظ
نه دیگه چیزی نمونده ایشالا که ازش سوالای خفن بیاد ما هم بزنیم رتبمون خفن شه |
RE: سوال در مورد Light Wieght Process - mp1368 - 15 مهر ۱۳۹۱ ۱۲:۳۰ ق.ظ
(۱۵ مهر ۱۳۹۱ ۱۲:۱۸ ق.ظ)armin_b00ter نوشته شده توسط: نه دیگه چیزی نمونده ایشالا که ازش سوالای خفن بیاد ما هم بزنیم رتبمون خفن شه من که نمیدونم ولی شما حتما خوب میشین چون به صورت جزئی مباحث رو پی میگیرن. و همین که واسه خودتون استدلال دارین توی خوندن خیلی تحسین برانگیزه. همیشه از اینجور آدما خیلی خوشم اومده واسه همین بود دوست داشتم باهاتون بحث داشته باشم. بعدش یه نکته هم بگم که چرا این بحث اینقدر طولانی شد. اینجور مباحث توی سیستم عامل مثل بقیه مباحث یا مثلا بقیه دروس نیست که یه نفر بتونه با یه فرمول آخر سر اثبات نهایی بکنه و این مباحث توی سیستم عامل نیاز به همین بحث های تحلیلی داره . خودت که بهتر می دونی توی تست هاشم مخصوصا سال های اخیر حتی خوده اساتید هم نمیتونن جواب های قطعی بدن نمونش همین آقای حقیقت که روی خیلی از تست ها و جواباشون شک دارن. |
سوال در مورد Light Wieght Process - armin_b00ter - 15 مهر ۱۳۹۱ ۱۲:۴۰ ق.ظ
اره به نظر منم همین طوره. کلا سیستم عامل به نظر من درس شیرینیه و تحلیلی. خوبی اینجور بحثا اینه که این مسائل دیگه همیشه تو ذهن آدم می مونه |