PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : سازمان دهی منطقی حافظه



rezalaghaian
10-21-2010, 12:27 AM
سازمان دهی منطقی حافظه
حالا اجازه دهید از آرایش فیزیکی حافظه به آرایش منطقی آن برویم.
فضای آدرس دهی کامپیوتر را از نظر منطقی میتوان به 3 قسمت تقسیم کرد، که عبارتند از: حافظه متعارف ( Conventional Memory )، حافظه بالایی ( Upper Memory )، و حافظه توسعه یافته ( Extended Memory ). توجه داشته باشید که این سقسیم بندی فقط از نظرمنطقی صورت گرفته است. همچنین تمام این فضای آدرس دهی در تراشه های حافظه قرار ندارد.

حافظه متعارف
640 کیلوبایت اول حافظه ( حافظه متعارف ) نامیده می شود. 1024 کیلوبایت اول حافظه متعارف به عنوان ( جدول بردار وقفه ) مورد استفاده قرار گرفته است. 256 بایت بعدی نیز برای ناحیه داده های BIOS به کار رفته است. بعد از این قسمت، حافظه اشغال شده توسط سیستم عامل DOS قرار دارد، که بسته به روش پیکربندی آن معمولاً بین 20 تا 90 کیلوبایت را اشغال می کند. این کاربر عهده کامپیوتر گذاشته شده است. بعد از آن برنامه های راه اندازمختلف وجود دارند ( مانند ماوس، کارت صوتی و غیره ). آخرین قسمت باقی مانده از حافظه متعارف ( یعنی از 450 کیلوبایت تا 620 کیلوبایت ) آزاد است، که می تواند برای برنامه های مبتنی بر DOS یا ویندوز مورد استفاده قرار گیرد. در حقیقت تنها حافظه قابل دسترس برای کامپیوترهای مبتنی برپردازنده 8088 ، حافظه متعارف می باشد. توجه داشته باشید که 450 کیلوبایت حافظه برای بسیاری از برنامه های کاربردی کافی نیست. برای حل این مشکل باید بخشی از برنامه ها را در حافظه بالایی بارگذاری کرد.

حافظه بالایی
بخش بعدی حافظه ( حافظه بالایی ) نام دارد، که محتویات آن بیشتر جنبه اختیاری دارد. این حافظه بیشتر توسط کارت های آداپتور سخت افزاری، مانند کارت ویدئویی، یا کنترل گر دیسک سخت، و برای قرار دادن دستورهای BIOS وسیله جانبی مورد استفاده قرار می گیرد. بنابراین آدرس حافظه خاصی بر روی بُرد اصلی به صورت فیزیکی به این کار اختصاص داده نشده است. اما مثلاً کارت ویدئویی آدرس BIOS خود را در این محدوده تعیین می کند. گاهی اتفاق می افتد که بخش هایی از حافظه بالایی مورد استفاده قرار نگیرد. در این حالت می توان بعضی از فایل های سیستم عامل، و یا برنامه های راه اندازاسباب که معمولاً در حافظه متعارف قرار می گیرند، را به فضای خالی موجود در حافظه بالایی انتقال دهیم. به این کار ( بارگذاری نرم افزار در حافظه بالایی ) گفته می شود. بلوک های خالی در این حافظه ( بلوک های حافظه بالایی ) یا UMB نام دارند. توجه داشته باشید برای این که بتوان بخش هایی را در حافظه فوقانی قرار داد، باید بتوان مقداری از حافظه فیزیکی ( حافظه توسعه یافته ) را از برنامه هایی که آن را مورد استفاده قرار می دهند، قرض گرفت.

