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

تستی در مورد حافظه مجازی(زیاد تکرار شده) - shima_24 - 12 دى ۱۳۹۱ ۰۸:۳۹ ب.ظ

اندازه صفحه در سیستمی با مدیریت حافظه مجازی به صورت صفحه بندی درخواستی ۲۵۶ بایت است حافظه سیستم حاوی ۳ قاب صفحه در ابتدا خالی است هر قاب صفحه میتواند به کد یا داده انتساب داده شود و قابهای صفحه به اشتراک بین کد و داده استفاده میشوند اندازه کد فرایند برابر یک صفحه است و فرض کنید که حافظه فرایند فقط از دو بخش کد و داده تشکیل میشود اگر از روش fifo استفاده شود اجرای کد زیر منجر به چند نقص صفحه خواهد شد؟
X:ARRAY 1.... 128 1...128 OF BYTE
for register int 1=1 to 128 do
for register int j=1 to 128 do
x i j =0

تستی در مورد حافظه مجازی(زیاد تکرار شده) - mehdi.nine - 12 بهمن ۱۳۹۱ ۱۲:۵۹ ب.ظ

ســــــلام.
ببین اندازه هر خونه آرایه یک بایته و هر سطر آرایه ۱۲۸ بایت می شه پس هر دو سطر در یک صفه قرار داره.(۲*۱۲۸ = ۲۵۶) پس کل آرایه در ۶۴ صفحه جا می شه. ولی نکته ای که باید دقت کنی کد همیشه باید موجود باشه تا برنامه اجرا بشه.من الان یک تیکه از دنباله هارو برات می نویسم
c 1 2 3 c 4 5 6 C 7 8 9 C 10
(از سمت چپ بخون)
در نتیجه برای هر سه عدد یک بار کد وارد صفحه می شه پس می شه ۶۴ + ۶۴/۳ = ۸۶
البته دقت کن باید براکت بالای ۶۴/۳ رو بگیری ها یعنی ۶۴/۳ = ۲۱/۳ ولی باید بگیریم ۲۴ دلیلیشم خیلی واضحه کافیه یه کم به مراجعات دقت کنی.

تستی در مورد حافظه مجازی(زیاد تکرار شده) - samaneh_aftab - 12 بهمن ۱۳۹۱ ۰۱:۱۰ ب.ظ

(۱۲ بهمن ۱۳۹۱ ۱۲:۵۹ ب.ظ)mehdi.nine نوشته شده توسط:  در نتیجه برای هر سه عدد یک بار کد وارد صفحه می شه پس می شه ۶۴ + ۶۴/۳ = ۸۶
البته دقت کن باید براکت بالای ۶۴/۳ رو بگیری ها یعنی ۶۴/۳ = ۲۱/۳ ولی باید بگیریم ۲۴ دلیلیشم خیلی واضحه کافیه یه کم به مراجعات دقت کنی


میشه این قسمتو بیشتر توضیح بدی؟

RE: تستی در مورد حافظه مجازی(زیاد تکرار شده) - mehdi.nine - 12 بهمن ۱۳۹۱ ۰۱:۴۸ ب.ظ

شکلی که تو پیوست گذاشتمو ببین.
اول C وارد می شه که چون وجود نداره می شه نقص صفحه بعد ۱ وارد می شه که بازم نقص صفحس بعد ۲ وارد می شه که بازم نقص صفحس پس تا الان
C 1 2 رو داریم

حالا عدد ۳ که می خواد وارد شه باید یکی از این سه تارو بندازه بیرون طبق FIFO مقدار C که از همه زودتر وارد شده می اندازه بیرون خوب اینجا باید دقت کنی بدون کد برنامه نمی تونه اجرا شه در نتیجه C رو دوباره باید وارد کنیم در نتیجه مقدار یک رو با اردنگی Big Grin می اندازیم بیرون C می شینه جاش(کلا C خیلی پر رو هستش باید همیشه باشه تا برنامه اجرا شه تا می اندازیمش بیرون زودی می دو توBig Grin ) خلاصه دقت کن C رو تا بندازیم بیرون بلافاصله باید بیاریمش تو!
با توجه به شکل برای هر یکی از ۶۴ صفحه یک بار نقص صفحه رخ می ده و هر بار که سه تا صفحه وارد می شه یه بار کد رو می اندازیم بیرون بلافاصله میاریمش تو که می شه ۶۴/۳.
و در کل می شه ۶۴ تا نقص برای برنامه و ۶۴/۳ نقص برای کد.

RE: تستی در مورد حافظه مجازی(زیاد تکرار شده) - fafajoon - 12 بهمن ۱۳۹۱ ۰۲:۳۶ ب.ظ

(۱۲ بهمن ۱۳۹۱ ۰۱:۴۸ ب.ظ)mehdi.nine نوشته شده توسط:  شکلی که تو پیوست گذاشتمو ببین.
اول C وارد می شه که چون وجود نداره می شه نقص صفحه بعد ۱ وارد می شه که بازم نقص صفحس بعد ۲ وارد می شه که بازم نقص صفحس پس تا الان
C 1 2 رو داریم

حالا عدد ۳ که می خواد وارد شه باید یکی از این سه تارو بندازه بیرون طبق FIFO مقدار C که از همه زودتر وارد شده می اندازه بیرون خوب اینجا باید دقت کنی بدون کد برنامه نمی تونه اجرا شه در نتیجه C رو دوباره باید وارد کنیم در نتیجه مقدار یک رو با اردنگی Big Grin می اندازیم بیرون C می شینه جاش(کلا C خیلی پر رو هستش باید همیشه باشه تا برنامه اجرا شه تا می اندازیمش بیرون زودی می دو توBig Grin ) خلاصه دقت کن C رو تا بندازیم بیرون بلافاصله باید بیاریمش تو!
با توجه به شکل برای هر یکی از ۶۴ صفحه یک بار نقص صفحه رخ می ده و هر بار که سه تا صفحه وارد می شه یه بار کد رو می اندازیم بیرون بلافاصله میاریمش تو که می شه ۶۴/۳.
و در کل می شه ۶۴ تا نقص برای برنامه و ۶۴/۳ نقص برای کد.

سلام ممنون
خیلی خوب توضیح دادید

تستی در مورد حافظه مجازی(زیاد تکرار شده) - Saagharmh - 12 بهمن ۱۳۹۱ ۱۱:۳۴ ب.ظ

این سوال یک مدل هم داره که کد ثابت در یک قاب حضور داره و از دو قاب دیگه برای داده استفاده میشه. البته در صورت سوال ذکر میشه که جای کد ثابته