دانلود مقاله مقایسه سیستم های مدیریت حافظه BSD, Windows, Linux

Word 1 MB 17340 19
مشخص نشده مشخص نشده کامپیوتر - IT
قیمت قدیم:۱۶,۰۰۰ تومان
قیمت: ۱۲,۸۰۰ تومان
دانلود فایل
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • در این قسمت می خواهیم سیستم مدیریت حافظه یک سیستم عامل را مورد بررسی و کاوش قرار دهیم.

    ما ابتدا با یک نگاه جامع به سیستمهای مدیریت حافظه که به اختصار به آنها MM نیز میگویند میپردازیم و بعد سیستم های مدیریت حافظه را در سیستم عامل های واقعی Linux 2.4 ، Windows 2000 و BSD 4.4 با هم مقایسه می کنیم.
    در این مقاله زیر سیستم های مدیریت حافظه این سیستم عامل ها را با هم مقایسه می کنیم Linux 2.4 ، Windows 2000 و BSD 4.4 .

    BSD 4.4 به این دلیل انتخاب شد که نماینده نسخه های مختلف Unix است که بسیاری از اصول و پایه های مهم طراحی یک سیستم عامل را داراست و امروزه بسیاری از سیستم های عامل مانند: FreeBSD، NetBSD و OpenBSD بر مبنای آن ساخته شده اند.

    از همه مهمتر، Unix به صورت عالی مستند شده است و کتاب های بسیاری در مورد آن نوشته شده اند.

    Windows 2000 انتخاب شده است، چون یک سیستم عامل عامه پسند است و برای کامپیوتر های شخصی و افراد مبتدی، بسیار کارا است و حالا هم به شکل یک سیستم عامل کاملا بالغ در آمده است.
    Linux 2.4 را به این دلیل انتخاب کردیم که هر روز هوا داران بیشتری پیدا می کند و به نظر می رسد که جایگاه مهمی را در آینده پیدا خواهد کرد.

    ما خیلی مایل به خصوصیات و کارآیی های این سیستم عامل عا نیستیم و در عوض می خواهیم در این مقاله به نحوه طراحی و معماری داخلی این سیستم عامل ها نگاهی بیاندازیم:

    2- سیستم های مدیریت حافظه:
    ما سیستم های مدیریت حافظه را به اختصار، MM می گوییم.

    MM ها بخش خیلی مهمی از هسته سیستم عامل خستند.

    کار اصلی آنها مدیریت سلسله مراتب حافظه اصلی یا RAM و دیسک های سخت موجود بر روی ماشین می باشد.
    کار های مهم آن شامل: تخصیص حافظه و ازاد سازی آن برای پروسس هایی است که از راهکار ها و پیاده سازی حافظه مجازی (یا Virtual Memory) استفاده می کنندکه با استفاده از دیسک سخت به عنوان حافظه اصلی اضافه کار می کند.
    سیستم حافظه باید تا آنجایی که امکان دارد بهینه شود، زیرا که کارآیی آن به شکل فزاینده ای به کارآیی کل سیستم و سرعت آن بستگی دارد.

    2-1- حافظه مجازی:
    ایده مهم در رابطه با سیستم های MM ، حافظه مجازی است.

    در گذشته در روز های اولیه کامپیوتر، محققان نیاز روزافزون به حافظه را برای برنامه کاربردی احساس می کردند.

    بنا بر این ایده حافظه مجازی به وقوع پیوست.

    ایده این است که به یک برنامه به دروغ بگوییم که مقادیر زیادی حافظه برای استفاده آن موجود است.

    هسته یک چنین راهکاری را با استفاده از حافظه ثانویه دیسک سخت به وجود می آورد تا احتیاج به فضای اضافی حافظه را پاسخ گوید.

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

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

    این تابع عموما یکی از توابع صفحه بندی یا سگمنت بندی یا هر دوی آنها است که وابسته به هسته سیستم عامل، معماری پردازنده و حالت های آن دارد.

    2-2- صفحه بندی:
    در صفحه بندی، فضای آدرس (چه به شکل مجازی و چه واقعی) به صفحات ثابتی که البته می تواند دارای چندین سایز مختلف باشد، تقسیم بندی می شود.

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

    صفحات به صورت جداگانه می توانند به دست گرفته شوند و در مکان های مختلفی در حافظه اصلی یا دیسک سخت قرار داده شوند.

    ترجمه آدرس عملا توسط بخش مدیریت حافظه یا MMU انجام میگیرد.

    با استفاده از یک جدول صفحه در شکل 1 نشان داده شده است.

    جداول صفحه ارتباط بین صفحات مجازی و صفحات فیزیکی را مشخص میکنند.

    به عنوان مثال کدام صفحه مجازی هم اکنون کدام صفحه فیزیکی را اشغال کرده است.

    MMU آدرس حافظه مجازی را به آدرس حافظه فیزیکی تبدیل میکند که شامل شماره Page Frame است و یک آفست در آن صفحه است.

    حفاظت میتواند به صورت صفحه به صفحه اعمال شود.

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

    در ارتباط با هر صفحه مجازی در جدول صفحه یک بیت وجود دارد که مشخص میکند که صفحه در حافظه فیزیکی وجود دارد یا خیر.

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

    کافمن و دنینگ ویژگیهای سیستمهای صفحه بندی را به سه سیاست مهم تقسیم بندی و معین کرده اند: وقتی سیستم صفحات را به حافظه اصلی بار میکند سیاست واکشی اجرا میشود.

    جایی که سیستم صفحات را در داخل حافظه قرار میدهد سیاست جایگذاری اعمال میشود.

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

    سیاست جایگذاری فقط برای بهینه ساختن رفتار های معینی اهمیت دارد.

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

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

    در ارتباط با سیاست جایگذاری صفحه الگوریتمهای زیادی در طول سالها اخته شده اند.

    مقایسه کارکرد الگوریتم های جایگذاری صفحات در مقالات بسیاری آمده است.

    3- مقایسه: حال میخواهیم بر روی سیستم های مدیریت حافظه در Linux 2.4 ، Windows 2000 و BSD 4.4 متمرکز شویم.

    سیستم حافظه مجازی در BSD 4.4 مبتنی بر کد حافظه مجازی Mach 2.0,2.5,3.0 است.

    Windows2000 جزو سری طولانی سیستم عامل ها از زمان MS-DOS ساخته شده است.

    Linux 2.4 به وسیله هکرها ساخته شد که در اصل توسط Linux Torvalds ساخته شده است.

    علاوه بر منابعی که در جاهای گوناگون برای این سیستم عاملها وجود دارد اطلاعات بیشتری را میتوانید در مورد این موضوع از لینکهای 18و17 و21 در انتهای مقاله بدست آورید.

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

    هر سه سیستم دارای سیستم مدیریت حافظه مدرنی هستند و دارای نکات مشترک زیادی میباشند.

    ساختارهای دادهای آنها خیلی به هم شبیه اندو خصوصیات هر یک نیز به یکدیگر شباهت زیادی دارد.

    بعضی از شباهتهای آنها نیز در زیر آورده شده است: لایه انتزاعی سخت افزار: تمام این سیستم عاملها دارای لایه ای هستند که به آن Hardware Abstraction Layer یا HAL میگویند که کارهای وابسته به سیستم را انجام میدهد و بنابراین به بقیه هسته اجازه میدهد که به شکل مستقل از زیربنای سخت افزار کد شود.

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

    کپی در حال نوشتن: وقتی که یک صفحه باید به اشتراک گذاشته شود، سیستم فقط از یک صفحه با هر دو پروسس استفاده میکند که از همان کپی صفحه به صورت اشتراکی استفاده میکنند.

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

    این کار راندمان بسیار بهتری را به دست میدهد.

    صفحه بندی سایه ای: یک شی سایه برای شی اصلی ساخته میشود به طوریکه شی سایه ای بعضی از صفحات خود را به صورت تغییر یافته از صفحات شی اصلی داراست.

    اما بقیه صفحات را با شی اصلی به اشتراک میگذارد و آنها با عمل کپی به هنگام نوشتن شکل میگیرند.

    یک شبه پشت صحنه: یک شبه پشت صحنه وجود دارد که به صورت متناوبصدا زده میشود و کارهایی را مانند خالی کردن (Flushing) و آزاد سازی حافظه بلا استفاده را انجم میدهد.

    فایلهای قرار داده شده در حافظه: یک فایل میتواند بر روی حافظه قرار داده شود که بعدا میتواند با دستورات ساده خواندن و نوشتن اسنفاده شود.

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

    در بخش زیر ما این سیستم ها را از نظر ویژگیهای خاص آنها با هم مقایسه میکنیم.

    3-1- ساختما نهای داده ای برای تشریح فضای پروسس: حال ما به مطالعه ساختمان داده هایی که سیستمها برای نگه داری و ذخیره رد حافظه مجازی استفاده میکنند میپردازیم: 3-1-1-BSD 4.4: در BSD 4.4 ساختمان داده ها در شکل 2 نشان داده شده اند.

    از آنجاییکه هر پروسس اساسا دارای فضای آدرس مجازی مسطح خود است این ساختار برای هر پروسس تکرار میشود..

    ساختار های اساسی عبارتند از : Vm_map_entry Vm_map Vm_space Vm_page Shadow object Object شکل2) ساختارهای داده ای برای مدیریت حافظه مجازی پروسس Vm_pMap یک لایه وابسته به سخت افزار است و وظیفه انجام مدیریت حافظه را در پایین ترین سطح خود به عهده دارد و عموما شیوه های مختلفی را که پروسسور های گوناگون برای برنامه نویسی حافظه مجازی دارند را پشتیبانی میکند و کد وابسته به سخت افزار را فق در یک موجول قرار میدهد و موجب میشود که بقیه کد مربوط به حافظه مجازی مستقل از سخت افزار باشد.

    این کار منجر به یک طراحی پیمانه ا ی و موجولار میشود و انتقال کد به معماریهای گوناگون را به نسبت آسانتر و سریعتر میکند.

    ساختار vm_map دارای یک اشاره گر به vm_pmap و یک زنجیره vm_pMap_entry است.

    یک vm_map_entry برای هر ناحیه همسا یگی از حافظه مجازی استفاده میشود که دارای همان حقوق حفاظت و وراثت است.

    سپس به زنجیره ای از اشیا vm_object اشاره میکند.

    آخرین چیز در لیست شی واقعی است مثل فایل و دیگری سایه شی ها هستند.

    سایه شی ها در شاخه دیگری از کار مقیسه ما بحث خواهند شد.

    شی دارای یک اشاره گر به یک لیست از اشیا vm_page است که نشان دهنده صفحات حافظه فیزیکی واقعی هستند.

    این صفحات در حافظه اصلی به عنوان حافظه نهان از دیسک سخت شناخته میشوند که یکی از مفاهیم حافظه مجازی است.

    همچنین Vm_object دارای اشاره گر هایی به توابعی است که اعمالی را بر روی آن انجام میدهند.

    3-1-2-Windows: ساختارهای دادهای که در WinodwsNT هستند در شکل 3 نشان داده شده اند.

    ساختار های داده ای Windows NT برای مدیریت حافظه مجازی پروسس به جای یک لیست پیوندی Windows NT آنرا به شکل یک درخت نگه داری میکند.

    هر نود این درخت شناسه آدرس مجازی یا Virtual address Descriptor یا VAD نامیده میشود.

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

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

    VAD هر نود درخت را به صورت یکی از مقادیر حالت نگه داری، آزاد یا رزرو شده علامت میزند.

    نگه دارها آنهایی هستند که مورد استفاده قرار گرفته اند.

    به عنوان مثال دیتا یا کد بر روی آنها ریخته شده است.

    آنهائیکه مارک آزاد خورده اند هنوز مورد استفاده قرار نگرفته اند و آنهاییکه رزرو خورده اند آنهایی هستند که قابل دسترس برای استفاده و نگاشتن نیستند تا زمانیکه حالت رزرو شده از روی آنها برداشته شود.

    رزرواسیون در مواقع بخصوصی مورد استفاده قرار میگیرد به عنوان مثال یک نود میتواند برای پشته یک Thread هنگام ساخته شدن آن رزرو شود.

    پیوند به ریشه درخت در PCB یا Process control Block نگهداری میشود.

    3-1-3- Linux: لینوکس ساختار داده های حافظه مجازی را به شکل مشابهی با unix پیاده سازی میکند.

    آن یک لیست پیوندی از vm_area_structs نگه داری مینماید.

    اینها ساختارهایی هستند که مناطق پیوسته ای از حافظه را نمایش میدهند که دارای پارامتر های حفاظتی یکسانی میباشند.

    این لیست هر گاه یک صفحه شامل مکان بخصوصی باشد که باید یافت شود مورد جستجو قرار میگیرد.

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

    همچنین خصوصی یا عمومی بودن منطقه را نیز ضبط میکند.

    اگر تعداد عناصر وارد شده در آن از یک عدد بخصوصی مثلا 32 بیشتر شود آنگاه لیست پیوندی به یک درخت تبدیل می شود.

    این شیوه بسیار خوبی است که از بهترین ساختار در بهترین شرایط استفاده میکند.

    3-2- توزیع فضای آدرس پروسس: هر سه سیستم فضای آدرس مجازی پروسس را به یک شکل توزیع میکنند.

    فضاهای بالاتر به وسیله مورد استفاده قرار میگیرد و پروسس میتواند بخش پایین تر را استفاده کند.

    فضای متعلق به بخش هسته تمام پروسسها معمولا به یک کد آدرس هسته اشاره میکند.

    بنابراین هنگامیکه یک پروسس سوئیچ میکند ما باید که مقادیر جدول صفحه بخش پائینی را جابجا کنیم در حالیکه بخش بالایی به همان صورت باقی میماند.

    در لینوکس و BSD معمولا 3 گیگا بایت برای پروسس و 1 گیگا بایت برای هسته داده میشود در حالیکه در Windows2000 به هر کدام 2 گیگا بایت میدهیم.

    3-3- جابجایی صفحات: جابجایی صفحات بخش مهم هر سیستم مدیریت حافظه ای میبا شد.

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

    الگوریتم ایده آل جابجایی صفحات این است که آن صفحه ای را که دیر تر از همه دوباره ممکن است نیاز شود را برداریم.

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

    در عوض کارایی و بازدهی سیستم بالا می رود.

    اما از آنجاییکه امکان ندارد که بفهمیم کدام صفحات در آینده مورد نیاز میشوند، الگوریتم جابجایی صفحه ایده ال غیر ممکن است که پیاده سازی شود.

    حال بگذارید که ببینیم چگونه هر کدام از سیستمها برای جابجایی صفحات کار میکنند.

    3-3-1-:BSD 4.4 این سیستم از صفحه بندی صفحات مورد نیاز (با مقداری پیش صفحه بندی)برای سیاست واکشی خود استفاده میکند و یک الگوریتم تقریبی حداقل استفاده اخیر سراسری دارد که به آن از این به بعد LRUکه مخفف Approximate Least Recently used است.

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

    برای خارج کردن صفحات سیستم با یک الگوریتم جابجایی سراسری کار میکند.

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

    سیستم حافظه اصلی را به 4 بخش تقسیم میکند: Wired: این صفحات قفل شده اند و قابل جابجایی و خارج کردن از حافظه نمی باشند.

    این صفحات معمولا به وسیله هسته استفاده میشوند.

    Active: صفحاتی که به نظر میرسند به صورت فعالی مورد استفاده قرار میگیرند در این لیست قرار داده میشوند.

    Inactive: این صفحات غیرفعال که دارای محتوای شناخته شده هستند ولی برای مدت زمانی مورد استفاده نبوده اند.

    Free:صفحاتی که دارای محتوای شناخته شدهای نیستندو بنابراین بلافاصله مورد استفاده قرار میگیرند.

    یک شبه صفحه برای نگهداری مقداری از حافظه آزاد در سیستم استفاده می شود.

    شبه صفحه پروسسی است که اول از همه در مود هسته آغاز به کار میکند و تا زمانیکه کامپیوتر خاموش شود باقی میماند.

    هدف شبه صفحه این است که یک مقدار حداقلی(معمولا 5% از حافظه) را از صفحات در لیست آزاد نگه داری کند.

    که این مقدار در free_min نگهداری میشود.

    متغیر دیگری بنام Free_target وجود دارد که معمولا 7% از حافظه است.

    هر وقت که به مقدار free_target برسیم شبه کارش را متوقف میکند.

    همچنین باید مقدار صفحات غیر فعال را نگه داری کنیم که حداقل آن (که معمولا 33 % از حافظه است ) در inactive_target نگه داری میشود.

    ولیکن مقدار آن با گذشت زمان به صورت اتوماتیک توسط سیستم تنظیم میشود.

    بنابراین هرگاه که میزان حافظه آزاد به زیر free_min برسد شبح فراخوانی میشود.

    شبح شروع به اسکن لیست غیرفعال از قدیمیترین به جدیدترین میکند و کار های زیر را برای هر صفحه انجام میدهد: اگر صفحه پاک و غیر ارجاع باشد به لیست آزاد ببر.

    اگر به توسط یک پروسس فعال اشاره شده باشد آنرا از لیست غیر فعال به لیست فعال منتقل کن.

    اگر صفحه کثیف باشد و در حال حاضر در swap file نوشته شده باشد فعلا از آن عبور کن.

    اگر صفحه کثیف نیست و به صورت فعال استفاده نمیشود پس آنرا روی دیسک برگردان.

    بعد از اسکن کردن شبح چک میکند که لیست غیر فعال کوچکتر از مقدار inactive_target باشد.

    سپس شروع به اسکن لیست فعال میکند تا بعضی از صفحات را به لیست غیر فعال برگرداند.

    همچنین در BSD یک ایده جابجایی Swapping وجود دارد.

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

    در مود swapping آن پروسسی که برای بیشترین زمان اجرا شده است گرفته شده وبه طور کامل به داخل دیسک سخت منتقل میشود.

    3-3-2- Windows: سیستمی که توسط ویندوز برای این کار مورد استفاده قرار میگیرد بسیار بغرنج و پیچیده است.

    ویندوز از شیوه صفحه بندی مورد نیاز کلاستر شده Clustered Demand Paging برای واکشی صفحات و از الگوریتم ساعت برای جابجایی صفحات استفاده میکند.

    در روش Clustered Demand Paging صفحات فقط وقتی که مورد نیاز باشند به حافظه آورده می شوند.

    همچنین به جای آوردن یکی ویندوز معمولا یک کلاستر از آنها را که شامل 1 تا 8 صفحه است را می آورد که بستگی به وضعیت فعلی سیستم دارد.

    هسته 5 نوع خطای صفحه دریافت میکند.: صفحه ای که به آن رجوع میشود در حافظه قرار نگرفته است.

    یک اخطار حفاظتی اتفاق میافتد.

    یک صفحه اشتراکی نوشته شده است.

    پشته نیاز به رشد دارد.

    صفحه ارجاع شده در حافظه آمده است ولی در حال حاضر در حافظه کامل نگاشته نشده است.

    دو خطای اول جبران ناپذیرند و قابل درست شدن نمیباشند.

    سومی نشانگر یک تلاش برای نوشتن بر روی یک صفحه فقط خواندنی را نشان میدهد.

    آن صفحه را یک جای دیگر کپی کن و از صفحه جدید برای خواندن و نوشتن استفاده کن و در این روش کپی به هنگام نوشتتن کار میکند.

    خطای 4 با پیدا کردن یک صفحه اضافی پاسخ داده میشود.

    مهمترین مساله راجع به سیستم های صفحه بندی ویندوز این است که به صورت سنگینی از ایده working_set استفاده میکند.

    Working_set مقدار فضای حافظه ای تعریف میشود که به یک پروسس داده شده است.

    بنابراین working_set شامل صفحاتی از خود است که در حافظه اصلی موجودند.

    سایزworking_set یک مقدار ثابت نیست بنابراین مضراتی که بوسیله استفاده از آنها میاید کمتر میشود.

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

    از طرف دیگر اگر working set اگر از یک مقدار آستانه دیگری بالاتر باشد آنگاه آن از اندازه آن کم میشود.

    بنابراین الگوریتم را میتوان سراسری نامید.

    اما سیستم یک سری بهینه سازی های سراسری نیز انجام میدهد.

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

    در عوض کار کردن وقتی که یک خطای صفحه رخ می دهد درست مانند unix ویندوز نیز یک شبح کاری thread نیز دارد.

    اما در اینجا Balance Set Manager نامیده میشود.

    این شبح هر ثانیه صدا زده میشود و میزان حافظه آزاد را چک میکند که به مقدار کافی باشد.

    اگر نبود آنگاه Working set Manager را صدا میکند و آن تا زمانیکه مقدار حافظه به بالای مقدار آستانه برسد باقی میماند.

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

    اگر بیت ارجاع یک صفحه پاک یا صفر باشد آنگاه شمارنده مرتبط به صفحه یکی اضافه میشود و اگر بیت ارجاع یک باشد، صفر میشود.

    شکل 4)ساختار داده ویندوز NT برای مدیریت حافظه مجازی پروسس بعد از اسکن صفحات با بالا ترین شماره از Working_Set برداشته میشوند.

    بنابراین ویژگی سراسری بودن این الگوریتم ساعت بدلیل کار working Set Manager داده میشود.

    ویندوز لیست صفحات را به 4 بخش تقسیم میکند: لیست صفحات تغییر یافته لیست صفحات در حال انتظار لیست صفحات آزاد لیست صفحات صفر شده.

    اینها در شکل نشان داده شده اند.

    صفحات آزاد آن صفحات پاکی اند که به هیچ پروسسی مرتبط نشده اند.

    لیست صفر شده ها لیست صفحاتی اند که اگر احتیاج شود صفر میشوند.

    نقل و انتقالات بین این لیستها توسط Working set Manager و تعدادی دیگر از Threadهای شبح مانند: Swapper Threadو صفحه نگاشته شده و نویسنده صفحات تغییر یافته انجام میشود.

    3-3-3- Linux: تا Linux 2.2 حافظه مجازی لینوکس بر روی سادگی و کمی سربار متمرکز بود.

    بنابراین خیلی ابتدایی بود و مخصوصا هنگام بار زیاد مشکل زیادی به همراه داشت.

    با ورود System V همه چیز تحت تاثیر قرار گرفت.

    بهر حال رایال بر روی حافظه مجازی لینوکس در چندین سال گذشته کار زیادی انجام داد و به مقدار زیادی آنرا برای انتشار نسخه Linux 2.4 بهبود بخشید.

    لینوکس از یک سیستم صفحه بندی هنگام نیاز بدون هیچ گونه پیش صفحه بندی استفاده میکند.

    تا زمان هسته نسخه 2.2 لینوکس از الگوریتم NRU برای جابجایی صفحات استفاده میکرد اما بخاطر کمبود های گوناگون آنها آن را تغییر دادند و از یک الگوریتم LRU در نسخه 2.4 استفاده کردند.

    برای عمل، LRU یک متغیر Age را که شمارنده مرتبط با صفحه بود استفاده میکرد.

    هر جا که معلوم میشد که جایی به آن صفحه رجوع شده است یک مقدار ثابت به Age اضافه می شد و اگر جایی به صفحه ارجاع داده نشده بود آنرا به صورت نمایی کم میکرد (بر 2 تقسیم میکرد).

    این روش LRU را به شکل خیلی خوبی تقریب میزند.

    لینوکس 2.4 صفحات مجازی را به 4 لیست تقسیم میکند: لیست فعال لیست غیر فعال کثیف لیست غیر فعال تمیز لیست آزاد برای جداسازی صفحات که برای اخراج از حافظه انتخاب شده اند.

    لیست غیر فعال کثیف به وجود آمده است.

    معمولا صفحات فعال در لیست 1 قرار دارند.

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

    اینجور صفحات از لیست 1 به لیست 2 منتقل میشوند.

    لیست غیر فعال در BSD 4,4 و FreeBSD یک مقدار 33% دارد که شبح آن را مدیربت میکند تا در این سطح باقی بماند.

    به هر حال برای لینوکس 2.4 اندازه لیست غیرفعال به صورت پویا قرار داده شده است.

    حالا خود سیستم تصمیم میگیرد که چه تعداد صفحات غیر فعال را باید در یک شرایط بخصوص در حافظه نگه داری کند.

    اتحاد حافظه نهان بافر و حافظه نهان صفحه در نسخه 2.4 به کامل خود رسید و در FreeBSD پیاده سازی شد.

    بهینه سازی دیگر در هسته لینوکس وجود دارد و حالا آنها IO ممتد را میشناسند.

    بعنوان مثال حالا آنها اولویت صفحه را کاهش میدهند تا جایی که آن صفحه زودتر یک کاندید برای اخراج میشود.

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

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

    خالی کردن صفحات که از لیست غیرفعال اتفاق میافتد به صورت عمومی و همین طوری اتفاق نمی افتد بلکه سیستم برای زمان مناسب آن صبر میکند.

    وقتی که کلاستر بندی استفاده شود و خواندن و نوشتن های دیسک به حداقل برسد عمل خالی کردن دیسک به صورت بهینه انجام میگیرد.

    4- پیشنهادات و نتایج : هر سه سیستم عامل از پشت صحنه های مختلفی منشا میگیرند.

    BSD 4.4یک محصول آکادمیک است.

    ویندوز بازرگانی و لینوکس کار هکر هاست.

    هر سه تای آنها مدرن هستند و دارای ایده های تئوری قوی و تمام آنها برای محیطهای تولیدی مناسبند و خیلی نقاط اشتراکی دارند.

    ویندوز بدلیل انگیزه های قوی مادی ساخته شده است و مورد کار و فکر زیادی قرار گرفته است.

    تصمیمات طراح در سطوح مختلفی برای کارایی بهتر بسیار هدایتگر میباشد.

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

    مقدمهمقدمهمقدمهمقدمه4سیستم های مدیریت حافظهسیستم های مدیریت حافظهسیستم های مدیریت حافظهسیستم های مدیریت حافظه4حافظه مجازیحافظه مجازیحافظه مجازی5صفحه بندیصفحه بندیصفحه بندی5مقایسهمقایسهمقایسهمقایسه7ساختمانهای داده ای برای تشریح فضای پروسسساختمانهای داده ای برای تشریح فضای پروسسساختمانهای داده ای برای تشریح فضای پروسس94.4 BSD4.4 BSD9WindowsWindows11LinuxLinux12توزیع فضای آدرس پروسستوزیع فضای آدرس پروسستوزیع فضای آدرس پروسس12جابجایی صفحاتجابجایی صفحاتجابجایی صفحات134.4 BSD4.4 BSD13WindowsWindows15LinuxLinux18پیشنهادات و نتایجپیشنهادات و نتایجپیشنهادات و نتایجپیشنهادات و نتایج19

  • مقدمه
    سیستم های مدیریت حافظه
    حافظه مجازی
    صفحه بندی
    مقایسه
    ساختمانهای داده ای برای تشریح فضای پروسس
    4.4 BSD
    Windows
    Linux
    توزیع فضای آدرس پروسس
    جابجایی صفحات
    4.4 BSD
    Windows
    Linux
    پیشنهادات و نتایج
