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

سیستم عامل فارسی کوثر

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

سیستم عامل فارسی کوثر

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

سیستم عامل کوثر یک سیستم عامل فارسی بر پایه معماری X86 می باشد. هدف این سیستم عامل تا اطلاع ثانوی آزمایشی / آموزشی می باشد. این سیستم عامل بر پایه هیچ سیستم عامل دیگری مانند لینوکس و ... نمی باشد و از ابتدا توسط توسعه دهندگان آن نوشته شده است.
ما از علاقمندان به برنامه نویسی و طراحی سیستم در همکاری و توسعه این سیستم عامل استقبال می کنیم. نیازی نیست که شما برنامه نویسی و یا ... خبره باشید. حتی با دانش کم هم می توان به ما کمک کرد.
امید است بعد از مراحل آموزشی به مرحله بهره برداری از یک سیستم عامل کاملا بومی برسیم.
emadrezvani@chmail.ir

آخرین نظرات
نویسندگان

انتخاب روش های مدیریت حافظه - بخش سوم

مازیار نون | چهارشنبه, ۱۱ تیر ۱۳۹۳، ۰۵:۲۷ ق.ظ

سلام

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

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

قاب : یک بلاک که طول آن ثابت است و در حافظه اصلی قرار داد.


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


صفحه بندی به دو صورت بیان شده است: صفحه بندی ساده ، صفحه بندی با حافظه مجازی

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

اما ممکن است این سوال پیش آید که چرا بخش بندی استفاده نشود؟ پاسخ آن ساده است زیرا با هر مکانیزمی که دو روش بخش بندی طراحی شد ، در نهایت حافظه را از کارایی انداخت.

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

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

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

- انحراف : فاصله از ابتدای صفحه تا کلمه مورد نظر

- شماره صفحه : شماره صفحه فرآیند.

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

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

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

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

با تشکر

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

  • مازیار نون

نظرات  (۱)

خوشحال میشم نظراتتون رو بدونم
http://dastanman.blog.ir/

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی