چهارشنبه, ۱۲ اردیبهشت, ۱۴۰۳ / 1 May, 2024
مجله ویستا

سیستم‌تان چگونه حافظه را اداره می‌کند؟


سیستم‌تان چگونه حافظه را اداره می‌کند؟
اصولاً حافظه‌ی سیستم از چهار بخش تشكیل شده كه عبارتند از RAM، ROM ، حافظه‌ی پنهانی و حافظه‌ی مجازی. RAM قسمت اعظم حافظه‌ی سیستم را تشكیل می‌دهد و مابقی حافظه‌ها در مقایسه با RAM مقدار بسیار كمی از حافظه‌ی سیستم را به خود اختصاص می‌دهند. این حافظه‌های مختلف با هم كار می‌كنند تا بتوانند نیازهای حافظه‌ای كامپیوتر و برنامه‌های كاربردی در حال اجرا را برآورده سازند.
RAM كه به عنوان حافظه‌ی اصلی شناخته می‌شود، قسمت عمده‌ی كارهای مربوط به حافظه را انجام می‌دهد، ROM (حافظه‌ی فقط خواندنی) به اداره كردن عملكرد‌های هسته‌ی سیستم‌ می‌پردازد، حافظه‌ی پنهانی دستورات كوتاه و اعمال مربوط به آدرس‌دهی را انجام داده و حافظه‌ی مجازی برای برنامه‌های كاربردی بزرگ به صورتی جزیی، توسط حافظه‌ی ثانویه، شبیه‌سازی می‌شود. علی‌رغم رابطه‌ی محكمی كه بین این چهار منبع حافظه‌ای وجود دارد، اما این RAM است كه همواره‌ به آن بیش از سایرین توجه می‌شود.
● RAM
RAM شكلی از حافظه‌ی فـّرار می‌باشد و این بدان معنی است كه تنها می‌تواند داده‌ها را تا هنگامی كه كامپیوتر روشن است نگه دارد. فهمیدن بی‌ثباتی RAM می‌تواند كمی به دانستن روش ذخیره‌ی داده‌ها توسط RAM كمك نماید.
RAM بر روی صفحات سیلیكان كه تراشه‌های حافظه‌ای نامیده می‌شوند واقع است. این تراشه‌ها بر روی صفحه مدارهای پلاستیكی لحیم می‌شوند. تمام بسته‌های تراشه‌ای موجود بر روی یك صفحه مدار (board)، یك قطعه حافظه نامیده می‌شوند و این قطعات، حافظه‌ای هستند كه در داخل شیارهای موجود بر روی بورد اصلی قرار می‌گیرند. هر یك از این قطعات شامل میلیون‌ها خازن كوچك می‌باشند كه هر كدام دربرگیرنده‌‌ی یك شارژ الكتریكی است كه بر یك بیت (كوچكترین واحد داده) دلالت می‌كند.
تمام خازن‌ها با هم یكجا جمع شده و شبكه‌ی گسترده‌ای را تشكیل می‌دهند كه در آن داده‌های كامپیوتر ذخیره می‌شوند. وقتی شما كامپیوتر را روشن می‌كنید این خازن‌ها، الكتریسیته را دریافت كرده و به این ترتیب قادر به نگه‌داری داده‌ها خواهند بود. داده‌ها به طور مرتب وقتی كه شما با كامپیوتر در حال كار كردن هستید به داخل RAM ریخته می‌شوند. شارژ و دشارژ شدن هر خازن به بیتی بستگی دارد كه ارایه می‌دهد.
تا هنگامی كه كامپیوتر روشن باشد، خازن‌ها قادر به نگهداری داده‌ها خواهند بود. با خاموش شدن كامپیوتر، خازن‌ها نه تنها الكتریسیته‌ی خود بلكه داده‌هایشان را نیز از دست می‌دهند. این ناتوانی در نگهداری داده‌ها هنگام قطع ‌برق باعث شده كه RAM را به عنوان یك منبع حافظه‌ای فـّرار بشناسیم. تنها راه برای ذخیره كردن دایمی محتویات RAM ؛ استفاده از دستور Save در برنامه‌های كاربردی می‌باشد. با فعال كردن این دستور، داده‌ها از حافظه‌ی RAM بر روی یك محیط حافظه‌ای غیرفـّرار مانند درایو دیسك‌سخت، دیسك‌های قابل ضبط، فلاپی و كارتریج نوار ذخیره می‌شوند.
● حافظه‌ی فقط خواندنی (ROM)
این نوع حافظه با RAM فرق می‌كند و فرقش در این است كه داده‌ها را به طور دایمی در خود نگه می‌دارد. وظیفه‌ی مهم ROM نگهداری داده‌های مربوط به سیستم ورودی و خروجی اصلی كامپیوتر (BIOS) می‌باشد. BIOS مجموعه‌ای از كدها و روتین‌های نرم‌افزاری است كه سخت‌افزار را هنگام شروع به كار آزمایش نموده، سیستم‌عامل را شروع كرده و از انتقال داده‌ها بین دستگاه‌های سخت‌افزاری پشتیبانی می‌كند.
● حافظه‌ی پنهانی (Cache)
این نوع حافظه یك سیستم فرعی حافظه‌ای است كه در آن مقادیر داده‌ای پراستفاده، نسخه‌برداری می‌شوند تا برای دسترسی سریع آماده باشند. حافظه‌ی پنهانی محتویات مكان‌هایی از RAM را كه بیشتر مورد استفاده قرار می‌گیرند، ذخیره نموده و جاهایی را كه این اقلام داده‌ای ذخیره می‌شوند آدرس‌دهی می‌كند. حافظه‌ی پنهانی، مستقیماً بر روی پردازشگر، مجموعه‌تراشه و یا بورد اصلی ساخته می‌شود.
هدف از ایجاد این نوع حافظه، نزدیكتر كردن داده‌ها به پردازشگر است. حافظه‌‌ی پنهانی دارای انواعی است كه دو نوع شناخته شده‌تر آن عبارتند از حافظه‌ی پنهانی L۱ و حافظه‌‌ی پنهانی .L۲ باید بدانیم كه حافظه‌ی پنهانی RAM بسیار سریع و در عین حال خیلی گران است لذا اكثر كامپیوترها مقدار كمی از این حافظه (چیزی حدود یك مگابایت) را دارند.
● حافظه‌ی مجازی
این نوع حافظه یك بخش ذخیره‌شده بر روی درایو دیسك‌سخت است. حافظه‌ی مجازی همانطور كه از نامش پیداست اساساً یك منبع حافظه‌ای است كه از آن برای نگهداری داده‌هایی كه در حافظه‌ی اصلی جای نمی‌گیرند، استفاده می‌شود. سیستم‌عامل یك كامپیوتر مراحل تولید و حفظ حافظه‌ی پنهانی را كنترل می‌كند.
● معرفی به سیستم‌عامل
كامپیوتر تا اندازه‌ای می‌داند كه چگونه با شكل‌های مختلف حافظه برخورد كرده و از عهده‌ی آنها برآید. برای مثال طراحی پردازشگر به نحوی است كه از ROM مراقبت می‌كند تا وقتی كامپیوتر راه‌اندازی می‌شود بتواند دستورات را از BIOS دریافت نماید. همچنین پردازشگر با كمی كمك از جانب مجموعه‌تراشه، می‌داند كه قبل از رجوع به RAM باید در داخل حافظه‌ی پنهانی نیز به دنبال داده‌ بگردد.
اما این را هم باید بدانیم كه پردازشگر و مجموعه‌تراشه نمی‌توانند به تنهایی حافظه را اداره كنند. به همین دلیل بخش قابل‌ملاحظه‌ای از مدیریت حافظه به سیستم‌عامل واگذار می‌شود و در اصل این ویندوز است كه به سازمان‌دهی داده‌ها در حافظه می‌پردازد.
نحوه‌ی سازمان‌دهی حافظه توسط سیستم‌عامل به هسته‌ی مركزی آن بستگی دارد. ویندوزهای ۹۵، ۹۸ و Me براساس هسته‌ی مركزی Win ۹x و ویندوزهای NT و ۲۰۰۰ نیز براساس هسته‌ی مركزی Win NT بنا شده‌اند. باید یك برنامه‌نویس بسیار ماهر باشید تا بتوانید از پیچیدگی‌های هسته‌ی ویندوز سر در بیاورید. درباره‌ی اهمیت هسته‌ی مركزی كافی است بگوییم كه این قسمت بسیاری از بخش‌های كامپیوتر مانند درایو دیسك‌سخت، حافظه و وظایف سیستم‌عامل را مدیریت می‌كند. مدیریت حافظه در Win ۹x یا Win NT فرق می‌كند، چرا كه هسته‌ی مركزی این ویندوزها با هم متفاوت است.
در واقع هسته‌ی مركزی ویندوز x۹ ، حافظه‌ی اصلی را به عنوان یك سلول ذخیره‌ای بزرگ تلقی می‌كند. وقتی شما برنامه‌ی كاربردی را باز می‌كنید، هسته‌ی مركزی، داده را به RAM می‌فرستد. در این قسمت، داده‌ در یك مكان قابل دسترس از حافظه ریخته می‌شود. اما هسته‌ی مركزی ویندوز NT به روش متفاوتی عمل می‌كند.
در حقیقت خود این هسته، داده را به مكان مخصوص به آن در داخل RAM می‌ریزد. اگرچه در روش‌های مذكور تفاوت چندانی دیده نمی‌شود، اما نتایج حاصل از این دو روشِ توزیعِ داده در RAM از اهمیت خاصی برخوردار است. خصوصاً اگر خطایی روی دهد. برای مثال وقتی خطای مهلك در یك برنامه كاربردیِ در حال اجرا روی می‌دهد، سیستم‌عامل تمام داده‌های مربوط به آن برنامه‌ی كاربردی را از حافظه بیرون می‌كشد.
در ویندوز X۹ یا ویندوز Me این عمل مانند بیرون كشیدن یك مكعب از یكسری مكعب روی هم چیده‌شده می‌باشد. اگر یك یا چند مكعب از این مكعب‌های روی هم چیده‌شده بیرون كشیده شود؛ سایر مكعب‌ها فرو ریخته و سازمان‌دهی آنها به هم می‌ریزد. در ویندوز NT و ویندوز ۲۰۰۰ بیرون كشیدن داده‌ها از حافظه مانند جابجا كردن مهره‌های چیده‌شده‌ی بازی دومینو می‌باشد و می‌دانیم كه جابجایی یك یا چند مهره‌ی دومینو تأثیری بر موقعیت مهره‌های دیگر دومینو ندارد. همین تفاوت در سازمان‌دهی داده‌ها باعث شده است كه ویندوز NT و ویندوز ۲۰۰۰ به عنوان سیستم‌عامل‌های باثباتی شناخته شوند.
صرف نظر از هسته‌ی مركزی؛ خود سیستم‌عامل، پی‌گیر این قضیه است كه داده‌ها در كجای حافظه‌ی اصلی واقع شوند. سیستم‌عامل، اطلاعاتی كه بیشتر از آنها استفاده می‌شود را در حافظه‌ی پنهانی كه دسترسی پردازشگر به آنها سریع‌تر امكان‌پذیر است قرار می‌دهد. همچنین وقتی سیستم‌عامل احساس می‌كند كه داده‌ها از گنجایش حافظه‌ی اصلی بیشتر هستند، سعی می‌كند یك یا چند صفحه‌ از داده‌های RAM را به حافظه‌ی مجازی انتقال دهد. سپس داده‌های منتقل‌شده به حافظه‌ی مجازی بر اساس نیازی كه بدان‌ها پیدا می‌شود مجدداً به RAM باز می‌گردند. به این ترتیب حافظه‌ی مجازی به شما اجازه می‌دهد به حافظه‌ی بیشتری دسترسی داشته باشید.
● مشكلاتی كه پیش‌ می‌آیند
یكی از مشكلاتی كه در ارتباط با مدیریت حافظه به‌وجود می‌آید نشت (Leak) نام دارد. از جمله مواقعی كه نشت‌ِ حافظه رخ می‌دهد وقتی است كه ویندوز نمی‌تواند تمام داده‌های نظیر و مرتبط به هم را پس از این كه یك برنامه‌ی كاربردی بسته شد از حافظه‌ی اصلی جابجا كند. باقیمانده‌یِ داده‌های قدیمی، RAM را مسدود كرده و باعث پیش آمدن خطای «خارج از حافظه» یا «نشت حافظه» می‌شوند. راه حل این مشكل راه‌اندازی مجدد كامپیوتر است.
یكی دیگر از مشكلاتی كه به‌ندرت امكان دارد اتفاق بیافتد، خطای «حافظه‌ی مجازی ناكافی» است. چنین خطایی می‌تواند به دو دلیل روی دهد و البته هیچ كدام از آنها به ویندوز ربطی ندارند. یكی از مواردی كه این خطا روی می‌دهد هنگامی است كه شما درایو دیسك‌سخت‌تان را تا نزدیكی ظرفیتش پْر كنید. در چنین حالتی فضای بسیار كمی از درایو برای حافظه‌ی مجازی باقی می‌ماند. برای حل این مشكل كافی است كه ۱۰ درصد از داده‌های درایودیسك‌سخت را حذف كنید تا مكان مورد نیاز ایجاد شود.
دومین حالتی كه این خطا پیش می‌آید وقتی است كه با وجود كم بودن حافظه‌ی مجازی، اندازه‌ی آن را با تنظیمات دستی پیكربندی می‌كنید. برای رهایی از یك چنین معضلی ابتدا روی آیكون My Computer راست كلیك كرده و سپس گزینه‌ی Properties را انتخاب كنید. وقتی كادر تبادلی System Properties ظاهر شد، گزینه‌ی Performance و به دنبال آن عبارت Virtual Memory را كلیك نمایید. در كادر تبادلی جدیدی كه باز می‌شود اطمینان حاصل كنید كه در كنار عبارت Let Windows Manage My Virtual Memory Settings علامتü وجود دارد.
یكی از خطاهای دیگری كه ممكن است اتفاق بیافتد «خرابی صفحه‌ای» نام دارد. این خطا یك نوع وقفه است و وقتی روی می‌دهد كه نرم‌افزار در تلاش برای خواندن اطلاعات از یك مكان حافظه‌ی مجازی و یا نوشتن آنها در آن مكان با پیغام «وجود ندارد» مواجه می‌شود. این مشكل عمدتاً به خاطر خرابی داده‌ها و یا آدرس‌دهی نادرست به‌وجود می‌آید. چنین خطایی می‌تواند باعث خرابی كل سیستم و یا برنامه‌ی كاربردی در حال اجرا شود.
● ارتباط مداوم
چگونه یك برنامه‌ی كاربردی و حافظه در طی یك نشست كامپیوتری با یكدیگر ارتباط برقرار می‌كنند؟ توضیح تمام اعمالی كه در حافظه‌ی اصلی اتفاق می‌افتند غیرممكن است، چرا كه پردازشگر در هر ثانیه میلیون‌ها عمل را انجام می‌دهد. اما با این وجود، یك نگاه اجمالی به نحوه‌ی عملكرد حافظه در محیط‌های ویندوز x۹ و Me می‌اندازیم:
وقتی شما یك برنامه‌ی كاربردی را اجرا می‌كنید داده‌ها به طور مرتب بین حافظه‌های پنهانی، حافظه‌ی اصلی و درایو دیسك‌سخت به گردش در می‌آیند. این امكان وجود دارد كه به طور همزمان اطلاعات مشخصی به هر كدام از سه محیط فرستاده شود. تصاویر شماره ۱ تا ۴، جریان طبیعی داده‌ها، وقتی كه شما یك برنامه‌ی كاربردی را در ویندوز x۹ و یا Me باز كرده، به‌كار برده و یا می‌بندید را نشان می‌دهند. البته فراموش نكنید كه موقعیت داده‌ها در ارتباط با حافظه به طور مرتب در حال تغییر است.
۱) كاربر یك برنامه‌ی واژه‌پرداز را باز كرده است. داده‌های برنامه‌ی مذكور در حافظه به گونه‌ای پراكنده شده‌اند كه به داده‌های مربوط به سیستم‌عامل و ضدویروس كه به طور خودكار در طی عمل راه‌اندازی بارگذاری می‌شوند متصل می‌گردند.
۲) هنگامی كه كاربر برنامه‌های كاربردی دیگری مانند مرورگر وب، برنامه‌ی e-mail و ویرایشگر گرافیكی را باز می‌كند، داده‌های بیشتری حافظه‌ی اصلی را اشغال می‌كنند.
۳) وقتی حافظه‌ی اصلی بیش از اندازه پـُر شد و دیگر نتوانست داده‌ای را بپذیرد، سیستم‌عامل داده‌ها را به یك فضای موجود بر روی درایو دیسك‌سخت كه حافظه‌ی مجازی نامیده می‌شود هدایت می‌كند. آدرس‌دهی اطلاعات موجود در حافظه‌ی مجازی، داخل حافظه‌ی پنهانی ذخیره می‌شود. در صورت نیاز به داده‌های موجود در حافظه‌ی مجازی، این داده‌ها با داده‌های دیگری از RAM جابجا می‌شوند.
۴) وقتی كاربر برنامه‌ی در حال اجرا را می‌بندد، سیستم‌عامل داده‌های مرتبط به آن برنامه را از حافظه خارج می‌سازد. مدیر حافظه در ویندوز دیگر به آدرس‌دهی اطلاعات از حافظه‌ی پنهانی نمی‌پردازد و به این ترتیب مابقی سیستم می‌داند كه مكان‌های حافظه برای استفاده‌ی سایر داده‌ها قابل‌ دسترس می‌باشد.
گاهی از اوقات تمام داده‌ها از حافظه پاك نمی‌شوند و داده‌های باقی مانده باعث انسداد حافظه می‌گردند و به این ترتیب مقدار حافظه‌ی قابل‌دسترس كاهش یافته و عملكرد سیستم‌ پایین می‌آید.
تنها راه برای پاك كردن این داده‌های باقیمانده، راه‌اندازی مجدد سیستم می‌باشد.گاهی از اوقات خطایی روی می‌دهد و ویندوز را وادار می‌نماید تا برنامه‌ی كاربردی در حال اجرا را نیمه‌كاره رها كرده و داده‌های مرتبط به آن را به دور بیاندازد. چنین تدبیری می‌تواند ساختار داده‌های حساسِ موجود در حافظه را به هم ریخته و باعث ایجاد خرابی در كل سیستم شود.
منبع : کامپیوتر جوان


همچنین مشاهده کنید