کلمات کلیدی: , Linux - BSD - Window - مدیریت حافظه

سولایس یک محیط عملیاتی بسیار قوی می باشد که در برگیرنده سیستم عامل چند پردازنده ای چند کاربردی (sun os)sun می باشد . سولاریس یک سیستم عامل شبکه است که در سیستم های pc وابسته به اینتل و همچنین سیستم هایی با پردازنده دارای ساختار معماری ultra SPARC , SPARC اجراء می گردد . این سیستم ها می توانند دارای حداکثر CPU64 باشند که به طور همزمان در سیستم سرور E10000 در حال کار می باشند . با ...

یکی از شیوه‌های استفاده از خدمات پهن‌باند پارس‌آنلاین، استفاده از ارتباط بی‌سیم یا Wireless است که می‌تواند پهنای باندی بسیار بیش از آن چه که به وسیله سیم‌ تامین می‌شود، در اختیار مشترک قرار دهد. در این روش از امواج رادیویی، برای انتقال سیگنال بین دو دستگاه استفاده می‌شود. سازمان مشتری می‌تواند بسته به نیاز خود و با پرداخت هزینه‌ای که با توجه به میزان پهنای باند اختصاص یافته ...

سيستم عامل، يک نرم افزار سيستمي بسيار پيچيده است که بين کاربر و سخت افزار ارتباط برقرار ميکند.در بين اجزاي مختلف تشکيل دهنده فناوري اطلاعات اعم از سخت افزار ،نرم افزار و شبکه، نقش روح در جسم را دارد و محصولي کاربردي است که همراه سخت افزار براي استفا

