تالار گفتمان مانشت
کوبیدگی - بخش حافظه مجازی سیستم عامل - نسخه‌ی قابل چاپ

کوبیدگی - بخش حافظه مجازی سیستم عامل - mehran.hzd - 14 خرداد ۱۳۹۶ ۰۲:۰۱ ق.ظ

سلام
کوبیدگی دقیقا چه زمانی اتفاق می افتد ؟ من یه جا خواندم اگر تعداد کل تقاضای قاب بیشتر از تعداد قاب های موجود باشد کوبیدگی بوجود می آید . با این توصیه هرجا ما جایگزنی صفحه داشته باشیم کوبیدگی رخ میدهد حتی اگر فقط یک صفحه را جایگزین کنیم ( چون وقتی صفحه را جایگزین میکنیم یعنی تعداد قاب های موجود از تعداد کل تقاضای قاب کم تر است ) . این درحالی است که من قبلا حوانده بودم زمانی می گوییم کوبیدگی رخ میدهد که cpu بیبشتر در گیر صفحه بندی باشد تا اجرای فرآیندها و بنظر نمیرسد که جایگزین کردن یک صفحه به تنهایی باعث شود cpu بیشتر زمانش صرف صفحه بندی باشد !!! با این توصیفات اگر تعداد کمی صفحه را جایگزین کنیم کوبیدگی رخ داده است ؟

RE: کوبیدگی - بخش حافظه مجازی سیستم عامل - msour44 - 14 خرداد ۱۳۹۶ ۰۳:۰۸ ب.ظ

سلام
دوست گرامی انچه از تمام تعاریف مطرح شده برای کوبیدگی می توان استنباط کرد این است که کوبیدگی زمانی ایجاد می شود که با اجرای هر چند دستورالعمل یک نقص صفحه رخ میدهد.وهمان طور که اشاره کردید علت ان هم این است که تعداد قاب های تخصیص داده شده به ان فرایند کمتر از قاب های لازم برای اجرا با سرعت قابل قبول ان فرایند است مثلا در سیستم صفحه بندی پیش نیازی تعداد قاب ها تخصیصی کمتر از تعداد قا ب های لازم برای مجموعه کاری ان باشد.اما در مورد اینکه در کوبیدگی ایا cpu بیشتر درگیر صفحه بندی است ؟ تا حدودی بله . همان طور که در ابتدا گفتیم با اجرای هر چند دستور یک نقص صفحه رخ می دهد(در کوبیدگی ) اگر فرض کنیم اجرای هر دستور یک میلی ثانیه طول می کشد هزینه نقص صفحه ده ها میلی ثانیه طول می کشد و به همین دلیل در بعضی منابع بیان شده که در کوبیدگی cpu بیشتر درگیر صفحه بندی است. اینکه گفتم تا حدودی دلیلش این است که کوبیدگی فقط در حوزه فرایند و حافظه مجازی مطرح نیست بلکه مباحثی در زمینه کوبیدگی در کش و کوبیدگی در tlb و کوبیدگی در Heap و...وجود داره که جزئیات زیادی را باید در نظر گرفت.ولی در مورد اینکه چه تعداد جایگزینی صفحه باعث کوبیدگی می شود مدل مجموعه کاری را در نظر بگیرید که ۵ فرایند داریم و هر کدام برای مجموعه کاری خود نیاز به ۱۰ قاب دارند و در حافظه ۴۹ قاب داریم در این حالت طبق الگوریتم جایگزینی هر بار که نقص صفحه رخ می دهد یکی از صفحات باید بیرون برده شود.ممکن است شرایطی اتفاق بیفتد که بعد از اتما م برش زمانی فرایند جاری فرایندی که صفحه ی ان خارج شده برای اجرا انتخاب شود در این حالت cpu باید عمل زمان بر انتقال را انجام دهد.و ممکن است این کار چندین بار اتفاق بیفتد که با عث کاهش کارایی cpu می شود.پس تعداد کمی جایگزینی هم در شرایطی ممکن است باعث کوبیدگی شود.