حافظه فوقانی
ناحیه بسیار کوچکی از حافظه نیز وجود دارد، که گنجایش آن کمتر از64 کیلوبایت می باشد، و برای تمام برنامه های DOS که با پردازنده هایی غیر از 8088 اجرا می شوند، قابل دسترسی می باشند. این حافظه که بلا فاصله بعد از محدوده 1 مگابایت قرار دارد، حافظه فوقانی یا HMA ( High Memory Area ) نامیده می شود. بنابراین می توان نرم افزارها را در ناحیه حافظه فوقانی بارگذاری کرد، و حافظه متعارف را تا حداکثر مقدار ممکن خالی نگه داشت.
حافظه مجازی
اگر کامپیوتر دارای 16 مگابایت حافظه باشد، و برنامه ای بخواهد 100 مگابایت از حافظه را در آن بنویسد، چه اتفاقی خواهد افتاد؟ زیرا در این حالت داده ها در حافظه نمی گنجد.
يکی از راه کارهای موجود در اين زمينه، استفاده از حافظه مجازی است. در تکنولوژی حافظه مجازی از حافظه های جانبی ارزان قيمت نظير هاردديسک (http://www.srco.ir/WhyHow/Contents/WhatIsHardDisk.htm) استفاده می گردد. در چنين حالتی اطلاعات موجود در حافظه اصلی (http://www.srco.ir/WhyHow/Contents/WhatIsRAM.htm) که کمتر مورد استفاده قرار گرفته اند، از حافظه خارج و در محلی خاص بر روی هارد ديسک ذخيره می گردند. به اين ترتيب بخشی از حافظه اصلی آزاد و زمينه استقرار يک برنامه جديد در حافظه فراهم خواهد شد. عمليات ارسال اطلاعات از حافظه اصلی بر روی هاردديسک به صورت خودکار انجام می گيرد.
ممکن است بعضی از فریم های صفحه هر برنامه در حافظه فیزیکی و بعضی دیگر بر روی هارددیسک قرار داشته باشد ( که به آن حافظه مجازی می گویند ) وقتی برنامه ای به حافظه ای خاص اشاره کند، VMM فریم صفحه مربوطه را تعیین می کند. اگر این فریم در حافظه فیزیکی قرار داشته باشد، در واقع ( به هدف زدن صفحه یا Page Hit ) نامیده می شود، و می گویند که این صفحه معتبر ( Valid ) می باشد. در غیر این صورت ( عدم موفقیت در یافتن صفحه یا Page Fault ) نامیده شده، و غیر معتبر ( Unvalid ) می باشد. در این حالت VMM داده های ثبت شده جدول صفحه را برای بازیافت صفحه غیر معتبر مورد استفاده قرار می دهد. یعنی آن را از حافظه مجازی به حافظه فیزیکی باز می گرداند، تا بتوان به آن دسترسی پیدا کرد. این حالت در شکل زیر نمایش داده شده است.



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

پیکربندی حافظه مجازی
با استفاده از تکنیک مبادله اطلاعات بین حافظه اصلی و حافظه جانبی که به طور ساده ( صفحه بندی ) نامیده می شود، هر برنامه می تواند حافظه ای بیش از آنچه موجود است را مورد استفاده قرار دهد. ویندوز برای صفحه بندی از فایل مبادله ( Swap File ) موجود در Hard Disk استفاده می کند. در ویندوز 1/3 کاربر می تواند گنجایش این فایل را تنظیم کند.
این کار با استفاده از منوی Control Panel صورت می پذیرد. به این ترتیب میزان حافظه مجازی نیز تعیین می شود. ویندوز95 و ویندوزNT مقدار حافظه مجازی موجود در سیستم را به صورت ( دینامیک ) کنترل می کنند. یعنی بسته به مورد گنجایش فایل مبادله را افزایش یا کاهش می دهند ( البته با استفاده از آیکون System درContorol Panel می توان عدد ثابتی را برای گنجایش فایل مبادله تعیین کرد اما این کارتوصیه نمی شود ).
ويندوز98 دارای يک برنامه هوشمند برای مديريت حافظه مجازی است. در زمان نصب ويندوز، پيکربندی و تنظيمات پيش فرض برای مديريت حافظه مجازی انجام خواهد شد. تنظيمات انجام شده در اغلب موارد پاسخگو بوده و نيازی به تغيير آنها وجود نخواهد داشت. در برخی موارد لازم است که پيکربندی مديريت حافظه مجازی به صورت دستی انجام گيرد. برای انجام اين کار در ويندوز98 ، گزينه System را از طريق Control Panel انتخاب و در ادامه گزينه Performance را فعال نمایيد. در بخش Advanced Setting گزينه Virtual Memory را انتخاب نمایيد.


با نمايش پنجره مربوط به Virtual Memory ، گزينه " Let me specify my own virtual memorsetting " را انتخاب کنید تا زمينه مشخص نمودن مکان و طرفيت حداقل و حداکثر فايل مربوط به حافظه مجازی فراهم گردد. در فيلد Hard Disk محل ذخيره نمودن فايل و در فيلد های ديگر حداقل و حداکثر ظرفيت فايل را بر حسب مگابايت مشخص نمایيد. برای مشخص نمودن حداکثر فضای مورد نياز حافظه مجازی می توان هر اندازه ای را مشخص نمود. تعريف اندازه هایی به ميزان دو برابر حافظه اصلی کامپيوتر برای حداکثر ميزان حافظه مجازی توصيه می گردد.
ميزان حافظه موجود هارد ديسک که برای حافظه مجازی در نظر گرفته خواهد شد بسيار حائز اهميت است. در صورتی که فضای فوق بسيار ناچيز انتخاب گردد، همواره با پيام خطایی مطابق " Out of Memory " مواجه خواهيم شد. پيشنهاد می گردد نسبت حافظه مجازی به حافظه اصلی دو به يک باشد. يعنی در صورتی که حافظه اصلی موجود 16 مگابايت باشد، حداکثر حافظه مجازی را 32 مگابايت در نظر گرفت.
يکی از روش هایی که به منظور بهبود کارآیی حافظه مجازی پيشنهاد شده است، ( مخصوصاً در مواردي که حجم بالایی از حافظه مجازی مورد نيازباشد ) در نظر گرفتن ظرفيت يکسان برای حداقل و حداکثر انداره حافظه مجازی است. در چنين حالتی در زمان راه اندازی کامپيوتر، سيستم عامل تمام فضای مورد نياز را اختصاص و در ادامه نيازی به افزايش آن همزمان با اجرای ساير برنامه ها نخواهد بود. در چنين حالتی کارآیی سيستم بهبود پيدا خواهد کرد.
يکی ديگر از فاکتورهای مهم در کارآیی حافظه مجازی، محل فايل مربوط به حافظه مجازی است. در صورتی که سيستم کامپيوتری دارای چندين هاردديسک فيزيکی باشد، ( منظور چندين درايو منظقی نيست ) می توان حجم عمليات مربوط به حافظه مجازی را بين هر يک از درايوهای فيزيکی موجود توزيع کرد. روش فوق در مواردي که از حافظه مجازی در مقياس بالایی استفاده می گردد، کارآیی مطلوبی را به دنبال خواهد داشت.