تالار گفتمان مانشت

نسخه‌ی کامل: پرسش از حافظه مجازی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام

دنباله مراجعات زیر را با آدرس های حافظه از یک برنامه 490 کلمه ای در نظر بگیرید. از چپ به راست
10,104,215,386,11,185,411,86,173,230,315,480
با فرض اینکه اندزاه هر صفحه برابر 100 کلمه و گنجایش حافظه اصلی 300 کلمه باشد،تعداد نقص صفحه برای این دنباله با جایگزینی LRU چقدر است؟
بحث سر این هست که کل حافظه 300 کلمه هست و هر صفحه 100 کلمه یعنی 3 قاب آزاد. چطوری مثلا 411 که 5 قاب آزاد نیاز داره رو جا میده؟یعنی عدد 4 رو میزاره در یک سر جدول،و دو سطر بعد دو عدد دیگر هم میزارد! Huh[/align]
(18 اردیبهشت 1393 10:12 ب.ظ)H-Arshad نوشته شده توسط: [ -> ]سلام

دنباله مراجعات زیر را با آدرس های حافظه از یک برنامه ۴۹۰ کلمه ای در نظر بگیرید. از چپ به راست
۱۰,۱۰۴,۲۱۵,۳۸۶,۱۱,۱۸۵,۴۱۱,۸۶,۱۷۳,۲۳۰,۳۱۵,۴۸۰
با فرض اینکه اندزاه هر صفحه برابر ۱۰۰ کلمه و گنجایش حافظه اصلی ۳۰۰ کلمه باشد،تعداد نقص صفحه برای این دنباله با جایگزینی LRU چقدر است؟
بحث سر این هست که کل حافظه ۳۰۰ کلمه هست و هر صفحه ۱۰۰ کلمه یعنی ۳ قاب آزاد. چطوری مثلا ۴۱۱ که ۵ قاب آزاد نیاز داره رو جا میده؟یعنی عدد ۴ رو میزاره در یک سر جدول،و دو سطر بعد دو عدد دیگر هم میزارد! Huh[/align]


وقتی در بحث حافظه با کلمه مجازی مواجه می شویم به این معنی است که احتیاج نیست که کل برنامه در حافظه فیزیکی قرار بگیرد. در مدل مدیریت حافظه مجازی، در دیسک، فضایی به نام حافظه مجازی وجود دارد که برنامه، به طور کامل در آن قرار می گیرید و هر زمان قسمتی از برنامه (صفحه) مورد نیاز بود و در حافظه فیزیکی (قاب) قرار نداشت، یک کپی از صفحه مربوط به آن قسمت از برنامه، در حافظه فیزیکی نیز قرار می گیرد.
مثلا در کامپیوتر های رایج امروزی، ممکن است سیستم شما 2 گیگابایت حافظه فیزیکی داشته باشد ولی هر برنامه، یک حافظه خطی به اندازه 4 گیگابایت برای خود متصور است. حال مثلا فرض کنید (جدای از ویندوز) سرویس ها و مثلا چند برنامه که شما مشغول به اجرای آن هستید، سر جمع 20 برنامه در حال اجرا باشد. در این صورت برنامه های شما، همگی با هم احساس می کنند که 20 * 4 یعنی 80 گیگابایت حافظه در اختیار دارند. خافظه فیزیکی شما تنها 2 گیگابایت است بنابراین برنامه ها گول خورده اند و تنها به صورت مجازی (الکی) انقدر فضا در اختیار دارند.
در این شرایط، این وظیفه سخت افزار و سیستم عامل است که توما شرایط را مدیریت کنند و در زمان های لازم، صفحاتی از این 80 گیگابایت را وارد این 2 گیگابایت قاب فیزیکی کنند و اینکه صفحه جدید جایگزین کدام صفحه قدیمی شود (چون همه که با هم جا نمی شود!)، بستگی به الگوریتم های جایگزینی صفحه دارد.
LRU یکی از الگوریتم های جایگزینی صفحه است که البته یکی از پرهیزینه ترین ها نیز می باشد و احتمالا در سیستم عامل ویندوز از آن استفاده نمی شود.
البته الگوریتم را توضیح ندادم چون احساس کردم سوال شما در مفهوم حافظه مجازی است ولی اگر احساس می کنید لازم است، آن را نیز توضیح می دهم.
(19 اردیبهشت 1393 03:02 ق.ظ)Morris نوشته شده توسط: [ -> ]
(18 اردیبهشت 1393 10:12 ب.ظ)H-Arshad نوشته شده توسط: [ -> ]سلام

