حافظه مجازی(Virtual memory) چیست؟ معایب و مزایا و روش انجام چگونه است

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

این فرآیند موقتی انجام می شود و به صورتی طراحی شده است که با ترکیب رم و فضای روی هارد دیسک کار می کند.

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

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

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

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

Virtual memory هم از سخت افزار و هم از نرم افزار استفاده می کند تا کامپیوتر را قادر سازد کمبود حافظه فیزیکی را جبران سازی کند و به طور موقت داده ها را از حافظه دسترسی تصادفی (رم) به فضای ذخیره سازی روی دیسک منتقل می کند. انتقال بسته های اطلاعاتی حافظه به فایل های هارد دیسک، کامپیوتر را قادر می سازد تا با حافظه ثانویه مانند حافظه اصلی رفتار کند.

امروزه، اغلب کامپیوترهای شخصی (PC) با حداقل ۸ GB (گیگابایت) رم عرضه می شوند. اما، گاهی اوقات، این فضا برای اجرای چندین برنامه به صورت همزمان کافی نیست. در این موقعیت است که حافظه مجازی وارد می شود. حافظه مجازی داده هایی که اخیراً استفاده نشده اند را به یک دستگاه ذخیره سازی، مانند درایو هارد یا درایو حالت جامد (SSD) منتقل می کند، به صورتی که فضای رم می تواند آزاد شود.

حافظه مجازی برای بهبود عملکرد سیستم، انجام چند وظیفه همزمان و استفاده از برنامه های بسیار بزرگ؛ حائز اهمیت است.

با این حال، کاربران نباید بیش از حد به Virtual memory تکیه بکنند، زیرا این حافظه به میزان قابل توجهی کندتر از رم کار می کند. اگر سیستم عامل مجبور باشد که داده ها را در اغلب موارد بین حافظه مجازی و رم تبادل بکند، کامپیوتر کند می شود – این رخداد را کوبیدگی می نامند.

حافظه مجازی زمانی مطرح و به کار گرفته شد که حافظه فیزیکی – که با عنوان رم شناخته می شود- گرانقیمت بود. مقدار رم کامپیوترها محدود است به طوری که اگر چندین برنامه به طور همزمان بخواهند اجرا بشوند، فضای رم با کمبود مواجه می شود. سیستم با استفاده از Virtual memory، بخشی از درایو هارد را به کار می گیرد تا رم را شبیه سازی کند. با استفاده از حافظه مجازی، یک سیستم می تواند برنامه های بزرگتر یا چندین برنامه را به صورت همزمان اجرا بکند؛ و بدون این که نیاز به خرید رم بیشتر باشد، این طور به نظر می رسد که گویا واقعاً فضای ذخیره سازی بیشتری دارد.

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

Virtual memory برای عملکرد خود هم از سخت افزار و هم از نرم افزار کمک می گیرد. زمانی که یک برنامه اجرا می شود، داده های آن برنامه با استفاده از رم درون یک آدرس فیزیکی ذخیره می شوند. یک واحد مدیریت حافظه (MMU) آدرس را به رم انتقال می دهد و به صورت خودکار آدرس ها را ترجمه می کند. MMU می تواند، برای مثال، یک فضای آدرس منطقی را به یک آدرس فیزیکی مربوطه نگاشت کند. اگر، در هر نقطه ای، فضای رم برای موضوعی مورد نیاز فوری قرار بگیرد، داده ها را می توان از رم به حافظه مجازی منتقل کرد.

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

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

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

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

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

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

مدیریت حافظه مجازی در سیستم عامل تقریباً ساده است، زیرا تنظیمات پیشفرضی وجود دارد که مقدار فضای درایو هارد که برای Virtual memory تخصیص داده می شود را تعیین می کنند. این تنظیمات برای اغلب اپلیکیشن ها و برنامه ها کار خواهد کرد، اما ممکن است موقعیت هایی پیش بیاید که لازم باشد مقدار فضای درایو هارد تخصیص داده شده به حافظه مجازی به صورت دستی ریست بشود- برای مثال، هنگام کار با اپلیکیشن هایی که به زمان های پاسخ سریع بستگی دارند یا زمانی که کامپیوتر چندین درایو هارد دیسک داشته باشد (HDDs).

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

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

