عشیکس، خاکستر ، زبان گنجشک ، یونیکس ، علیرضا شمسی :)

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

مطلب سوم - چگونه با وقفه های چند گانه رفتار میشود

دو روش برای برخورد با وقفه های چند گانه وجود دارد 

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

         2.در روش دوم برای وقفه ها اولویت در نظر گرفته میشود و وقفه ای با اولویت بالاتر میتواند روال اداره کننده وقفه ای با اولویت پایینتر را دچار وقفه کند. فرض کنید سه تا دستگاه I/O  داریم به نام چاپگر و دیسک ویک خط ارتباطی که اولویت اونا به ترتیب 2 و 4 و 5 (بیشترین بهترین) برنامه کاربر در زمان t=0  شروع میشه بعد ده ثانیه وقفه چاپگر اتفاق میوفته اطلاعات کاربر به پشته سیستم میره حالا روال خدماتی چاپگر اجرا میشه تو پنج ثانیه بعد اون اتفاق درگاه ارتباطی میاد وسط میدون میگه من اومدم چون اولویتش بالاتره و از همه سر تره نونو از چاپگر میگیرن میدن به این بخوره و ISR چاپگر متوقف میشه بعد 5 ثانیه بعدش یعنی تو t= 20 دیسکم از راه میرسه میگه به منم زمان بدید ولی چون اولویت خط ارتباطی بالاتره (5) دیسک میشینه سر جاش تا نوبتش شه وقتی کار روال درگاه ارتباطی تموم میشه میان که زمان بدن به چاپگر ولی پردازنده میبینه که ااااا اولویت این دیسک از چاپگر بیشتره برا همین بازم ISR چاپگر معطل میمونه تا ISR دیسک کارشو انجام بده وقتی تموم شد بر میگرده به روال ISR چاپگر و کار اونم تموم میشه اوهه چقد معطل موند این بیچاره ... بعد در زمان t=40 پشته فراخوانی میشه و برنامه کاربر ادامه کار خودشو میره .

۰ نظر موافقین ۰ مخالفین ۰
علیرضا شمسی

مطلب دوم - وقفه چیست ؟

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

از نظر مجازی تمامی کامپیوتر ها راهکارهایی را آماده میکنند که قطعات دیگر (مثل I/O و حافظه ) بتونند در کار عادی پردازنده وقفه ایجاد کنند. 
دسته بندی متداول وقفه ها به صورت زیره:
  1. برنامه : وقفه هایی که در اثر بعضی از شرایط حاصل از اجرای یک دستورالعمل مثل سر ریز و تقسیم بر صفر یا سعی در اجرای دستور العمل نا معتبر ماشین و یا خروج از فضای حافظه مجازی رخ میدن.
  2. تایمر : وقفه ای که توسط تایمر موجود در پردازنده رخ میده که موجب این میشه که سیستم عامل بعضی از کاراشو نامظم انجام بده.
  3. I/O : وقفه ای که توسط کنترلگر I/O  ایجاد میشه و تا کامل شدن یک عملیات ویا وجود خطاهایی در انجام عملیات رو اعلان کنه .
  4. خرابی سخت افزار : اینم که از اسمش مشخصه و زمانی رخ میده که مثلا خرابی تو منبع تغذیه یا خطای توازن در حافظه رخ بده.
وقفه ها اوایل برای بهبود کارایی پردازنده ایجاد شدند.

یه مثال :
اکثر دستگاههای I/O خیلی کندتر از پردازنده اند ، فرض کنید پردازنده بخواد بر اساس الگوی چرخه دستورالعمل داده هایی رو به چابگر ارسال کنه بعد از هر عملیات نوشتن پردازنده ، پردازنده باید متوقف شه تا چاپگر اعلام آمادگی کنه :)) مدت این انتظار ممکنه صدها یا هزاران برابر چرخه دستورالعملی باشه که با حافظه اصلا کار نداره مشخصه که زمان CPU به فنا میره.

قضیه به صورت همین شکلیه که پایین کشیدم :
قسمت الف --- تو شکل برنامه کاربر در بین فراخوانی های دستور العمل WRITE جهت عمل نوشتن پردازشهایی رو انجام میده.مجموعه دستورات 1 و 2 و3 فاقد I/O هستند فراخوانی WRITE منجر به اجرای برنامه I/O میشه که یه برنامه سومدمند سیستمه و عمل I/O واقعی سیستمه این برنامه از سه بخش تشکیل شده :

  1. دنباله ای از دستور العمل ها که در شکل با شماره 4 مشخص شد و عمل I/O واقعی رو انجام میدن این عملیات ممکنه داده های خروجی رو در میانگیری ذخیره کند و پارامترهایی رو برای فرمان دادن به دستگاه آماده کند.
  2. فرمان I/O واقعی بدون استفاده از وقفه ها . وقتی این فرمان صادر میشه برنامه ممکن است منتظر دستگاه بمونه تا این دستگاه وظیفش رو انجام بده یا متناوب چکش کنه ببینه تموم کرده یا نه
  3. دنباله ای از دستور العمل هاست که در شکل هم با شماره 5 مشخص شده و عملیات دستگاه رو کامل میکنه بنابراین برنامه I/O در نقطه فراخوانی WRITE به مدت زیادی منتظر میمونه.
قسمت ب--- همانند قبل برنامه کاربر به نقطه ای میرسد که WRITE  را فراخوانی میکند که یک فراخوان سیستم است برنامه I/O که به این روش فراخوانی شد فقط شامل کد آماده سازی و فرما I/O  واقعی است پس از اجرای این دستور العمل ها کنترل به برنامه کار بر باز میگردد در همین زمان دستگاه خارجی مشغول چذیرش داده هخا از حافظه کامپیوتر و چاپ کردن آن است این عملیات I/O به طور همزمان با دستور العمل های برنامه کاربر در حال اجراست .

قسمت ج --- در این حالت برنامه کاربر قبل از کامل شدن عمل I/O در افراخوانی اولین WRITE  به دومین فراخوانی WRITE میرسد نتیجه اسن است که برنامه کاربر در آن نقطه متوقف میشودوقتی عمل I/O قبلی کامل شدممکن است Write جدید شروع شود و عمل I/O جدیدی آغاز گردد.

Interrupt
۰ نظر موافقین ۰ مخالفین ۰
علیرضا شمسی

مطلب اول

این متن هم دومین متن آزمایشی خوده وبلاگ بود دلم نیومد حذفش کنم چون هدف منم همین چیزیه که این پایین اومده برا همین نگرش میدارم باشد که دومین مطلب این وبلاگ باشد

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

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

۱ نظر موافقین ۰ مخالفین ۰
علیرضا شمسی

مطلب مقدمه

بسم الله الرحمن الرحیم

متن اولی خوده وبلاگ بود میزارم بمونه جالبه

مرد خردمند هنر پیشه را، عمر دو بایست در این روزگار، تا به یکی تجربه اندوختن، با دگری تجربه بردن به کار!

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

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

۰ نظر موافقین ۰ مخالفین ۰
علیرضا شمسی