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

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

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

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

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

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

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

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

مازیار نون | شنبه, ۱۴ تیر ۱۳۹۳، ۰۹:۲۶ ب.ظ

سلام

قبل از آنکه به ادامه مطالب بپردازم لازم است مسئله ای را اینجا مطرح کنم.

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

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

********************************************

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

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

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

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

مسئله بعدی در رابطه با صفحه بندی با حافظه مجازی مراجعات به حافظه است که ممکن باعث کاهش کارایی و سربار زیاد شود. به این ترتیب که باید دو مراجعه به حافظه صورت گیرد یک مراجعه به جدول صفحه و یک مراجعه برای fetch کلمه از حافظه است.یکی از راهکارها استفاده از حافظه نهان است که به این روش TLB گفته می شود در TLB همان راهکار حافظه پنهان استفاده می شود به این صورت که شماره قاب صفحاتی که اخیراً مراجعه شده است در آن قرار داده می شود. در این طرح الگوریتمی شما با شماره صفحه به TLB مراجعه می کنید اگر صفحه مورد نظر (شماره قاب) در TLBبود که پروسه تبدیل آدرس انجام می شود در غیر اینصورت باید به جدول صفحه مراجعه کنید.این باعث ایجاد دو نرخ می شود نرخ اصابت و عدم اصابت. اما اگر صفحه در جدول صفحه بود TLB مانند حافظه نهان به روز می شود و این کار با تولید یک خطای صفحه انجام می شود.

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

با تشکر

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

  • مازیار نون

نظرات  (۱)

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

    ارسال نظر

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