RE: کوبیدگی - بخش حافظه مجازی سیستم عامل - mehran.hzd - 15 خرداد ۱۳۹۶ ۱۲:۵۸ ب.ظ

(۱۴ خرداد ۱۳۹۶ ۰۳:۰۸ ب.ظ)msour44 نوشته شده توسط:  سلام
دوست گرامی انچه از تمام تعاریف مطرح شده برای کوبیدگی می توان استنباط کرد این است که کوبیدگی زمانی ایجاد می شود که با اجرای هر چند دستورالعمل یک نقص صفحه رخ میدهد.وهمان طور که اشاره کردید علت ان هم این است که تعداد قاب های تخصیص داده شده به ان فرایند کمتر از قاب های لازم برای اجرا با سرعت قابل قبول ان فرایند است مثلا در سیستم صفحه بندی پیش نیازی تعداد قاب ها تخصیصی کمتر از تعداد قا ب های لازم برای مجموعه کاری ان باشد.اما در مورد اینکه در کوبیدگی ایا cpu بیشتر درگیر صفحه بندی است ؟ تا حدودی بله . همان طور که در ابتدا گفتیم با اجرای هر چند دستور یک نقص صفحه رخ می دهد(در کوبیدگی ) اگر فرض کنیم اجرای هر دستور یک میلی ثانیه طول می کشد هزینه نقص صفحه ده ها میلی ثانیه طول می کشد و به همین دلیل در بعضی منابع بیان شده که در کوبیدگی cpu بیشتر درگیر صفحه بندی است. اینکه گفتم تا حدودی دلیلش این است که کوبیدگی فقط در حوزه فرایند و حافظه مجازی مطرح نیست بلکه مباحثی در زمینه کوبیدگی در کش و کوبیدگی در tlb و کوبیدگی در Heap و...وجود داره که جزئیات زیادی را باید در نظر گرفت.ولی در مورد اینکه چه تعداد جایگزینی صفحه باعث کوبیدگی می شود مدل مجموعه کاری را در نظر بگیرید که ۵ فرایند داریم و هر کدام برای مجموعه کاری خود نیاز به ۱۰ قاب دارند و در حافظه ۴۹ قاب داریم در این حالت طبق الگوریتم جایگزینی هر بار که نقص صفحه رخ می دهد یکی از صفحات باید بیرون برده شود.ممکن است شرایطی اتفاق بیفتد که بعد از اتما م برش زمانی فرایند جاری فرایندی که صفحه ی ان خارج شده برای اجرا انتخاب شود در این حالت cpu باید عمل زمان بر انتقال را انجام دهد.و ممکن است این کار چندین بار اتفاق بیفتد که با عث کاهش کارایی cpu می شود.پس تعداد کمی جایگزینی هم در شرایطی ممکن است باعث کوبیدگی شود.
شما در جمله آخرتون گفتید تعدادکمی جایگزینی هم در شرایطی ممکن است باعث کوبیدگی شود . میخوام بدونم چه زمانی دقیقا میگیم الان دیگه با پدیده کوبیدگی مواجه شدیم ؟ یعنی دقیقا باید چه اتفاقی بی افتد که بهش بگیم کوبیدگی ؟ چون طبق صحبت شما ممکن است جایگزینی داشته باشیم ولی کوبیدگی رخ ندهد .

RE: کوبیدگی - بخش حافظه مجازی سیستم عامل - msour44 - 15 خرداد ۱۳۹۶ ۰۲:۵۶ ب.ظ

