درک تاثیر رم در عملکرد کلی سیستم

امروز قصد داریم در مورد تاثیر رم در عملکرد کلی سیستم صحبت کنیم اما قبل از اینکه بخواهیم مقاله امروز کیهان سرور را شروع کنیم دو فرضیه را ایجاد می کنیم: اول اینکه فرض می کنیم که شما سیستم عامل ویندوز 2000، ویندوز XP یا ویندوز سرور 2003 را روی کامپیوتر 32 بیتی خود اجرا می کنید. فرض دوم این است که کامپیوتر شما نسبتا جدید است و خیلی قدیمی نیست. اطلاعات این مقاله ممکن است برای نسخه های دیگر ویندوز، سیستم های 64 بیتی یا برای کامپیوترهای به شدت قدیمی درست نباشد.

تاثیر رم در عملکرد کلی سیستم

ویندوز و حافظه

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

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

درک تاثیر رم در عملکرد کلی سیستم

تاثیر رم در عملکرد کلی سیستم

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

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

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

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

هر چند ممکن است فرض کنید که حافظه فیزیکی بیشتر در سیستم شما نیاز به حافظه مجازی را در سیستم شما کاهش می دهد و حافظه مجازی تنها برای رفع کمبود رم استفاده می شود، درست است؟ خب این چیزی است که کمی عجیب به نظر می رسد. ایده ال این است که اضافه کردن رم بیشتر به سیستم تان نیاز دستگاه به حافظه مجازی را به نصف کاهش می دهد. این چیزی است که به عنوان یک قاعده کلی بیان می شود، مایکروسافت توصیه می کند که میزان استفاده از حافظه مجازی دستگاه را براساس میزات حافظه فیزیکی که در سیستم خود نصب کرده اید تنظیم کنید. مخصوصا مایکروسافت توصیه می کند که دستگاه شما باید 1.5 برابر حافظه مجازی بیشتری از حافظه فیزیکی داشته باشد. این بدان معناست که اگر شما یک رم 512 مگابایتی دارید، ویندوز انتظار دارد که حداقل به 768 مگابایت حافظه مجازی دسترسی داشته باشد.

حالا فرض کنید که شما 512 مگابایت رم دارید و تصمیم دارید حافظه سیستم خود را به 1 گیگابایت ارتقاء دهید. در حقیقت این کار باعث می شود که الزامات حافظه مجازی ویندوز افزایش پیدا کند و  ویندوز انتظار دارد که  دستگاه 1.5 گیگابایت رم در اختیار داشته باشد. افزایش اندازه pagefile ( فایلی که به عنوان حافظه مجازی استفاده می شود) دستگاه به این معنا نیست که دستگاه باید به صورت سنگین تری از pagefile استفاده کند. معمولا عکس این قضیه درست است. نصب حافظه بیشتر در داخل دستگاه باعث می شود که با احتمال دسترسی ویندوزبه صفحه کمتر شود. حتی اگر ویندوز همچنان مجبور به استفاده از حافظه مجازی باشد، حافظه اضافی نصب شده به شما این اطمینان را می دهد که برنامه هایی در پس زمینه اجرا می شوند صفحه بندی نشده اند. این کمک می کند تا برنامه ها پاسخگوتر باشند و کاربر عملکرد کلی بهتری داشته باشد.

درک تاثیر رم در عملکرد کلی سیستم

تاثیر رم در عملکرد کلی سیستم

آیا محدودیت وجود دارد؟

همانطور که در ابتدای مقاله اشاره شد، اطلاعات این مقاله تنها در مورد سیستم های 32 بیتی درست است و در مورد سیستم های 64 بیتی صحیح نمی باشد. حقیقت این است که حتی سیستم های 64 بیتی هم متکی بر حافظه مجازی هستند اما نسخه های 32 بیتی و 64 بیتی ویندوز از مدل های مختلف حافظه استفاده می کنند. واقعیت این است که سیستم های 32 بیتی تنها با 32 بیت از داده ها کار می کنند که به این معناست که حداکثر می توانند 4 گیگابایت رم را آدرس دهی کنند. یک سیستم 64 بیتی می تواند به صورت تئوری حداکثر 16 اگزابایت رم را آدرس دهی کنند (بیش از 16000000گیگابایت رم). مونتاژ یک سیستم که حافظه بسیار زیادی را پشتیبانی کند بسیار گران خواهد بود. برای مقابله با این مشکل، بسیاری از تولید کنندگان فضای آدرس رم را محدود می کنند. اکثر سیستم های 64 بیت به حافظه رم فیزیکی مابین 8 گیگابایت تا 256 ترابایت محدود می شوند. بنابراین این محدودیت 4 گیگابایتی به این معناست که ماشین های 32 بیتی سیستم عامل ویندوز را اجرا می کنند؟

ویندوز برای آدرس دهی یک فضای حافظه 4 گیگابایتی کامل طراحی شده است. ویندوز این حافظه 4 گیگابایتی را به دو فضای ادرس 2 گیگابایتی مجزا تقسیم می کند. یکی از فضاهای آدرس 2 گیگابایتی توسط سیستم عامل ویندوز استفاده می شود و فضای آدرس 2 گیگابایتی دیگر برای فرایندهای مد کاربر (برنامه ها) استفاده می شود. به عنوان یک نکته جانبی، روشی برای تغییر مکان یابی فضاهای آدرس ویندوز وجود دارد. شما ممکن است گاهی اوقات ویندوز سروری را مشاهده کنید که از 3 گیگابایت برای فایل BOOT.INI سرور استفاده می کند. سوئیچ 3 گیگابایت حافظه تخصیص یافته را تغییر می دهد به طوری که ویندوز فقط از 1 گیگابایت فضای آدرس تخصیصی استفاده کند و فرآیندهای مد کاربری از 3 گیگابایت فضای آدرس استفاده کنند. تقسیم فضای آدرس مانند این است که به ویندوز کمک شود تا برنامه هایی که تقاضای بالایی دارند ( مانند Exchange Server) بهتر مدیریت شوند.

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

 به نظر من اگر ویندوز می توانست تنها 4 گیگابایت فضای آدرس را تخصیص دهد، هیچ دلیلی وجود نخواهد داشت تا حافظه مجازی را در یک دستگاه که 4 گیگابایت رم دارد فعال کرد. حتی اگر مقدار کمی حافظه مجازی مورد نیاز باشد هیچ راه و قانونی برای تنظیم کردن اندازه حافظه مجازی که 1.5 برابر بیشتر از اندازه حافظه فیزیکی مصرفی باشد وجود ندارد. انجام این کار به این معناست که دستگاه دارای 6 گیگابایت حافظه مجازی و 4 گیگابایت حافظه فیزیکی  دارای مجموعا 10 گیگابایت فضای حافظه است و این مقدار ممکن است برای یک سیستم 64 بیتی مناسب باشد اما برای سیستم 32 بیتی با محدودیت فضای آدرس 4 گیگابایتی کار نمی کند.

نتیجه گیری

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