مقدمه طبق آمار سایت Global Videogame Market سهم 7 میلیون دلاری بازی های همراه از بازار 28 میلیارد دلاری بازی های رایانه در سال 2001 ( که تقریباً معادل 025/0درصد است) به سهم 6/3میلیارد دلاری از بازار 30 میلیارد دلاری بازی های رایانه ای در سال 2006 افزایش یافته است. یعنی تنها در عرض 6 سال این بازار رشدی 500 درصدی داشته است. ارقام وقتی حیرت آورتر می شود که پیش بینی کاربران بازی های ...

به نام خدا شرکت رهنمون فناوري اطلاعات در سال 1381 با مالکيت خصوصي به شماره ثبت 196417 در تهران با هدف ارايه راهکارهاي جامع اتوماسيون مالي و اداري تاسيس گرديد. اين هدف با پوشش جنبه‌هاي مختلف فناوري اطلاعات شامل بررسي و امکان سنجي پياده

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

توزيع کننده هاي مختلف لينوکس : لينوکس توزيع هاي مختلفي دارد که ما چند نمونه از آن را شرح مي دهيم. RedHat اين نسخه به اين دليل که داراي انعطاف زيادي بوده جزء مشهورترين نسخه هاي لينوکس بوده و داراي طرفداران زيادي مي باشد. اين نسخه مي تواند هم به ع

