آموزش ترفندهای کامپیوتری

حافظه مجازی چیست؟ معایب و مزایا و روش انجام    

wind

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

حافظه  مجازی یک تکنیک رایج است که در سیستم عامل کامپیوتر استفاده می شود. حافظه مجازی هم از نرم افزار و هم از سخت افزار برای قادر سازی کامپیوتر در جبران کمبود حافظه و یا انتقال موقت اطلاعات از رم به فضای ذخیره سازی دیسک استفاده می کند.

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

 

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

کامپیوتر ها مقدار محدودی رم دارند و بنابراین مموری یا حافظه در اوقاتی که چند برنامه همزمان در حال اجرا باشند، تمام می شود و از اجرا باز می ایستند. سیستمی که از حافظه مجازی استفاده می‌ کند، می‌ تواند بخشی از هارد درایو را برای برابری کردن با رم به کار بگیرد. سیستم با حافظه مجازی می تواند برنامه های چندگانه یا بزرگتر را به طور همزمان به اجرا در بیاورد و باعث می شود که هر کدام از آن ها به گونه‌ ای اجرا شوند که انگار فضای بیشتری موجود است، بدون این که مجبور باشند رم های بیشتری بخرند.

حافظه مجازی چگونه کار می کند؟

حافظه مجازی هم از سخت افزار و هم نرم‌ افزار برای اجرای کار کمک می گیرد. هنگامی که اپلیکیشن یا برنامه خاصی در حال استفاده باشد، دیتا از آن برنامه در یک آدرس فیزیکی با استفاده از رم ذخیره می شود. واحد مدیریت حافظه یا MMU فضای آدرس را تعیین می کند. اگر فضای رم در هر نقطه برای چیزی اورژانسی تر نیاز باشد، دیتا می تواند تغییر پیدا کند و وارد یک فضای مجازی شود. مدیر حافظه کامپیوتر، مسئول ثبت و ضبط تغییرات بین حافظه مجازی و فیزیکی است. اگر به این دیتا و اطلاعات دوباره نیاز شود، MMU کامپیوتر از یک فضا برای تغییر اجرای کار کمک می گیرد.

هنگامی که حافظه مجازی در یک حافظه فیزیکی یا رم کپی می شود، سیستم عامل حافظه را با یک عدد ثابت از آدرس ها تقسیم بندی می کند تا فایل ها را جابجا کند. هر صفحه روی یک دیسک ذخیره می شود و هنگامی که صفحه نیاز باشد، سیستم‌ عامل آن را از دیسک به حافظه اصلی کپی کرده و آدرس های مجازی را به آدرس های واقعی ترجمه می کند.
اگر چه فرآیند برابری کردن اطلاعات حافظه مجازی به رم آرام و کند انجام می‌ گیرد؛ اما به این معناست که استفاده از حافظه مجازی عموماً باعث ایجاد کاهش عملکرد به طرز چشم گیری می شود. به این دلیل کامپیوتر هایی که رم های بیشتری دارند، معمولاً اجرای بهتری دارند.

انواع حافظه مجازی

معیار MMU در کامپیوتر اجرای حافظه مجازی را مدیریت می‌ کند. سخت افزار MMU در بیشتر کامپیوتر ها در CPU گنجانده می‌ شود که فضای آدرس مجازی را تولید می کند. عموماً حافظه مجازی یا یک صفحه و یا یک دسته بندی است و حافظه را به بخش ها یا فایل هایی تقسیم بندی می کند. هنگامی که کامپیوتر از رمِ در دسترس استفاده می کند، صفحه هایی که مورد استفاده قرار نگرفته اند، با استفاده از فایل سواپ به هارد درایو انتقال داده می‌ شوند.

این فایل فضایی است که در هارد درایو وجود دارد و به عنوان افزایش حافظه مجازی برای رم کامپیوتر استفاده می شود. هنگامی که این فایل مورد نیاز باشد، آن را با استفاده از فرایندی به نام page swapping به رم می فرستند. این سیستم تضمین می کند که سیستم عامل کامپیوتر و اپلیکیشن ها خارج از حافظه واقعی اجرا نمی شوند. سایز حداکثری فایل صفحه می تواند یک و نیم الی ۴ برابر رم کامپیوتر باشد.

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