دنباله مراجعات زیر را با آدرس های حافظه از یک برنامه ۴۹۰ کلمه ای در نظر بگیرید. از چپ به راست
۱۰,۱۰۴,۲۱۵,۳۸۶,۱۱,۱۸۵,۴۱۱,۸۶,۱۷۳,۲۳۰,۳۱۵,۴۸۰
با فرض اینکه اندزاه هر صفحه برابر ۱۰۰ کلمه و گنجایش حافظه اصلی ۳۰۰ کلمه باشد،تعداد نقص صفحه برای این دنباله با جایگزینی LRU چقدر است؟
بحث سر این هست که کل حافظه ۳۰۰ کلمه هست و هر صفحه ۱۰۰ کلمه یعنی ۳ قاب آزاد. چطوری مثلا ۴۱۱ که ۵ قاب آزاد نیاز داره رو جا میده؟یعنی عدد ۴ رو میزاره در یک سر جدول،و دو سطر بعد دو عدد دیگر هم میزارد! Huh[/align]


وقتی در بحث حافظه با کلمه مجازی مواجه می شویم به این معنی است که احتیاج نیست که کل برنامه در حافظه فیزیکی قرار بگیرد. در مدل مدیریت حافظه مجازی، در دیسک، فضایی به نام حافظه مجازی وجود دارد که برنامه، به طور کامل در آن قرار می گیرید و هر زمان قسمتی از برنامه (صفحه) مورد نیاز بود و در حافظه فیزیکی (قاب) قرار نداشت، یک کپی از صفحه مربوط به آن قسمت از برنامه، در حافظه فیزیکی نیز قرار می گیرد.
مثلا در کامپیوتر های رایج امروزی، ممکن است سیستم شما ۲ گیگابایت حافظه فیزیکی داشته باشد ولی هر برنامه، یک حافظه خطی به اندازه ۴ گیگابایت برای خود متصور است. حال مثلا فرض کنید (جدای از ویندوز) سرویس ها و مثلا چند برنامه که شما مشغول به اجرای آن هستید، سر جمع ۲۰ برنامه در حال اجرا باشد. در این صورت برنامه های شما، همگی با هم احساس می کنند که ۲۰ * ۴ یعنی ۸۰ گیگابایت حافظه در اختیار دارند. خافظه فیزیکی شما تنها ۲ گیگابایت است بنابراین برنامه ها گول خورده اند و تنها به صورت مجازی (الکی) انقدر فضا در اختیار دارند.
در این شرایط، این وظیفه سخت افزار و سیستم عامل است که توما شرایط را مدیریت کنند و در زمان های لازم، صفحاتی از این ۸۰ گیگابایت را وارد این ۲ گیگابایت قاب فیزیکی کنند و اینکه صفحه جدید جایگزین کدام صفحه قدیمی شود (چون همه که با هم جا نمی شود!)، بستگی به الگوریتم های جایگزینی صفحه دارد.
LRU یکی از الگوریتم های جایگزینی صفحه است که البته یکی از پرهیزینه ترین ها نیز می باشد و احتمالا در سیستم عامل ویندوز از آن استفاده نمی شود.
البته الگوریتم را توضیح ندادم چون احساس کردم سوال شما در مفهوم حافظه مجازی است ولی اگر احساس می کنید لازم است، آن را نیز توضیح می دهم.

ممنون از توضیحات خوب شما
بله درست می فرمائید و صحبت شما صحیح هست
اما ماداریم میگیم 3 قاب آزاد داریم و هر قاب 100 کلمه جا میگیره.
حالا توی پاسخ سوال اواسط کار اومده قاب اول رو عدد 4 مثلا داخلش گذاشته.(عدد 4 برای عدد 386)
حالا قاب سوم و چهارم هم تازه فضا گرفته براشون.
بلاخره این میگه حافظه اصلی گنجایش آن 300 هست. چطوری 4 صفحه 100 کیلو میره داخلش؟ تازه قاب دوم و سوم هم حساب نکردذیم!
بله الگوریتم LRU مشکلی ندارم باهاش
ای کاش شما پاسخ را به طور کامل یا حد اقل آن قسمت که مشکل دارد را به طور دقیق و عینا از منبع خود در اینجا می آوردید.
لینک مرجع