(۱۵ خرداد ۱۳۹۶ ۱۲:۵۸ ب.ظ)mehran.hzd نوشته شده توسط:  
(14 خرداد ۱۳۹۶ ۰۳:۰۸ ب.ظ)msour44 نوشته شده توسط:  سلام
دوست گرامی انچه از تمام تعاریف مطرح شده برای کوبیدگی می توان استنباط کرد این است که کوبیدگی زمانی ایجاد می شود که با اجرای هر چند دستورالعمل یک نقص صفحه رخ میدهد.وهمان طور که اشاره کردید علت ان هم این است که تعداد قاب های تخصیص داده شده به ان فرایند کمتر از قاب های لازم برای اجرا با سرعت قابل قبول ان فرایند است مثلا در سیستم صفحه بندی پیش نیازی تعداد قاب ها تخصیصی کمتر از تعداد قا ب های لازم برای مجموعه کاری ان باشد.اما در مورد اینکه در کوبیدگی ایا cpu بیشتر درگیر صفحه بندی است ؟ تا حدودی بله . همان طور که در ابتدا گفتیم با اجرای هر چند دستور یک نقص صفحه رخ می دهد(در کوبیدگی ) اگر فرض کنیم اجرای هر دستور یک میلی ثانیه طول می کشد هزینه نقص صفحه ده ها میلی ثانیه طول می کشد و به همین دلیل در بعضی منابع بیان شده که در کوبیدگی cpu بیشتر درگیر صفحه بندی است. اینکه گفتم تا حدودی دلیلش این است که کوبیدگی فقط در حوزه فرایند و حافظه مجازی مطرح نیست بلکه مباحثی در زمینه کوبیدگی در کش و کوبیدگی در tlb و کوبیدگی در Heap و...وجود داره که جزئیات زیادی را باید در نظر گرفت.ولی در مورد اینکه چه تعداد جایگزینی صفحه باعث کوبیدگی می شود مدل مجموعه کاری را در نظر بگیرید که ۵ فرایند داریم و هر کدام برای مجموعه کاری خود نیاز به ۱۰ قاب دارند و در حافظه ۴۹ قاب داریم در این حالت طبق الگوریتم جایگزینی هر بار که نقص صفحه رخ می دهد یکی از صفحات باید بیرون برده شود.ممکن است شرایطی اتفاق بیفتد که بعد از اتما م برش زمانی فرایند جاری فرایندی که صفحه ی ان خارج شده برای اجرا انتخاب شود در این حالت cpu باید عمل زمان بر انتقال را انجام دهد.و ممکن است این کار چندین بار اتفاق بیفتد که با عث کاهش کارایی cpu می شود.پس تعداد کمی جایگزینی هم در شرایطی ممکن است باعث کوبیدگی شود.
شما در جمله آخرتون گفتید تعدادکمی جایگزینی هم در شرایطی ممکن است باعث کوبیدگی شود . میخوام بدونم چه زمانی دقیقا میگیم الان دیگه با پدیده کوبیدگی مواجه شدیم ؟ یعنی دقیقا باید چه اتفاقی بی افتد که بهش بگیم کوبیدگی ؟ چون طبق صحبت شما ممکن است جایگزینی داشته باشیم ولی کوبیدگی رخ ندهد .
در ابتدای متن هم گفته شده زمانی با کوبیدگی مواجه هستیم که به ازای اجرای هر چند دستورالعمل(نه لزوما ثابت) نقص صفحه داشته باشیم.در این حالت کارایی cpu کاهش میابد یا بهتر بگیم که بیشتر صرف نقص صفحه زمانش می شه تا اجرای دستور حالا اینکه دقیقا در چه لحظه ای سیستم متوجه می شود که دچار کوبیدگی شده به تعریف کوبیدگی برای ان سیستم و راه حل های تعریف شده برای کاهش کوبیدگی در ان سیستم بستگی دارد یعنی به نوع سیستم عامل و امکانات سخت افزاری بستگی دارد و از سیستمی به سیستمی دیگر فرق دارد ممکن است در یک سیستم اگر به ازای هر ۱۰ دستور یک نقص صفحه رخ دهد(تقریبی و پیوسته) دچار کوبیدگی شدیم و در سیستم دیگر به ازای ۱۰۰ دستور.