دسته بندی و بخش بندی همچنین برای مدیریت حافظه مجازی استفاده می‌ شود. این راهبرد باعث می‌ شود که حافظه مجازی به بخش‌ هایی با طول های مختلف تقسیم شوند. این بخش ها که بعضی از آن ها در حافظه استفاده نمی شوند را می توان به فضای حافظه مجازی در هارد درایو انتقال داد. اطلاعات بخش بندی شده یا فرآیند ها در بخش جدول ثبت می شوند که اگر این بخش در حافظه موجود باشد، آن را نشان می دهد که ممکن است تغییر یافته آن یا آدرس رم را در آن نشان دهد. علاوه بر آن سیستم‌ های فایل در این طبقه بندی فقط از بخش‌ هایی تشکیل شده‌ اند که به فضای آدرس پنهانی جهت بندی می شوند.

از دست ندهید: روش ساده خالی کردن فضای مموری گوشی اندروید (بدون هیچ نرم افزاری)

این صفحه گذاری و تقسیم بندی در مفهوم چگونگی تقسیم حافظه و مدل حافظه تغییر می کند. اگرچه فرآیند ها همچنین می توانند با یکدیگر ترکیب شوند. در این مورد، حافظه به فریم ها یا صفحاتی تقسیم می ‌شود. این بخش ها صفحات چند گانه هستند و آدرس مجازی شامل عدد بخش و عدد صفحه است.

دیگر روش های جایگزین کردن صفحه شامل روش FIFO یا خروج به ترتیب ورود، الگوریتم انتخابی و یا جابجایی LRU است. روش FIFO جابجای یک صفحه که در آدرس مجازی برای طولانی ترین مدت زمان ممکن بوده است را انتخاب می‌ کند.
الگوریتم انتخابی جابجایی هایی را بر اساس اینکه کدام صفحه بعد از طولانی ترین زمان احتمال جابه جایی ندارد را انتخاب می کند که اجرای آن سخت است اما معمولاً نقص و خطای آن کم تر است.

روش LRU هم صفحه ای که برای مدت زمان طولانی در حافظه اصلی استفاده نشده است را جابجا می کند.

چگونه حافظه مجازی را مدیریت کنیم؟

مدیریت حافظه مجازی داخل یک سیستم عامل می تواند به صورت مستقیم انجام شود اما تنظیمات پیش زمینه ای وجود دارد که میزان اشغال شدن فضای هارد درایو برای فضای مجازی را نشان می‌ دهد. این تنظیمات برای اکثر اپلیکیشن ها و فرایند ها کار می کنند اما گاهی اوقات لازم است که شما به صورت دستی مقدار فضای هارد درایو که به حافظه مجازی اختصاص داده شده‌ اند را ریست کنید. به عنوان مثال با اپلیکیشن هایی که وابسته به دفعات پاسخ سریع هستند یا هنگامی که کامپیوتر هارد دیسک درایو های چندگانه یا HDD دارد.

ریست کردن دستی حافظه مجازی به گونه‌ ای است که در آن حداقلی و حداکثری ترین فضای هارد درایو که برای حافظه مجازی استفاده می‌ شود، باید به طور خاص مشخص گردد . اختصاص دادن مقدار کمی فضای HDD برای حافظه مجازی می‌ تواند باعث شود که کامپیوتر از طریق رم کار کند. اگر سیستم به طور مداوم نیاز به فضای بیشتری از حافظه مجازی داشته باشد، هوشمندانه ترین کار این است که رم اضافه کنید. سیستم عامل های رایج ممکن است عموماً به کاربران پیشنهاد دهند که حافظه مجازی را فراتر از یک و نیم برابر مقدار رم را افزایش ندهند.

