ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 |
ارتباط افزایش حافظه اصلی با سرعت کامپیوتر
آیا سرعت اجرای برخی برنامه ها بر روی کامپیوتر شما پائین است ؟ برای حل مشکل بدنبال چه راهکاری هستید ؟ آیا فکر می کنید اگر حافظه کامپیوتر خود را افزایش دهید ، سرعت اجرای برنامه ها بهبود پیدا می نماید ؟ با مطالعه ایـن مطلب شاید پاسخ به سوالات فوق ، مشخص گردد.
افزایش حافظه اصلی کامپیوتر ( RAM ) ، باعث افزایش سرعت برخی عملیات در کامپیوتر می شود (واقعیتی انکار ناپذیر) . RAM یکی از مهمترین عناصر سخت افزاری موجود در کامپیوتر است که سیستم های عامل برای مدیریت بهینه آن جایگاهی خاص را در نظر می گیرند . زمانی که یک برنامه کامپیوتری نظیر یک واژه پرداز و یا برنامه ای نظیر مرورگرهای وب را اجراء می نمائید ، ریزپردازنده موجود در کامپیوتر ، فایل اجرائی حاوی برنامه را از محل استقرار دائم ( هارد دیسک ) به درون حافظه اصلی کامپیوتر ، مستقر می نماید( فرآیند معروف Loading ). حجم فایل اجرائی برخی از برنامه ها نظیر Word و یا Excel به پنج مگابایت می رسد. ریزپردازنده ، همچنین در این زمینه تعداد زیادی فایل های DLL مشترک ( dynamic link libraries ) ( بخش هائی از کدهای به اشتراک گذاشته شده توسط چندین برنامه ) را به درون حافظه منتقل می نماید . فایل های DLL ممکن است بین بیست تا سی مگابایت ظرفیت داشته باشند . در ادامه ریزپردازنده فایل های حاوی داده مورد نیاز یک برنامه را که ممکن است چندین مگابایت باشند را نیز در حافظه مستقر می نماید ( میزان داده مستقر شده در حافظه به نوع برنامه و عملیاتی که انجام می دهد ، بستگی دارد ) . با توجه به موارد فوق ، یک برنامه معمولی به فضائی معادل چندین مگابایت ( مثلا" بین ده تا سی مگابایت ) به منظور اجراء نیاز خواهد داشت .
فرض کنید که نرم افزارهای زیر بر روی کامپیوتر شما در حال اجراء می باشند :
علاوه بر برنامه های فوق ، سیستم عامل خود به تنهائی فضای زیادی را اشغال خواهد کرد . برنامه های فوق به فضائی بین یکصد تا یکصد و پنجاه مگابایت نیاز خواهند داشت ، ولی ممکن است کامپیوتر شما صرفا" دارای مثلا" شصت و چهار مگابایت حافظه باشد .
فضای اضافی توسط مدیر حافظه مجازی ( VMM ) ایجاد می گردد . VMM با جستجو در حافظه ، محلی را که در آن لحظه مورد نیاز نمی باشد را پیدا نموده و بخش های فوق را در یک فایل Swap بر روی هارد دیسک ذخیره می نماید. مثلا" در صورتی که برنامه پست الکترونیکی ( نظیر outlook ) فعال شده باشد و به مدت زمان مشخصی (مثلا" 45 دقیقه) از آن استفاده نمی گردد ، VMM ، تمامی عناصر تشکیل دهنده فایل اجرائی مربوط به برنامه پست الکترونیکی را بهمراه فایل های DLL و داده بر روی هارد دیسک منتقل می نماید . به فرآیند فوق، Swapping out برنامه گفته می شود . در ادامه و زمانی که بر روی برنامه پست الکترونیکی کلیک می گردد ، VMM ، مجددا" تمامی اطلاعات مربوط به برنامه را از هارد دیسک خوانده و آنان را با برنامه دیگری که موجود در حافظه می باشد و از آن استفاده نمی گردد ، جایگزین می نماید . با توجه به این واقعیت که سرعت هارد دیسک نسبت به RAM کمتر می باشد ، فرآیند "جایگزینی اطلاعات " زمان خاص خود را داشته و عموما" این فرآیند با تاخیر انجام می شود .
در صورتی که شما دارای حجم اندکی حافظه می باشید ( مثلا" شانزده مگابایت ) ، VMM همواره و با فرکانس بیشتری اقدام به عملیات جایگزینی اطلاعات نموده و سرعت کامپیوتر بطرز کاملا" محسوسی کاهش خواهد یافت . در صورتی که کامپیوتر شما دارای 256 مگابایت حافظه می باشد ، VMM دارای فضای لازم بوده و فرآیند جایگزینی با فرکانس کمتری انجام شده و یا حضور آن چندان محسوس نباشد . در چنین مواردی با افزودن حافظه ، تاثیر بسیار زیادی در سرعت سیستم را مشاهده نخواهیم کرد .
برخی از برنامه ها ( نظیر فتوشاپ ، اکثر کمپایلرها ، اکثر برنامه های ویرایش فیلم و انیمیشن ) نیازمند حجم بسیار بالائی از حافظه به منظور انجام عملیات خود می باشند. در صورتی که این نوع برنامه ها را بر روی کامپیوتری که دارای حجم اندکی از حافظه است ، اجراء نمائید ، فرآیند جایگزینی بطور دائم انجام و سرعت اجرای این نوع برنامه ها ، مطلوب نخواهد بود . با افزودن حافظه به سیستم و بهینه سازی فرآیند جایگزینی ( و یا حذف آن ) ، برنامه های فوق با سرعت بالائی اجراء می گردند
تاثیر حافظه اصلی بر کارآئی سیستم در هر کامپیوتر از مجموعه ای منابع سخت افزاری و نرم افزاری استفاده می گردد که هر یک دارای جایگاه مختص به خود می باشند . سیستم عامل ، مسئولیت مدیریت منابع موجود در یک کامپیوتر را برعهده دارد . مجموعه پتانسیل های سخت افزاری و نرم افزاری موجود و نحوه مدیریت آنان توسط سیستم عامل ، میزان مفید بودن و کارآئی یک کامپیوتر را مشخص می نماید.
حافظه اصلی ( RAM ) یکی از مهمترین منابع سخت افزاری موجود در کامپیوتر است که با توجه به نقش محوری آن در اجرای برنامه های کامپیوتری ، همواره در معرض پرسش های فراوانی از جانب کاربران کامپیوتر است. به عنوان نمونه ، شاید این سوال برای شما نیز مطرح شده باشد که تاثیر افزایش حافظه اصلی بر سرعت کامپیوتر چیست و در صورت افزایش حافظه اصلی ، آیا کارائی سیستم نیز به همان میزان افزایش خواهد یافت ؟
در این مطلب به بررسی این موضوع خواهیم پرداخت که چرا حافظه اصلی دارای یک نقش مهم و غیرقابل انکار در کارائی سیستم است . ادامه بحث را با در نظر گرفتن دو فرضیه دنبال می نمائیم . اول این که بر روی کامپیوتر از یکی از نسخه های سیستم عامل ویندوز 2000 ، XP و یا 2003 سی و دو بیتی استفاده می گردد و دوم این که از یک کامیپوتر مدل جدید با پتانسیل های سخت افزاری مناسب ، استفاده می شود .
هر سیستم عامل از یک مدل خاص برای مدیریت منبع ارزشمند حافظه اصلی استفاده می نماید . نحوه مدیریت حافظه توسط سیستم عامل ، یکی از شاخص های مهم ارزیابی موفقیت یک سیستم عامل محسوب می گردد . ویندوز نیز به عنوان یک سیستم عامل از این قاعده مستثنی نمی باشد.
ویندوز و مدیریت حافظه زمانی که اولین نسخه ویندوز ارائه شده بود ، امکان مدیریت حافظه اندکی توسط آن وجود داشت . در آن زمان ، حافظه گران بود و حتی در صورتی که استفاده کنندگان توان مالی تهیه آن را داشتند ، کامپیوترهای آن دوره قادر به استفاده از آن نبودند . این وضعیت تا اواسط دهه 90 میلادی ادامه داشت و بسیاری از افرادی که دارای کامپیوتر بودند ، صرفا" از 8 مگابایت حافظه اصلی استفاده می کردند که امکان ارتقاء آن به حداکثر 64 مگابایت وجود داشت .
قیمت بالا و ظرفیت بردهای اصلی سیستم ( مادر برد ) ، از جمله محدودیت های اساسی کامپیوترها در گذشته ای نه چندان دور است که قطعا" هم اینک این وضعیت بهبود یافته است و استفاده کنندگان کامپیوتر از این بایت کمتر دچار مشکل می گردند.
در اکثر نسخه های ویندوز امکان استفاده از حافظه مجازی وجود دارد . با توجه به این که قیمت حافظه هارد دیسک نسبت به حافظه اصلی بمراتب کمتر است ، ویندوز از فضای ذخیره سازی هارد دیسک به منظور جبران کمبود حافظه اصلی سیستم استفاده می نماید .
حافظه مجازی ، یک راه حل مناسب به منظور غلبه بر محدودیت حافظه اصلی است که دارای چالش های مختص به خود نیز می باشد :
Paging باعث کند شدن یک سیستم می گردد چراکه کامپیوتر مجبور است در زمانی که داده از هارد دیسک به درون حافظه اصلی منتقل می گردد ، عملیات جاری خود را متوقف و منتظر بماند . در واقع ، علت اصلی استفاده از حافظه مجازی نیاز کامپیوتر به حافظه و عدم وجود ظرفیت لازم برای تامین خواسته های سیستم عامل است . در صورتی که حافظه سیستم تکمیل شده باشد ، کامپیوتر نمی تواند یک نسخه از صفحه داده را از هارد دیسک به درون حافظه اصلی منتقل نماید . در چنین مواردی فضائی برای استقرار داده در حافظه اصلی وجود نداشته و سیستم عامل می بایست یک صفحه داده موجود در حافظه اصلی را به حافظه مجازی منتقل نماید تا فضای لازم برای داده ئی که به وجود آن نیاز است ، ایجاد گردد . ( داده ئی که می بایست از هارد دیسک به درون حافظه اصلی کامپیوتر منتقل شود ) paging ، فرآیندی است که می بایست مدیریت گردد . کامپیوتر می بایست از مکانی در حافظه اصلی به منظور ثبت وضعیت استفاده از حافظه استفاده نماید . بنابراین ، سیستم می بایست قسمتی از حافظه خود را برای ثبت وضعیت صفحات و این که کدام صفحه در حافظه اصلی و کدام صفحه در حافظه مجازی است ، در نظر بگیرد. علاوه بر این ، سیستم از سیکل های متعدد پردازنده ( CPU ) به منظور انتقال داده بین حافظه اصلی و حافظه مجازی استفاده می نماید . در صورتی که نگرانی خاصی در رابطه با Paging وجود نداشته باشد ، کامپیوتر به سرعت وظایف خود را انجام خواهد داد .
حافظه بیشتر، کاهش وابستگی ویندوز به حافظه مجازی ، عدم استفاده از زمان پردازنده و منابع دیگری نظیر هارد دیسک را به دنبال خواهد داشت . |
شاید بهترین گزینه این باشد که به اندازه ای حافظه به سیستم اضافه گردد تا درصد استفاده از حافظه مجازی به حداقل مقدار ممکن کاهش یابد . با این که گزینه فوق ممکن است به عنوان یک راه حل عملی باشد ، ولی نمی توان زمینه استفاده از حافظه مجازی را از ویندوز سلب نمود . ویندوز بگونه ای طراحی شده است که بتواند از حافظه مجازی استفاده نماید و سیستم عامل این انتظار را دارد که حافظه مجازی موجود و برای وی در دسترس باشد . هر اندازه که به سیستم حافظه فیزیکی اضافه گردد ، وابستگی آن به حافظه مجازی کمتر خواهد شد.
شاید از بحث فوق اینگونه برداشت شود که علت اصلی استفاده از حافظه مجازی ، جبران کمبود حافظه اصلی است . برداشت فوق با این که درست است ولی بیانگر تمامی ابعاد موضوع نمی باشد و تنها نیمی از حقیقت را شامل می شود .
به عنوان یک قانون ، شرکت مایکروسافت توصیه می نماید که پیکربندی حافظه مجازی بر اساس میزان حافظه فیزیکی ( RAM ) نصب شده بر روی ماشین ، انجام شود و حداقل ، حافظه مجازی 5 / 1 برابر حافظه اصلی باشد . این بدان معنی است که اگر ماشینی دارای 512 مگابایت حافظه اصلی باشد ، ویندوز انتظار دارد که بتواند به حداقل 768 مگابایت حافظه مجازی دستیابی داشته باشد . فرض کنید که به این نتیجه رسیده اید که 512 مگابایت حافظه اصلی نیاز شما را تامین نمی نماید و تصمیم می گیرید حافظه ماشین خود را به یک گیگابایت ارتقاء دهید.با این کار شما نیاز ویندوز به حافظه مجازی را هم افزایش داده اید.در چنین شرایطی ویندوز این انتظار را دارد که بتواند به حافظه مجازی با ظرفیتی معادل 5 / 1 گیگابایت دستیابی داشته باشد .
علیرغم این که ظرفیت Pagefile ماشین ( فایلی که از آن به عنوان حافظه مجازی استفاده می شود ) افزایش می یابد، این بدان معنی نخواهد بود که ماشین از pagefile به سختی استفاده می نماید . عموما" عکس این موضوع صادق است . نصب حافظه بیشتر ، باعث می شود که ویندوز کمتر مجبور به paging گردد . حتی اگر ویندوز همچنان مجبور به استفاده از حافظه مجازی باشد ، حافظه اضافه نصب شده این اطمینان را ایجاد می نماید که page مرتبط با برنامه در حال اجراء ، در حافظه اصلی موجود است و سیستم عامل به دلیل کمبود حافظه مجبور نخواهد بود که آن را بر روی فضای ذخیره سازی حافظه جانبی منتقل نماید . بدین ترتیب برنامه ها با سرعت بیشتری اجراء شده و در زمانی مطلوب نیاز کاربران را تامین و در نهایت کارآئی سیستم افزایش خواهد یافت .
آیا محدودیتی در ارتباط با حافظه وجود دارد ؟ در ابتدای بحث اشاره گردید که اطلاعات موجود در این مقاله صرفا" برای سیستم های 32 بیتی مفید بوده و در ارتباط با سیستم های 64 بیتی نمی باشد . حقیقت این است که حتی سیستم های 64 بیتی نیز در ارتباط با حافظه مجازی می باشند ولی نسخه های 32 بیتی و 64 بیتی بطور کامل از مدل های حافظه مختلفی استفاده می نمایند . سیستم های 32 بیتی صرفا" دارای 32 بیت بوده و می توانند حداکثر 4 گیگابایت حافظه اصلی را آدرس دهی نمایند . یک سیستم 64 بیتی از لحاظ تئوری قادر به آدرس دهی 16 اگزابایت ( بیش از 16،000،000 گیگابایت حافظه RAM ) می باشد. تولید یک ماشین که بتواند از این میزان حافظه حمایت نماید در حال حاضر هزینه بالائی داشته و مقرون به صرفه نمی باشد . اکثر سیستم های 64 بیتی موجود میزان حافظه اصلی را محدود بین 8 گیگابایت و 256 ترابایت نموده اند .
محدودیت فضای آدرس دهی 4 گیگابایتی برای ماشین های 32 بیتی که برروی آنان ویندوز نصب شده است ، چه پیامدهائی را به دنبال دارد ؟ ویندوز بگونه ای طراحی شده است تا بتواند بطور کامل 4 گیگابایت حافظه را آدرس دهی نماید . ویندوز فضای چهار گیگابایتی را به دو بخش مساوی تقسیم می نماید . یکی از بخش ها توسط سیستم عامل و از بخش دیگر به منظور User mode ( یا برنامه ها ) استفاده می گردد .
در صورت نیاز می توان پیکربندی پیش فرض فوق را تغییر داد . بدین منظور از فایل Boot.ini استفاده می گردد . به عنوان نمونه می توان در فایل فوق از سوئیچ 3GB / استفاده نمود . بدین ترتیب ویندوز پیکربندی پیش فرض خود را تغییر و از یک فضای یک گیگابایتی برای خود و از یک فضای 3 گیگاباتیی برای user mode استفاده می نماید . بدین ترتیب ویندوز می تواند مدیریت بهتری را به منظور تامین خواسته برنامه های بزرگی نظیر Exchange server انجام دهد(هر گز از سوئیچ اشاره شده بر روی Small Business Server و یا یک کنترل کننده domain استفاده نگردد) .