تالار گفتمان مانشت
راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - نسخه‌ی قابل چاپ

راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - csharpisatechnology - 12 آذر ۱۳۹۱ ۰۴:۳۵ ب.ظ

در یک سیستم نیازی داریم :
==
زمان انتقال صفحه از دیسک به حافظه= ۲۰ میلی ثانیه (یا ۲۰۰۰۰ میکروثانیه)
==
ترجمه ی آدرس ها از طریق جدول صفحه که در حافظه قرار دارد انجام میشود.
==
زمان دسترسی به حافظه ، ۱ میکروثانیه است،بنابراین هر اشاره به حافظه نیاز به دو دسترسی دارد.(سوال اول : چرا ؟)
==
برای بهبود زمان دسترسی از حافظه ی انجمنی استفاده می کنیم که این زمان را به یک دسترسی کاهش میدهد.
==
۹۵ درصد دسترسی ها از طریق حافظه ی انجمنی انجام میشود.
==
از باقی دسترسی ها ۵ درصد باعث نقص صفحه میشود.
==
زمان موثر دسترسی به حافظه چیست ؟
====================================================
پاسخ :
[tex]t{_{eff}}=(0.95*1) [(0.05)(0.95*2) (0.05)(2 20000)]\approx 50 micro seconds[/tex]
================
[تصویر:  146824_1_1379087581.jpg]
================
حالا این فرمول رو کامل توضیح بدید.
سوال بعدی: چرا اونجا شد دو دسترسی؟
سوال بعدی:فرمول نقص صفحه چرا این شکلی در اومد؟ ۲۰ هزار رو میدونم ولی چرا به علاوه ی ۲ شد؟
فرمول وجود صفحه رو هم توضیح بدید و دقیقا اثبات کنید این فرمول عجقوجق از کجا اومده ؟ و توی کدوم کتاب مرجعی وجود داره؟(دقیقا همین مثال توی کدوم کتاب مرجعی هست نه کتاب تست)

راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - csharpisatechnology - 12 آذر ۱۳۹۱ ۰۶:۴۷ ب.ظ

توی این انجمن به این بزرگی مانشت ، یعنی یک نفر هم پیدا نمیشه که جواب سوال مارو بلد باشه ؟

راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - azad_ahmadi - 13 آذر ۱۳۹۱ ۱۲:۲۱ ق.ظ

سلام.
سوال اولت برای این دو بار به حافظه دسترسی داریم چون جدول صفحه در حافظه قرار دارد، یک بار برای پیدا کردن آدرس حقیقی (چون آدرس مجازی به MMU داده میشه و خروجی اون هم آدرس فیزیکی هست) و یک بار اینکه به آدرس فیزیکی درحافظه دسترسی پیدا کنیم باید به حافظه مراجعه کنیم. (توجه کن که اگه از TLB استفاده بشه، چون TLB در حافظه قرار نگرفته پس یعنی با بودن TLB فقط برای خوندن آدرس فیزیکی به حافظه مراجعه می کنیم(یک بار).)