حتما بخوانید: سرچ پیشرفته در گوگل: همه ترفندهای کاربردی برای سرچ کردن در گوگل

مدیریت حافظه مجازی در سیستم عامل ها با یکدیگر متفاوت است و به همین دلیل متخصصان آی تی هنگامی که بحث مدیریت حافظه مجازی و آدرس های مجازی می‌ شود ، باید موارد پایه‌ ای و اساسی را به خوبی بدانند. سلول های رم موجود در SSD ها همچنین یک طول عمر محدود دارند. سلول های رم تعداد محدودی کپی دارند و بنابراین استفاده از آنها برای حافظه مجازی باعث کاهش طول عمر درایو می شود.

فواید استفاده از حافظه مجازی چیست؟

فواید استفاده از حافظه مجازی شامل موارد زیر است:

  • حافظه مجازی می‌ تواند دو برابر آدرس های موجود را در حافظه اصلی مدیریت کند.
  • حافظه مجازی اپلیکیشن های بیشتری را قادر می سازد که به طور همزمان استفاده شوند .
  • حافظه مجازی اپلیکیشن هایی را از مدیریت حافظه اشتراک گذاری شده خارج می کند و کاربران را از اضافه کردن انواع رم بعد از به اتمام رسیدن فضای رم بی نیاز می کند.
  • حافظه مجازی هنگام اجرای یک بخشی از اپلیکیشن یا برنامه سرعت بیشتری را ایجاد کند.
  • حافظه مجازی با ایزوله سازی مموری، امنیت را افزایش می‌ دهد.
  • حافظه مجازی اپلیکیشن‌ های بزرگتر را قادر می‌ سازد که همزمان با هم بدون مشکل اجرا شوند.
  • استفاده از حافظه مجازی هزینه زیادی را در بر نمی گیرد.
  • حافظه مجازی نیاز به دسته بندی خارجی ندارد.
  • استفاده از CPU برای مدیریت بخش‌ های منطقی و لاجیکال اثر گذار است .
  • صفحه ها در فرآیند اصلی می توانند در طول یک سیستم فورک اجرا شوند که کپی را از خودشان در حال اجرای کار ایجاد می کنند.

علاوه بر فوایدی که در بالا نام بردیم، اجرا کنندگان می توانند از تکنیک‌ های مدیریت حافظه مجازی برای اختصاص دادن حافظه اضافی به یک دستگاه مجازی استفاده کنند.

How a virtual memory manager separates RAM

این تکنیک های مدیریت مجازی سازی می تواند عملکرد دستگاه مجازی و انعطاف مدیریت آن را ارتقا دهد.

محدودیت های استفاده از حافظه مجازی چیست؟

اگرچه استفاده از حافظه مجازی فواید خودش را دارد اما محدودیت هایی هم مانند موارد زیر در آن وجود دارد:

  • اگر اپلیکیشن ها از طریق حافظه مجازی اجرا شوند ، سرعت پایین تری خواهند داشت.
  • دیتا و اطلاعات باید بین رم و حافظه مجازی به درستی جای بگیرد که نیاز به ساپورت بیشتر سخت افزار برای ترجمه آدرس‌ ها دارد که ممکن است بعد ها باعث پایین آمدن سرعت کامپیوتر شود.
  • سایز فضای ذخیره سازی مجازی با فضای ذخیره سازی ثانویه محدود می شود.
  • تِرَش هم ممکن است در صورت کافی نبودن فضای رم اتفاق بیفتد که باعث می شود سرعت اجرایی کامپیوتر کاهش پیدا کند.
  • ممکن است جا به جا شدن بین اپلیکیشن ها با استفاده از حافظه مجازی زمان ببرد.
  • حافظه مجازی میزان فضای در دسترس هارد درایو را کاهش می دهد.

مقایسه حافظه مجازی با حافظه فیزیکی یا رم

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

