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

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

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

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

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

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

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

وقفه - مفاهیم و تکنیک ها - بخش اول

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

سلام

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

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

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

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

مفهوم وقفه ها چهارمین مفهوم برنامه نویسی است که در سومین نسل کامپیوترها مطرح شد.وقفه در واقع یک سیگنال است که ممکن است از داخل یا خارج تولید شود.در هر دو حالت یک بیت وجود دارد به نام بیت IF (پرچم فعال سازی وقفه) در ثبات F که باید قبل از آنکه CPU درخواست وقفه را بپذیرد تنظیم شود.هنگامیکه چنین اتفاقی می افتد ، یک مکانیزم سخت افزاری برای وادار کردن برنامه جاری (فرآیندی که هم اکنون توسط CPU در حال اجرا است) به رهاکردن CPU فعال می شود. اگر بیت IF صفر باشد ، CPU این سیگنال وقفه را در این لحظه نادیده می گیرد.توجه کنید که سیگنال وقفه تا زمانیکه CPU اقدام بعدی را انجام نداده است از بین نمی رود. اگر بیت IF صفر نباشد ، CPU عملیاتی به نام تعویض متن (Context Switching) را انجام می دهد. با این عملیات از PCB (بلاک کنترل فرآیند) فرآیند جاری ، اطلاعات وضعیت CPU به روز می شود. به این صورت که محتوای ثبات های PC ، SR و غیره... از CPU به داخل اطلاعات وضعیت CPU در بلاک کنترل فرآیند جاری انتقال می یابد. با این عمل بعد از وقفه اگر این فرآیند مجدداً به CPU برای اجرا داده شود ، CPU اطلاعات وضعیت CPU را از بلاک کنترل فرآیند برداشته و در ثبات های خود قرار می دهد با این عمل مثلاً CPU با خواندن ثبات PC متوجه می شود که کدام دستورالعمل را باید پردازش و اجرا کند (آدرس به سیستم عامل داده می شود). به هر حال بعد از تعویض متن فرآیند جاری به انتهای صف کوتاه مدت (صف زمانبند) در حافظه اصلی منتقل می شود.شماره وقفه بعد از ارسال سیگنال وقفه باید توسط PIC (کنترل گر برنامه پذیر وقفه) روی گذرگاه داده ها به CPU تحویل داده شود. این کار بعد از به روز رسانی اطلاعات وضعیت CPU انجام می شود. بعد از آن CPU به بردار وقفه مراجعه می کند ، بردار وقفه شامل آدرس های روال های وقفه است که CPU به آن مراجعه کرده و آدرس روال وقفه را بدست آورده و در ثبات PC خود قرار می دهد. حالا نوبت سیستم عامل است که وارد میدان شود.فرآیند جاری که از CPU تحویل گرفته می شود به حالت آماده می رود.سپس سیستم عامل ثبات PC پردازنده را خواند که حاوی آدرس روال اداره کننده وقفه است و روال را برای اجرا به CPU تحویل می دهد.

نکته: CPU به PIC یک ACK ارسال می کند تا PIC را آگاه کند که داده ها را از گذرگاه داده برداشته است.

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

وقفه ها دو دسته هستند:

  • وقفه های سخت افزاری: سیگنال هایی هستند که از خارج می آیند.این وقفه ها ناهمگام هستند.به عنوان مثال ریست کردن کامپیوتر ، وقفه پایان برهه زمانی (در زمانبند) ، وقفه خطا یا نقض سخت افزاری ، وقتی که یک دستگاه I/O یک درخواست می دهد یک وقفه رخ داده که به آن وقفه درخواست می گویند و غیره...
  • وقفه های نرم افزاری: سیگنال هایی هستند که از داخل می آیند. این وقفه ها همگام هستند. به عنوان مثال اجرای دستورالعمل خاص ، ارسال سیگنال از یک برنامه به برنامه دیگر ، فراخوان های سیستمی ، وقفه های شرطی و ...
این مطلب ادامه دارد...


  • مازیار نون

نظرات  (۱)

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

    ارسال نظر

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