حافظه مجازی یک ویژگی سیستم عامل است که کامپیوتر را قادر می سازد تا با انتقال داده ها از حافظه دسترسی تصادفی به ذخیره سازی روی دیسک، بتواند کمبود حافظه فیزیکی را جبران کند.
این فرآیند موقتی انجام می شود و به صورتی طراحی شده است که با ترکیب رم و فضای روی هارد دیسک کار می کند.
این بدان معنی است که زمانی که حافظه رم با کمبود مواجه می شود، حافظه مجازی می تواند داده ها را از رم به فضایی منتقل بکند که فایل پیجینگ نامیده می شود. این فرآیند باعث می شود که فضای رم آزاد بشود و کامپیوتر وظیفه خود را تکمیل می کند.
گاهی اوقات ممکن است پیامی برای کاربر به نمایش درآید که می گوید حافظه مجازی کافی نیست، این بدان معنا است که یا فضای رم بیشتری باید اضافه شود، یا اندازه فایل پیجینگ باید افزایش پیدا کند.
حافظه مجازی (Virtual memory ) به عنوان یک تکنیک مدیریت حافظه استفاده میشود که با استفاده از حافظه ثانویه، به عنوان بخشی از حافظه اصلی، عمل میکند. همچنین، حافظه مجازی یک روش رایج در سیستمعاملهای کامپیوتر است که استفاده از سختافزار و نرمافزار را ممکن میسازد تا کمبود حافظه فیزیکی را جبران کرده و موقتاً دادهها را از حافظه دسترسی تصادفی (RAM) به فضای ذخیرهسازی روی دیسک منتقل کند. با انتقال بستههای اطلاعاتی از حافظه به فایلهای هارددیسک، کامپیوتر قادر است به طور مشابه با حافظه اصلی با حافظه ثانویه رفتار کند.
امروزه، اغلب کامپیوترهای شخصی (PC) با حداقل ۸ GB (گیگابایت) رم عرضه می شوند. اما، گاهی اوقات، این فضا برای اجرای چندین برنامه به صورت همزمان کافی نیست. در این موقعیت است که حافظه مجازی وارد می شود. حافظه مجازی داده هایی که اخیراً استفاده نشده اند را به یک دستگاه ذخیره سازی، مانند درایو هارد یا درایو حالت جامد (SSD) منتقل می کند، به صورتی که فضای رم می تواند آزاد شود.
با این وجود، کاربران نباید بیش از حد به حافظه مجازی تکیه کنند، زیرا این حافظه به طور قابل توجهی کندتر از حافظه دسترسی تصادفی (رم) عمل میکند. در صورتی که سیستم عامل مجبور شود دادهها را بین حافظه مجازی و رم به تبادل کند، کامپیوتر کند عمل میکند و این پدیده را به عنوان کوبیدگی مینامند.
استفاده از حافظه مجازی در زمانی مطرح و به کار گرفته شد که حافظه فیزیکی (رم)، که به عنوان حافظه اصلی شناخته میشود، هزینهبر بود. مقدار رم موجود در کامپیوترها محدود است و در صورتی که چندین برنامه به صورت همزمان اجرا شوند، با محدودیت رم مواجه میشویم. با استفاده از حافظه مجازی، سیستم بخشی از فضای درایو هارد را به عنوان شبیهسازی رم استفاده میکند. با این استفاده از حافظه مجازی، یک سیستم قادر است برنامههای بزرگتر یا چندین برنامه را همزمان اجرا کند، بدون اینکه نیاز به افزایش رم فیزیکی داشته باشد. به نظر میرسد که سیستم واقعاً دارای فضای ذخیرهسازی بیشتری است.
Virtual memory برای عملکرد خود هم از سخت افزار و هم از نرم افزار کمک می گیرد. زمانی که یک برنامه اجرا می شود، داده های آن برنامه با استفاده از رم درون یک آدرس فیزیکی ذخیره می شوند. یک واحد مدیریت حافظه (MMU) آدرس را به رم انتقال می دهد و به صورت خودکار آدرس ها را ترجمه می کند. MMU می تواند، برای مثال، یک فضای آدرس منطقی را به یک آدرس فیزیکی مربوطه نگاشت کند. اگر، در هر نقطه ای، فضای رم برای موضوعی مورد نیاز فوری قرار بگیرد، داده ها را می توان از رم به حافظه مجازی منتقل کرد.
واحد مدیریت حافظه کامپیوتر در واقع این انتقال ها بین حافظه مجازی و فیزیکی را پیگیری و ردیابی می کند. اگر داده ها دوباره مورد نیاز قرار گرفته اند، MMU کامپیوتر از تعویض زمینه استفاده می کند تا اجرا از سر گرفته بشود.
یک واحد مدیریت حافظه (MMU) در کامپیوتر قادر است عملکردهای حافظه مجازی را مدیریت کند. در اکثر کامپیوترها، سختافزار MMU به صورت یک واحد یکپارچه با واحد پردازنده مرکزی (CPU) تعبیه شده است. CPU نیز فضای آدرس مجازی را ایجاد میکند. به طور کلی، حافظه مجازی به صورت صفحهبندی یا بخشبندی عمل میکند.
صفحهبندی (پیجینگ) حافظه را به چندین بخش یا فایل صفحهبندی تقسیم میکند. زمانی که یک کامپیوتر از حافظه دسترسی تصادفی (RAM) استفاده میکند، صفحههایی که در حال حاضر استفاده نمیشوند، به وسیلهٔ یک فایل تبادل به درایو هارد منتقل میشوند.
فایل swap یک فضای مجازی روی درایو هارد است که به عنوان توسعهدهنده حافظه مجازی برای رم کامپیوتر استفاده میشود. زمانی که فایل swap مورد نیاز است، با استفاده از یک فرآیند به نام صفحهبندی صفحهبندی (page swapping) به رم بازگردانده میشود. این سیستم تضمین میکند که سیستم عامل کامپیوتر و برنامهها خارج از حافظه فیزیکی اجرا نمیشوند. حداکثر اندازهٔ فایل صفحه میتواند تا چهار برابر حجم حافظه فیزیکی کامپیوتر باشد.
مدیریت حافظه مجازی در سیستم عامل به طور کلی به سادگی قابل انجام است، زیرا تنظیمات پیشفرضی وجود دارد که میزان فضای درایو هارد اختصاص داده شده به حافظه مجازی را تعیین میکنند. این تنظیمات برای اکثر برنامهها و اپلیکیشنها کارآمد هستند، اما ممکن است مواقعی پیش بیاید که نیاز به دستکاری دستی مقدار فضای درایو هارد اختصاص داده شده به حافظه مجازی وجود داشته باشد، به عنوان مثال هنگامی که با اپلیکیشنهایی که به زمان پاسخ سریع وابسته هستند یا در صورتی که کامپیوتر دارای چندین درایو هارد دیسک (HDD) باشد.
در هنگام دستکاری دستی حافظه مجازی، مقادیر حداقل و حداکثر فضای درایو هارد قابل استفاده باید مشخص شوند. اختصاص فضای بیش از حد کمی از HDD به حافظه مجازی ممکن است باعث پر شدن حافظه RAM کامپیوتر شود. اگر سیستم به طور مداوم به مقدار بیشتری از حافظه مجازی نیاز دارد، افزایش حافظه RAM راهکار منطقیتری است. سیستم عاملهای معمولاً به طور کلی توصیه میکنند که حافظه مجازی را تا بیش از ۱.۵ برابر مقدار RAM افزایش ندهید.
مزایای استفاده از حافظه مجازی عبارتند از:
علاوه بر این مزایا، در محیط محاسباتی مجازی شده، مدیران شبکه می توانند از روش های مدیریت حافظه مجازی استفاده کننده تا حافظه را به یک ماشین مجازی تخصیص دهند (VM) که اجرای آن نیاز به حافظه زیادی دارد.
با وجود این که استفاده از Virtual memory مزایایی دارد، اما برخی ملاحظات در مورد آن وجود دارد که باید در نظر گرفته شود، مانند:
قبل از توسعه و استفاده از حافظه مجازی، کامپیوترها از حافظه اصلی و حافظه ثانویه استفاده میکردند. در نسلهای جدیدتر کامپیوترها، از حافظه هسته مغناطیسی به عنوان حافظه اصلی و از درامهای مغناطیسی به عنوان حافظه ثانویه استفاده میشد. حافظه کامپیوترها در دهههای ۱۹۴۰ و ۱۹۵۰ به طور عمومی گران قیمت و محدود بودند. با پیشرفت اندازه و پیچیدگی برنامههای کامپیوتری، توسعهدهندگان نگران این بودند که برنامههایشان از تمام حافظه اصلی استفاده کنند و حافظه کامپیوتر تمام شود.
در اوایل، برنامهنویسان از یک فرایند به نام جایگذاری (overlaying) برای اجرای برنامههای بزرگتر از حافظه موجود استفاده میکردند. بخشهایی از برنامه که به طور مداوم استفاده نمیشدند، به صورت جایگذاری تنظیم میشدند و زمانی که نیاز میشد، این جایگذاریها بازنویسی میشدند. این کار نیازمند برنامهنویسی پیچیده برای انجام جایگذاری بود و این موضوع انگیزه و اصلی برای توسعه و استفاده از حافظه مجازی بود.
فریتز رودلف گونتش، فیزیکدان آلمانی، در سال ۱۹۵۶ به دلیل توسعه و استفاده از Virtual memory به شهرت رسید، اگرچه این موضوع بعدها مورد بحث قرار گرفت. با این حال، گونتش در نهایت نوعی حافظه کش را شرح و معرفی کرد.
تا به حال، این موضوع همچنان مورد بحث و شک و تردید قرار دارد. در دهه ۱۹۷۹، سیستمهای بزرگ و کامپیوترهای کوچک عموماً از Virtual memory استفاده میکردند. در ابتدای دوران کامپیوترهای شخصی، تکنولوژی حافظه مجازی استفاده نشده بود به خاطر اینکه توسعهدهندگان باور داشتند پر شدن حافظه مشکلی برای این کامپیوترها ایجاد نخواهد کرد. اما بعدها ثابت شد که این فرضیه نادرست است. در سال ۱۹۸۲، اینتل Virtual memory را در پردازنده ۸۰۲۸۶ معرفی کرد و همچنین در زمان عرضه پردازنده ۸۰۳۸۶ در سال ۱۹۸۵، پشتیبانی از صفحهبندی را نیز معرفی کرد.
اگر به سئو سایت وردپرسی خود اهمیت می دهید، مطمئناً معیارهای مهمی مثل سرعت و…
در عصر حاضر، فناوری اطلاعات و هوش مصنوعی (AI) به سرعت در حال دگرگونسازی جنبههای…
دنیای تکنولوژی همیشه در حال تغییر است و هر روز یک فناوری تازه جایگزین روشهای…
آموزش جامع نصب Django روی اوبونتو مقدمه اگر به دنبال ساخت یک وبسایت یا اپلیکیشن…
آموزش گامبهگام حذف محدودیت Grace Period در Remote Desktop Services یکی از مشکلات رایج در…
پروتکل Remote Desktop Protocol (RDP) یکی از متداولترین روشها برای مدیریت سرورهای ویندوزی از راه…