کاربران می‌ توانند به طور فعال به کامپیوتر از طریق خرید و نصب چیپست های حافظه، رم اضافه کنند. انجام این کار زمانی کاربرد دارد که سرعت کاهش پیدا کرده باشد. میزان و فضای رم بستگی به این دارد که چه چیزی روی کامپیوتر نصب شده باشد. از طرف دیگر حافظه مجازی از طریق سایز هارد درایو کامپیوتر محدود می شود. تنظیمات حافظه مجازی اغلب از طریق سیستم عامل قابل کنترل است .

کاربرد RAM در گوشی هوشمند و تفاوت آن با Rom

علاوه بر آن رم از تکنیک‌ های سواپ استفاده می کند، در حالی که حافظه مجازی از صفحه بندی استفاده می کند. در حالی که حافظه فیزیکی به سایز چیپست رم محدود می‌ شود اما حافظه مجازی به سایز هارد دیسک محدود می‌ شود و همچنین دسترسی مستقیم به CPU را ایجاد می کند ، در حالی که حافظه مجازی این گونه نیست.

تاریخچه حافظه مجازی

قبل از این که حافظه مجازی روی کار بیاید، کامپیوتر ها رم و حافظه ثانویه داشتند. کامپیوتر های اولیه از حافظه هسته‌ ای آهنربایی برای حافظه اصلی و درام های آهنربایی برای حافظه ثانویه استفاده می کردند. حافظه کامپیوتر گران بود و به قبل از سال های ۱۹۴۰ و ۱۹۵۰ مربوط می‌ شود. کم کم که سایز برنامه های کامپیوتر و پیچیدگی آن ها بیشتر شد، برنامه نویسان ترسیدند که فضای اصلی کامپیوتر پر شود و با یک کامپیوتر بدون حافظه مواجه شود.

در روز های اول برنامه نویسان از یک فرایندی به نام رویِ هم گذاری برنامه ها برای اجرای شان استفاده می کردند که فضای بیشتری را نسبت به حافظه در دسترس ایجاد می کرد. بخش هایی از برنامه مورد استفاده قرار می‌ گرفتند، به جای دیگر انتقال داده می شدند و در صورت نیاز دوباره از آن ها استفاده می کردند. انجام این کار نیاز به یک برنامه نویسی گسترده داشت و زمان زیادی می خواست.

حل مشکل پر بودن حافظه گوشی با وجود خالی بودن

تا این که یک برنامه نویس آلمانی به نام Fritz-Rudolf Güntsch در سال ۱۹۵۶ مفهوم حافظه مجازی را بیان کرد.

اولین نمونه واقعی از سیستم حافظه مجازی از دانشگاه منچستر در انگلستان آمد که در آن زمان تلاش داشتند سیستم فضای ذخیره سازی سطح ۱ را برای کامپیوتر اطلس ایجاد کنند‌‌. این سیستم از صفحه بندی هایی برای ایجاد آدرس های مجازی و انتقال آن ها به برنامه استفاده می‌ کرد. این کامپیوتر ها در سال ۱۹۵۹ روی کار آمدند و در سال ۱۹۶۲ کم کم قدیمی شدند. اولین کامپیوتر تجاری در آن زمان با حافظه مجازی توسط Burroughs Corp در سال ۱۹۶۱ وارد بازار شد . این نسخه از حافظه مجازی از تقسیم بندی استفاده می کرد.

80 اصطلاح رایج تکنولوژی که باید بلد باشید

محققان IBM در سال ۱۹۶۹ با عملکردشان نشان دادند حافظه مجازی بهتر از سیستم‌ های دستی است که قبل از آن ها وجود داشت.  تا آن زمان هنوز بر سر این موضوع شک داشتند که محققان همه چیز را روشن کردند. همچنین از بعضی از مینی کامپیوتر ها هم در سال ۱۹۷۰ استفاده می‌ کردند که حافظه مجازی در آن ها وجود داشت. تکنولوژی حافظه مجازی در کامپیوتر های اولیه وجود نداشت، زیرا سازندگان آن ها به فکر کم شدن حافظه در مدت زمان طولانی نبودند.

pc-internet
wind

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا