ويندوز و مديريت حافظه


زمانی كه اولين نسخه ويندوز ارائه شده بود ،‌ امكان مديريت حافظه اندكی توسط آن وجود داشت . در آن زمان ، حافظه گران بود و حتی در صورتی كه استفاده كنندگان توان مالی تهيه آن را داشتند ، كامپيوترهای آن دوره قادر به استفاده از آن نبودند . اين وضعيت تا اواسط دهه 90 ميلادی ادامه داشت و بسياری از افرادی كه دارای كامپيوتر بودند ،‌ صرفا" از 8 مگابايت حافظه اصلی استفاده می كردند كه امكان ارتقاء آن به حداكثر 64 مگابايت وجود داشت .
قيمت بالا و ظرفيت بردهای اصلی سيستم ( مادر برد ) ، از جمله محدوديت های اساسی كامپيوترها در گذشته ای نه چندان دور است كه قطعا" هم اينك اين وضعيت بهبود يافته است و استفاده كنندگان كامپيوتر از اين بايت كمتر دچار مشكل می گردند.
در اكثر نسخه های ويندوز امكان استفاده از حافظه مجازی وجود دارد . با توجه به اين كه قيمت حافظه هارد ديسك نسبت به حافظه اصلی بمراتب كمتر است ، ويندوز از فضای ذخيره سازی هارد ديسك به منظور جبران كمبود حافظه اصلی سيستم استفاده می نمايد .
حافظه مجازی ، يك راه حل مناسب به منظور غلبه بر محدوديت حافظه اصلی است كه دارای چالش های مختص به خود نيز می باشد :

· كند بودن سرعت هارد ديسك نسبت به حافظه اصلی : هارد ديسك دارای سرعتی بمراتب پائين تر ( كندتر ) نسبت به حافظه اصلی است . دستيابی به حافظه اصلی بر اساس نانوثانيه و سرعت هارد ديسك بر اساس ميلی ثانيه اندازه گيری می شود .
· عدم امكان استفاده مستقيم از حافظه مجازی : يكی ديگر از مسائل در ارتباط با حافظه مجازی ، عدم امكان استفاده مستقيم از آن است . مثلا" فرض كنيد كه يك صفحه اطلاعات از حافظه اصلی بر روی هارد ديسك ( حافظه مجازی ) نوشته گردد . در صورتی كه در ادامه به اطلاعات موجود در اين صفحه نياز باشد ، كامپيوتر نمی تواند مستقيما" به آن دستيابی داشته باشد . در چنين مواردی ، می بايست قبل از اين كه كامپيوتر بتواند از داده استفاده نمايد ، داده درون حافظه اصلی مستقر گردد . به فرآيند فوق paging گفته می شود .
Paging باعث كند شدن يك سيستم می گردد چراكه كامپيوتر مجبور است در زمانی كه داده از هارد ديسك به درون حافظه اصلی منتقل می گردد ، عمليات جاری خود را متوقف و منتظر بماند . در واقع ، علت اصلی استفاده از حافظه مجازی نياز كامپيوتر به حافظه و عدم وجود ظرفيت لازم برای تامين خواسته های سيستم عامل است . در صورتی كه حافظه سيستم تكميل شده باشد ، كامپيوتر نمی تواند يك نسخه از صفحه داده را از هارد ديسك به درون حافظه اصلی منتقل نمايد . در چنين مواردی فضائی برای استقرار داده در حافظه اصلی وجود نداشته و سيستم عامل می بايست يك صفحه داده موجود در حافظه اصلی را به حافظه مجازی منتقل نمايد تا فضای لازم برای داده ئی كه به وجود آن نياز است ، ايجاد گردد . ( داده ئی كه می بايست از هارد ديسك به درون حافظه اصلی كامپيوتر منتقل شود )
paging ، فرآيندی است كه می بايست مديريت گردد . كامپيوتر می بايست از مكانی در حافظه اصلی به منظور ثبت وضعيت استفاده از حافظه استفاده نمايد . بنابراين ، سيستم می بايست قسمتی از حافظه خود را برای ثبت وضعيت صفحات و اين كه كدام صفحه در حافظه اصلی و كدام صفحه در حافظه مجازی است ، در نظر بگيرد. علاوه بر اين ، سيستم از سيكل های متعدد پردازنده ( CPU ) به منظور انتقال داده بين حافظه اصلی و حافظه مجازی استفاده می نمايد . در صورتی كه نگرانی خاصی در رابطه با Paging وجود نداشته باشد ، كامپيوتر به سرعت وظايف خود را انجام خواهد داد .


حافظه بيشتر، كاهش وابستگی ويندوز به حافظه مجازی ، عدم استفاده از زمان پردازنده و منابع ديگری نظير هارد ديسك را به دنبال خواهد داشت .



شايد بهترين گزينه اين باشد كه به اندازه ای حافظه به سيستم اضافه گردد تا درصد استفاده از حافظه مجازی به حداقل مقدار ممكن كاهش يابد . با اين كه گزينه فوق ممكن است به عنوان يك راه حل عملی باشد ، ولی نمی توان زمينه استفاده از حافظه مجازی را از ويندوز سلب نمود . ويندوز بگونه ای طراحی شده است كه بتواند از حافظه مجازی استفاده نمايد و سيستم عامل اين انتظار را دارد كه حافظه مجازی موجود و برای وی در دسترس باشد . هر اندازه كه به سيستم حافظه فيزيكی اضافه گردد ، وابستگی آن به حافظه مجازی كمتر خواهد شد.
شايد از بحث فوق اينگونه برداشت شود كه علت اصلی استفاده از حافظه مجازی ، جبران كمبود حافظه اصلی است . برداشت فوق با اين كه درست است ولی بيانگر تمامی ابعاد موضوع نمی باشد و تنها نيمی از حقيقت را شامل می شود .
به عنوان يك قانون ، شركت مايكروسافت توصيه می نمايد كه پيكربندی حافظه مجازی بر اساس ميزان حافظه فيزيكی ( RAM ) نصب شده بر روی ماشين ، انجام شود و حداقل ، حافظه مجازی 5 / 1 برابر حافظه اصلی باشد . اين بدان معنی است كه اگر ماشينی دارای 512 مگابايت حافظه اصلی باشد ، ويندوز انتظار دارد كه بتواند به حداقل 768 مگابايت حافظه مجازی دستيابی داشته باشد . فرض كنيد كه به اين نتيجه رسيده ايد كه 512 مگابايت حافظه اصلی نياز شما را تامين نمی نمايد و تصميم می گيريد حافظه ماشين خود را به يك گيگابايت ارتقاء دهيد.با اين كار شما نياز ويندوز به حافظه مجازی را هم افزايش داده ايد.در چنين شرايطی ويندوز اين انتظار را دارد كه بتواند به حافظه مجازی با ظرفيتی معادل 5 / 1 گيگابايت دستيابی داشته باشد .

عليرغم اين كه ظرفيت Pagefile ماشين ( فايلی كه از آن به عنوان حافظه مجازی استفاده می شود ) افزايش می يابد، اين بدان معنی نخواهد بود كه ماشين از pagefile به سختی استفاده می نمايد . عموما" عكس اين موضوع صادق است . نصب حافظه بيشتر ، باعث می شود كه ويندوز كمتر مجبور به paging گردد . حتی اگر ويندوز همچنان مجبور به استفاده از حافظه مجازی باشد ، حافظه اضافه نصب شده اين اطمينان را ايجاد می نمايد كه page مرتبط با برنامه در حال اجراء ، در حافظه اصلی موجود است و سيستم عامل به دليل كمبود حافظه مجبور نخواهد بود كه آن را بر روی فضای ذخيره سازی حافظه جانبی منتقل نمايد . بدين ترتيب برنامه ها با سرعت بيشتری اجراء شده و در زمانی مطلوب نياز كاربران را تامين و در نهايت كارآئی سيستم افزايش خواهد يافت .