مزایای استفاده از حافظه مجازی عبارتند از:

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

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

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

با وجود این که استفاده از Virtual memory مزایایی دارد، اما برخی ملاحظات در مورد آن وجود دارد که باید در نظر گرفته شود، مانند:

  • اگر برنامه ها از روی حافظه مجازی اجرا بشوند، سرعت اجرای آنها کند می شود.
  • داده ها باید بین حافظه مجازی و فیزیکی نگاشت بشود؛ که این امر نیازمند پشتیبانی سخت افزاری اضافی برای ترجمه آدرس ها می باشد و باعث کند شدن بیشتر کامپیوتر می شود.
  • اندازه ذخیره سازی مجازی به دلیل حجم ذخیره سازی ثانویه و طرح آدرس دهی با سیستم کامپیوتر محدود می شود.
  • اگر رم کافی نباشد، کوبیدگی (trashing) ممکن است رخ بدهد که باعث کند شدن عملکرد کامپیوتر می شود.
  • جابه جایی بین برنامه ها با استفاده از حافظه مجازی ممکن است زمانبر باشد.
  • فضای موجود در درایو هارد را کاهش می دهد.

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

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

در نخستین روزها، برنامه نویس ها از فرآیندی به نام جایگذاشت (overlaying) استفاده می کردند تا برنامه هایی را که بزرگتر از حافظه موجود بودند را اجرا بکنند. بخش هایی از برنامه که مداوم استفاده نمی شوند. به صورت overlay (جایگذاشت) تنظیم می شوند و زمانی که مورد نیاز واقع می شوند، Overlay های موجود بازنویسی خواهند شد. این امر نیازمند برنامه نویسی گسترده است تا کار جایگذاری (Overlaying) را انجام بدهند، این موضوع انگیزه و محرک اصلی برای توسعه و به کار گیری حافظه مجازی می باشد.

فیزیک دان آلمانی فریتز رودلف گونتش به واسطه توسعه و به کار گیری Virtual memory در سال ۱۹۵۶ به شهرت رسید، البته این نکته بعدها مورد بحث قرار گرفت. با این وجود، گونش در نهایت نوعی از حافظه کش را توصیف و معرفی نمود.

در ۱۹۶۹ محققین IBM نشان داده اند که سیستم های جایگذاری حافظه مجازی نسبت به سیستم های دستی قدیمی تر عملکرد بهتری دارند.

تا این لحظه همچنان این موضوع مورد بحث است و در مورد آن شک و تردید وجود دارد. مین فریم ها (بزرگ رایانه ها) و مینی کامپیوترها در دهه ۱۹۷۹ عموماً از حافظه مجازی استفاده می کنند. تکنولوژی حافظه مجازی در کامپیوترهای شخصی ابتدایی به کار گرفته نشده است زیرا توسعه دهندگان بر این باور بودند که تمام شدن حافظه نمی تواند مشکلی برای این کامپیوترها ایجاد کند. در ادامه نادرست بودن این فرضیه اثبات شد. اینتل، حافظه مجازی را در حالت حافظت شده ی پردازنده ۸۰۲۸۶ در سال ۱۹۸۲ معرفی کرد؛ همچنین پشتیبانی از صفحه بندی را زمانی که ۸۰۳۸۶ در سال ۱۹۸۵ به بازار آمد، معرفی نمود.

آخرین نوشته ها

تماس با ما

  •  کرج، شاهین ویلا، بلوار امام خمینی ، خیابان نهم شرقی ، برج شاهین ،طبقه اول واحد2
  •  91014618
  •   info@shopingserver.net

با تلفن ثابت بدون پیش شماره قابل شماره گیری هست و در صورتی که با تلفن همراه قصد تماس گرفتن دارید از پیش شماره استان خود را اول شماره وارد نمایید.

reza emam

reza emam

مطالب مرتبط