توضیح کلی فرمول: ادرسی که از طرف cpu وارد mmu میشه (آدرس مجازی) هست، یعنی ابتدا باید اون آدرس تبدیل به آدرس فیزیکی بشه و بعد به حافظه دسترسی داشته باشیم. برای افزایش سرعت و کاهش نقص صفحه، طراحان اومدن یک TLB استفاده کردن،(توجه کن ادرسی که از طرف cpu داده میشه ابتدا به TLB داده میشه اگه مطابقتی صورت بگیره(یک hit اتفاق افتاده) آدرس واقعی یا فیزیکی بدست آمده و تنها کار باقی مانده اینه که به اون آدرس در حافظه اصلی دسترسی پیدا کنیم(یک بار دسترسی به حافظه) اما اگه ادرس مورد نظر در TLB نباشد، اونوقت باید به جدول صفحه که در حافظه اصلی هست مراجعه کنیم تا آدرس فیزیکی رو بدست بیاریم.(این یک بار) و به محض پیدا کردن آدرس فیزیکی باید به اون مکان از حافظه مراجعه کنیم (این هم یک بار) پس در کل ۲بار دسترسی به حافظه داریم.
اما حالاتی پیش میاد که نه تو TLB هست و نه تو حافظه اصلی ، بلکه تو حافظه جانبی قرار داره اون چیزی یا اطلاعاتی یا جایی که ما می خوایم پس یک نقص صفحه رخ میده و اطلاعات از حافظه جانبی به حافظه اصلی انتقال داده میشه.

پس در کل بگم که اول TLB رو میگرده(اگه بود که آدرس فیزیکی برداشته میشه و به حافظه رجوع میشه)، اگه اونجا نبود حافظه اصلی رو می گرده(بلاک پیدا شده به TLB انتقال داده میشه و به اون مکان از حافظه رجوع می کنه) ، اگه نبود حافظه جانبی رو میگرده، یک بلاک از حافظه جانبی به حافظه اصلی انتقال میده و اون صفحه رو که تو حافظه اصلی هست (بیت ورودش رو ۱ می کنه).
زیاد سخت نیست، تستای اون بحث رو مرور کن دستت میاد باید چکار کنی.
موفق باشی.

راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - esi - 13 آذر ۱۳۹۱ ۱۲:۲۷ ق.ظ

یه فرمول کلی هست اگه اینو یاد بگیرید کار تمونه، شما باید ترتیب دسترسی به داده ها رو تو ذهنتون تجسم کنید و مراحل رو یکی برید تا به داده مورد نظر برسید.
وقتی میخوایید به داده ای دسترسی پیدا کنید اول باید به صفحه دسترسی پیدا کنید و بعد به خود داده. حالا صفحه میتونه تو TLB باشه یا نباشه، اگه تو TLB نبود باید جدول حافظه رو بگردی(یعنی یه دسترسی به حافظه) اگه جدول حافظه تویه حافظه نبود باید از دیسک آورده بشه، پس یکی از حافظه خارج میشه و جدیده جاشو میگیره.
بعد اومدن جدول صفحه آدرس فیزیکی داده رو محاسبه می کنی، حالا داده یا تو کشه یا تو کش نیست، اگه تو کش بود با ضریب hit از کش ورمیداری و اگه تو کش نبود از حافظه ورش میداره یعنی همون فرمول دسترسی به حافظه با کش.
حالا می تونه به سوالت جواب بدی.
۲ تا دسترسی به حافظه دارید یکی واسه جدول و یکی واسه خود داده، حالا حالت های بالارو بررسی می کنیمش:
۱- تو TLB باشه یعنی ۱*۰/۹۵
۲- تو TLB نباشه و نقض صفحه رخ داده (۲۰۰۰۰+۲)*.۰۵ : یعنی جدول صفحه تو حافظه نباشه(احتمال ۰/۰۵) پس از دیسک میاریمش و ۲ بار هم به حافظه دسترسی پیدا می کنیم، یکی واسه جدول صفحه ای که آوردیم و یکی هم واسه خود داده .
۳- حالت ۰/۰۵*.۰/۹۵*۲
جدول صفحه آورده شده، پس یک دسترسی به جدول صفحه ویک دسترسی به خود داده، به احتمال ۹۵ درصد جدول صفحه وجود دارد و به احتمال ۵ درصد هم اون جدول تویه TLB نیست.
یعنی این ضرب داره دسترسی به جدول صفحه رو با عدم وجود نقض صفحه یعنی ۹۵ درصد و نبود در TLB یعنی ۵ درصد بررسی می کنه، وقتی جدول صفحه رو آوردیم یه دسترسی به جدول صفحه و یکی هم واسه خود داده .
سوال اول که گفته ۲ بار دسترسی به حافظه منظورش یکی واسه جدول صفحه و یکی خود داده که کاملا تو حالته ۳ توضیح دادیمش.
اون ۲ که تویه جمع ۲+۲۰۰۰۰ هم که نشون میده اگه جدول صفحه تویه حافظه نباشه میریم از دیسک می خونیمش و سپس به جدول صفحه و داده دسترسی پیدا می کنیم.

راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - csharpisatechnology - 13 آذر ۱۳۹۱ ۰۱:۳۵ ق.ظ

مگه TLB همون cache نیست ؟
میشه فرمول رو کامل بنویسید ؟
آیا فرمولش اینه ؟ یا من اشتباه می کنم؟
من که جا گذاری می کنم جور در نمیاد توی این فرمول :
[tex]t{_{eff}}=h(t_{tlb} t_{m}) (1-h)(t_{pt} t_{ma} t_{tlb})[/tex]

راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - esi - 13 آذر ۱۳۹۱ ۰۱:۵۷ ق.ظ

TLB واسه دسترسی سریع به شماره صفحه و تویه قسمت مدیریت حافظه MMU استفاده میشه، ساختارشم که حافظه انجمنیه و ربطی به کش نداره، کش تویه CPU و برای دسترسی به حافظه استفاده میشه و ساختارش لزوما انجمنی نیست( میتونه نگاشت مستقیم یا مجموعه ای استفاده بشه)، اندازه TLB نسبتا کوچیکه اما کش اندازش معمولا بالاست.
فرمول دقیقش اینطوری میشه :
t(eff)=h(tlb)*t(tlb)+(1-h(tlb))*(h(pt)*t(m)+*(1-h(ptb))*t(disk))+t(m)y
و t(m)y هم واسه دسترسی به حافظه اصلی هستش.
t(m)=t(cache)+(1-h(cache)*t(m)y
y فقط جهت حفظ نظم فرمولاست
تو مثال بالا حرفی از کش نشده و فقط دسترسی مستقیم به حافظه داریم

راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - csharpisatechnology - 13 آذر ۱۳۹۱ ۱۲:۰۷ ب.ظ

توی این فرمول چرا دوبار t(m بکار رفته:؟
t(m)=t(cache)+(1-h(cache)*t(m)y
==
یه جاشم ضرب و به علاوه با هم اومده انگار اشتباه نوشتین میشه درستشو بگید

راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - csharpisatechnology - 13 آذر ۱۳۹۱ ۰۱:۱۵ ب.ظ

لطغفا اعداد مسئله ای رو که گفتم توی فرمول خودتون بذارید و ببینید جواب بدست میاد یا نه؟
من که نتونستم از فرمول شما استفاده کنم

راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - esi - 13 آذر ۱۳۹۱ ۰۳:۰۵ ب.ظ

فرمول درسته فکر کنم.
تو کتاب مقسمی ۱و۲ تا فرمول برای این مساله نوشته، تو تمرینای حقیقت هم هستش.
فرمول کلی اینه که شما ۲ بار دسترسی به حافظه دارید، یکی واسه جدول صفحه و یکی به خود داده.
حالا واسه جدول صفحه باید بررسی که کنیم تویه TLB هست یا نه، اگه تو TLB بود تمام، میریم دنبال داده تویه حافظه.
اگه نبود(با احتمال ۱-h(tlb)a ) حالا ببینیم تویه حافظه هست جدول صفحه یا نه، اگه تو حافظه بود با ضریب احتمال وجود صفحه در حافظه یعنی عدم نقض صفحه ضرب در زمان دسترسی به حافظه و اگه توحافظه نبود میریم سراغ دیسک
پس فرمول درسته.
حافظه هم اول میریم سراغ کش و اگه تو کش نبود میریم از حافظه برش میداریم.
مساله بالا با جایگذاری بدست میاد، دقت کنید که کش نداریم و دسترسی به حافظه برای جدول صفحه و داده همزمان و ۲ میکرثانیه طول می کشه.
باز نتونستید من می نویسم.

راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - nina69 - 13 آذر ۱۳۹۱ ۰۳:۱۶ ب.ظ

سلام
دوستان کامل عملکرد TLB و کش رو گفتنند
این فرمول ها رو نمیشه حفظ کرد باید یه کمی خودت تجزیه تحلیل کنی چون این مبحث هم توی سیستم عامل مطرح هم معماری
کلیات شبیه ولی در جزییات متفاوت
در مورد این سوال اگه توضیحات دوستان فهمیده باشی میمونه بحث احتمال
۹۵/-------- > حافظه انجمنی-------> 1*95.
۰۵/---------.> حافظه -------> یا در حافظه وجود دارد -------->2* 0.95
یا در حافظه وجود ندارد مجبور هستیم به دیسک مراجعه کنیم(نقص صفحه)------>0.05*[20000+2]

راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - csharpisatechnology - 13 آذر ۱۳۹۱ ۰۴:۰۸ ب.ظ

دوستان عزیز،آقای AZAD برام توضیح داد که توی پوران هست.من توی پوران حلشو پیدا کردم ولی باز هم متوجه نشدم.
اینو ببینید:
توی کتاب پوران موسوی طیبی فصل پنجم:مدیریت حافظه ی اصلی (چاپ تابستان ۸۹) ص ۳۸۶ حل مسئله ی ۷۹ آورده :
[tex]t_{eff}=h*(t_{acc,tlb} t_{acc,mem}) (1-h)*[(1-p)*(t_{acc,tlb} 2*t_{acc,mem}) p*(t_{acc,tlb} 2*t_{acc,mem} t_{acc,disk})][/tex]
==
بعدش گفته میشه این فرمول رو به صورت زیر خلاصه کرد :
[tex]t_{eff}=h*(t_{acc,tlb} t_{acc,mem}) (1-h)*[(t_{acc,tlb} 2*t_{acc,mem}) p*t_{acc,disk}][/tex]
======
اما هیچ توضیحی نداده که چرا میشه این فرمول رو به صورت فوق خلاصه کرد. یکی اینکه میخوام اینو درک کنم.

راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - azad_ahmadi - 13 آذر ۱۳۹۱ ۰۴:۴۰ ب.ظ

ببین دوست عزیز؛ هردو فرمول رو میشه بکار برد. فرمول پایینی خلاصه شده همون فرمول بالاییه.
توضیح فرمول پایینی به این صورت هست:

با احتمال h آدرس در TLB پیدا می شه، در این صورت با مراجعه به TLB آدرس رو برمیداره و به حافظه مراجعه می کنه.(یک بار به حافظه مراجعه می شود و یک بار به TLB). توجه کن که TLB در حافظه اصلی قرار ندارد...................... (قسمت اول داخل پرانتز)

با احتمال h - 1 آدرس در TLB وجود نداره(یعنی اول TLB رو گشته، آدرس رو پیدا نکرده)، پس باید بعد از گشتن TLB و شکست در پیدا کردن آدرس به حافظه بره (جدول صفحه در حافظه واقع شده است). بعد از اینکه آدرس رو از جدول صفحه پیدا کرد، باید به اون آدرس پیدا شده در حافظه هم درنهایت رجوع کنیم(اول TLB رو میگرده و آدرس رو پیدا نمی کنه، بعد دوبار رجوع به حافظه می کنه. بار اول برای پیدا کردن آدرس. بار دوم برای مراجعه به آدرس پیدا شده) حالا اون P*Tacc,disk که در نهایت نوشته، یعنی با احتمال P آدرس در دیسک هست (یعنی هم در TLB نیست و هم در حافظه اصلی نیست، بلکه در حافظه جانبی قرار دارد، و باید اون صفحه که آدرس درش قرار داره و از حافظه جانبی به حافظه اصلی بیاریم).

همین!

اگه جایگذاری کنی عددی که بدست میاد برابر هست با ۵۱/۰۵ میکروثانیه. اما توجه که که تو سوال نوشته عدد بدست آمده با کدام یک از گزینه ها نزدیک هست که میشه گزینه ۴ (عدد ۵۰) .

راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - csharpisatechnology - 13 آذر ۱۳۹۱ ۰۶:۵۸ ب.ظ

دارم فکر می کنم یه فرمول کلی میخوام بنویسم

RE: راهنمایی حل سوال دسترسی موثر حافظه_کنکور ۱۳۷۶ - csharpisatechnology - 13 آذر ۱۳۹۱ ۰۸:۳۲ ب.ظ

بالاخره فهمیدم اثباتشو.
یه فایل پیوست می کنم تحت word هست .جواب نهاییشو با اثبات کامل آوردم تا همه استفاده کنند.
مدیر هم اگه خواست این پست رو ببنده چون فکر می کنم کاملش کردم و خودم هم جوابشو یافتم.
با تشکر از همه ی دوستانی که همکاری کردند توی حل این مسئله:azad_ahmadi,esi,nina69
==
امیدوارم برای همه مفید باشه.تشکر شما باعث روحیه دادن ماستBig Grin