مقدمه امروزه وب به عنوان یک واقعیت انکارناپذیر سایه خود را در تمامی زندگی اجتماعی، اقتصادی و بشریت انداخته و دارای رشد بسیار سریع در زمینه بکارگیری تکنولوژی‌های جدید است. همزمان با این رشد اعجازگونه وب‌ سایتها از حالت اولیه خود که کوچک و عمدتا ایستا بودند خارج شده و به سمت حجیم شدن و پویایی حرکت کردند. امروزه روی یک وب سایت نرم‌افزارهای متعددی اجرا می‌شوند تا پاسخ وی نیاز ...

مقدمه لینوکس یک سیستم عامل قدرتمند ,پایدار و رایگان است و هم اکنون توسط شرکت ها و سازمان های متعددی از سراسر جهان پشتیبانی و حمایت می شود.این سیستم عامل به صورت متن باز ارائه می شود و بدین ترتیب برنامه نویسان و دانشجویان به راحتی می توانند کد های آن را تغییر دهند. هم اکنون انواع مختلفی از سیستم عامل لینوکس همانند SuSe , Mandrake و Red Hat وجود دارد و در کشور ما نیز لینوکس رد هت ...

درمورد علل شکل گیری Visual Studio.NET بطور خلاصه می توان گفت با اینکه مایکروسافت می دانست با ابزارهای قبلی شرکت می توان برنامه های اینترنتی نوشت ولی برای قبضه کردن بازار احتیاج به تکنولوژی جدیدی داشت . مایکروسافت از سال 1998 که ویژوال استودیو 6 را به بازار وارد کرد در پی حل این مشکلات بود تا در سال 2000 ، NET. را در کنفرانس برنامه نویسان حرفه ای PDC به جهان معرفی کرد. از آن روز ...

ثبت سفارش
تعداد
عنوان محصول