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

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

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

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

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

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

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

نیازمندی های تعریف فرآیند برای سیستم عامل

مازیار نون | يكشنبه, ۸ تیر ۱۳۹۳، ۱۰:۲۸ ق.ظ

ابتدا تعریف فرآیند در یک struct

َشبه کد
struct process
بلاک کنترل فرآیند از پنج بخش تشکیل شده است:
1- شناسه فرآیند
* شناسه فرآیند: مقدار منحصر به فردی که به یک فرآیند داده می شود تا از سایر فرآیندها متمایز گردد.
شبه کد
char p_ID[LEN]
* شناسه فرآیند والد: در صورتی که این فرآیند فرزند باشد باید شناسه فرآیند والد مشخص گردد.
شبه کد
cahr p_FID[LEN]
نکته: می توان از اشاره گر به جای تعریف متغیر جداگانه استفاده کرد.
* شناسه کاربری: نام کاربری که به فرآیند دسترسی دارد.
شبه کد
char p_userID[LEN]
--------------------------------------------------------------------------------------------------------------------------------------

2 - وضعیت پردازنده : این اطلاعات شامل ثبات هایی که کاربر می تواند آن را مشاهده کند و در حالت کاربر اجرا می شوند و کاربر می تواند به آنها رجوع کند.بستگی به نوع پیاده سازی پردازنده ، تعداد ثبات ها متغیر است.دسترسی به این ثبات ها از طریق دستورالعمل های ماشین است.
* ثبات های داده : بسته به عملیات متفاوت است.ماانند عملیات حسابی و ...
* ثبات های آدرس: آدرس داده ها و دستورالعمل ها که به صورت کلمه از حافظه اصلی خوانده می شود.ممکن است برای بدست آوردن آدرس ها از این ثبات استفاده شود که باز بسته به عملیات متفاوت است.
* ثبات شاخص: آدرس دهی با عملیات جمع یک شاخص با آدرس پایه برای بدست آوردن آدرس موثر است.
* ثبات های کنترل وضعیت: کنترل عملیات روی پردازنده است و شامل:
 - شمارنده برنامه: آدرس دستورالعمل بعدی
- کدهای وضعیتی: نتایج آخرین عملیات ها در محاسبات یا عملیات های منطقی مانند سریز ، تقسیم بر صفر ، و ...
- وضعیت: flag هایی باری مدیریت وقفه ها مانند فعال سازی و غیر فعال سازی وقفه
شبه کد
char f_cod_Interrupt
شبه کد برای ثبات ها
برای هر کدام از موارد بالا می توان یک struct تعریف کرد که داده ها را نگه داری کند. به غیر از مورد آخر.
--------------------------------------------------------------------------------------------------------------------------------------
3- اشاره گر به پشته ها: این پشته ها حاوی پارامترها ، آدرس روال های برای فراخوانی و ... است.
شبه کد
تعریف struct از نوع اشاره گر و اشاره به بالای هر پشته.
--------------------------------------------------------------------------------------------------------------------------------------
4 - کنترل فرآیند: شامل اطلاعات زمانبندی و رفتار فرآیند.
* رفتار فرآیند: وضعیت فرآیند را نشان می دهد که مورد استفاده برای الگوریتم های زمانبندی است مانند حالت اجرا ، انتظار ، مسدود ، تعلیق و...)
شبه کد
int p_mode
* الویت فرآیند: چنانچه سیاست تخصیص اولویت برای فرآیند در نظر گرفته شده باشد.از این مقدار برای تصمیم گیری های زمانبندی استفاده می شود.
شبکه کد
char p_prt
* حسابداری: برخی اطلاعات مربوط به پروسه زمانبندی مانند مدت زمان انتظار فرآیند و ...
از این اطلاعات برای تخمین کارایی سیستم و تصمیم گیری برای زمانبندی های بعدی استفاده می شود.
شبه کد
می توان یک struct تعریف کرد که داده ها را نگه داری کند.
* رویداد: مشخصه رویدادی که فرآیند برای آن به حالت انتظار رفته است.
شبه کد
char p_evd[LEN]
* سایر اطلاعات
- اشاره گر به صف: چنانچه سیستم از صف برای تعیین اولویت استفاده کرده است مانند سیستم عامل ویندوز
- و ...
* ارتباطات بین فرآیندها
- بستگی به نوع ارتباط دارد: لوله ، پیام ، سمافور ، مانیتور ، و ... باید علائمی در این بخش تعریف شود که نشانگری برای ارتباط بین فرآیندها باشد.
* مجوز فرآیند: اجازه به فرآیند برای اجرای بعضی از دستورالعمل ها و ...
* مدیر حافظه: اشاره گر به جداول صفحه و قطه در سیستم حافظه مجازی.
شبه کد
تعریف یک اشاره گر به جداول صفحه یا قطعه
چون که جداول صفحه و قطعه شامل مقادیر عددی هستند من در شبه کد از اشاره گری از نوع عددی استفاده می کنم.
نکته: ممکن است به صورت دیگر و از نوع دیگر تعریف شود.
numberType *entry_number_p_page
* منابع: تعیین اینکه فرآیند مالک چه منابعی است.
--------------------------------------------------------------------------------------------------------------------------------------
نخ
موارد زیر در داخل فرآیند بخش قبل است.

1 - بلوک کنترل نخ: به مانند فرآیند می باشد با کمی تفاوت.
 * وضعیت نخ : تعریف حالت نخ (تمامی موارد فرآیند به جزء تعلیق)
 * کنترل نخ (متن نخ):در بخش فرآیند توضیح داده شده است.
 * پشته کاربر: که همان اشاره گر به پشته ها می باشد.
 * پشته هسته : پشته برای فراخوانی های هسته ، اگر هسته در بین نخ ها در فرآیند اجرا می شود.
 نکته : پشته هسته در بخش فرآیند گفته نشد زیرا مدل حالت فرآیند مشخص نبود و معمولاً به صورت کلاسیک آورده نمی شود مگر آنکه مدل حالت فرآیند انتخاب شده باشد.
 * حافظه static برای متغیرهای محلی نخ
 شبه کد
توضیح: اشاره گری به مکان حافظه.
****************************************************************************************
به دلیل تصمیم مدیر تیم امکان انتشار کد اصلی فعلاً مقدور نیست.

با تشکر تیم سیستم عامل کوثر
  • مازیار نون

نظرات  (۲)

  • پویا شاهین فر
  • نوع فیلدهای شناسه فرایند و کاربر رو از char به unsigned int تغییر بدید بهتره. تو حالت فعلی فقط می تونید از 256 فرآیند پشتیبانی کنید که خیلی کمه.
  • مازیار نظریان
  • بله می توان از نوع داده unsigned int هم استفاه کرد.
    با تشکر
    لونا

    ارسال نظر

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