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

در اين شكل ، برنامه كاربر در بين فراخواني هاي دستورالعمل WRIT (‌جهت اقدام نوشتن ) ،‌پردازش هايي را انجام مي دهد . مجموعه دستورات 1 و 2 و 3 فاقد I/O هستند فراخواني WRITE منجر به اجراي برنامه I/O مي گردد كه يك برنامه سودمند سيستم می باشد وعمل I/O واقعي را انجام مي دهد . اين برنامه I/O شامل سه بخش می باشد :

    شما می توانید مطالب مشابه این مطلب را با جستجو در همین سایت بخوانید                     
  • دنباله اي از دستور العمل ها كه درشكل مشخص گردید و اقدام I/O واقعي را انجام مي دهند اين عمليات ممكن می باشد داده هاي خروجي را در ميانگيري ذخيره كند و پارامترهايي را براي فرمان دادن به دستگاه آماده نمايد .
  • فرمان I/O واقعي ، بدون بهره گیری از وقفه ها ، وقتي اين فرمان صادر مي گردد ، برنامه ممكن می باشد منتظر دستگاه I/O بماند تا اين دستگاه وظيفه اش را انجام دهد ( يا به گونه متناوب ، وضعيت دستگاه I/O را كنترل نمايد تا مشخص گردد اقدام I/O تمام گردید يا خير ).
  • دنباله اي از دستور العمل ها كه در شكل با شماره 5 مشخص گردید و عمليات را كامل مي كند . اين عمليات ممكن می باشد برچسبي را مقدار دهد كه نشان دهنده موفقيت يا شكست آن باشد .

زیرا كامل شدن اقدام I/O ممكن می باشد مدت زيادي طول بكشد ، برنامه I/O منتظر مي ماند تا اقدام I/O كامل گردد . لذا برنامه I/O در نقطه فراخواني WRITE به مدت زيادي منتظر مي ماند .

وقفه ها و چرخه دستور العمل

با بهره گیری از وقفه ها ، وقتي كه اقدام I/O در حال انجام می باشد ،‌پردازنده مي تواند دستور العمل هاي ديگري را اجرا كند . جريان كنترل را در شكل در نظر بگيريد . همانند قبل ،‌برنامه كار به نقطه اي مي رسد كه WRITE را فراخواني مي كند كه يك فراخوان سبستم می باشد . برنامه I/O كه به اين روش فراخواني گردید . فقط شامل كد آماده سازي و فرمان I/O واقعي می باشد . پس از اجراي اين دستور العمل ها ،‌كنترل به برنامه كاربر بر مي گردد . در همين زمان ،‌دستگاه خارجي مشغول پذيرش داده ها از حافظه كامپيوتر و چاپ كردن آن می باشد . اين عمليات I/O به گونه همزمان با دستور العمل هاي برنامه كار در حال اجرا می باشد .

وقتي دستگاه خارجي آماده ارائه خدمات گردید ، يعني آماده گردید تا داده هاي بيشتري را از پردازنده بپذيرد ، قطعه I/O مربوط به آن دستگاه خارجي ، سيگنال درخواست وقفه را به پردازنده مي فرستد . پردازنده در پاسخ به اين درخواست وقفه ، اقدام برنامه فعلي را به تعويق مي اندازد ، به برنامه اي مي رود تا به آن دستگاه I/O خدمات دهد و پس از ارائه خدمات به آن دستگاه ،‌اجراي برنامة به تعويق افتاده را از سر مي گيرد . برنامه اي كه در اثر وقوع وقفه اجرا مي گردد تا به آن دستگاه I/O خدمات دهد ،‌اداره كننده وقفه نام دارد

از ديدگاه برنامه كاربر ،‌وقفه موجب مي گردد برنامه اي كه در حال اجرا می باشد به تعويق افتد . وقتي پردازش وقفه كامل گردید ، اجراي برنامه از سر گرفته مي گردد لذا برنامه كاربر نبايد كد خاصي براي پشتيباني از وقفه داشته باشد ، بلكه پردازنده و سيستم عامل ،‌مسئول به تعويق انداختن برنامه كاربر واز سرگيري آن پس از پردازش وقفه اند .

براي پشتيباني از وقفه ها ، چرخه وقفه به چرخه دستور العمل اضافه مي گردد در چرخه وقفه ، پردازنده سعي مي كند تا ببين آيا وقفه اي رخ داد يا خير . وقفه يا سيگنال وقفه مشخص مي گردد . اگر هيچ وقفه اي رخ نداده باشد ، پردازنده به چرخه واكشي ادامه مي دهد و دستورالعمل بعدي برنامه فعلي را واكشي مي كند .اگر وقفه اي رخ داده باشد ،‌پردازنده اجراي برنامه فعلي را به تعويق مي اندازد و سیاق اداره كننده وقفه را اجرا مي كند و برنامه اداره كننده وقفه ، عموماً بخشي از سيستم عامل می باشد . اين برنامه ، ماهيت و قفه را تعين كرده اقدام مورد نياز را انجام مي دهد . در مثالي كه مطرح كرديم ،‌اداره كننده وقفه تعيين مي كند كدام قطعه I/O وقفه را توليد كرد و ممكن می باشد به برنامه اي برود كه داده هاي بيشتري را در قطعه I/O مي نويسد . وقتي سیاق اداره كننده وقفه كامل گردید ، پردازنده مي تواند اجراي برنامه كاربر را از نقطه اي كه به تعويق افتاد از سر گيرد .

بديهي می باشد كه در اين فرآيند ، سربارهايي هست دستور العمل هاي اضافي بايددر سیاق اداره كننده وقفه اجرا شوند تا ماهيت وقفه را تعيين كنند و سپس اقدام مورد نظر را انجام دهند . بااين وجود ،‌زیرا زمان زيادي انتظار تكميل اقدام I/O صرف مي گردد ، با بهره گیری از وقفه ها ، پردازنده با كارايي بيشتري بهره گیری مي گردد.

براي اين كه قدر اين كارايي را بدانيد يك نمودار زماني براساس جريان كنترل می باشد زمان لازم براي اقدام I/O نسبتاً كوتاه می باشد ،‌به طوري كه اين زمان ، از زمان لازم براي كامل شدن اجراي دستور العمل هاي بين دو دستور العمل نوشتن در برنامة كاربر ، كمتر می باشد . در حالت عادي ،‌به ويژه براي دستگاه كندي مثل چاپگر ،‌زمان لازم براي اقدام I/O خيلي بيشتر از زمان اجراي دنباله اي از دستور العمل هاي كاربر می باشد ، در اين حالت ، برنامه كار بر قبل از كامل شدن اقدام I/O جديدي آغاز گردد. شكل بعدي تنظيم زماني اين وضعيت را با بهره گیری وقفه ها و بدون بهره گیری از وقفه ها نشان مي دهد . مي بينيم كه كارايي تا حدي بهبود مي يابد ، زيرا در اثناي اقدام I/O دستور العمل كاربر اجرا مي شوند .

پردازش وقفه

وقوع وقفه منجر به رويدادهايي در نرم افزار و سخت افزار پردازنده مي گردد دنباله اي از اين رويدادها نشان مي دهد وقتي دستگاه I/O ،‌يك اقدام I/O را كامل مي كند .

دنباله اي از رويدادهاي سخت افزاري زير رخ مي دهد :

شما می توانید تکه های دیگری از این مطلب را در شماره بندی انتهای صفحه بخوانید              

1ـ اين دستگاه ، سيگنال وقفه را به پردازنده مي فرستد.

2ـ پردازنده قبل از پاسخگويي به وقفه ،‌اجراي دستور العمل فعلي را به پايان مي‌رساند

3ـ پردازنده وجود وقفه را بررسي مي كند و مي بيند كه وقفه اي رخ داده می باشد ووصول سيگنال وقفه را به دستگاه صادر كننده وقفه اعلام مي كند ، اين اعلام وصول به دستگاه اجازه مي دهد تا سيگنال وقفه اش را حذف كند .

4ـ اكنون پردازنده بايد آماده انتقال كنترل به سیاق وقفه گردد . آغاز بايد اطلاعات لازم را براي از سرگيري برنامه فعلي از نقطه وقوع وقفه ، ذخيره نمايد . حداقل اطلاعات لازم ،‌كلمه وضعيت برنامه (PSW) و محل دستور العمل بعدي (PC) می باشد . اين اطلاعات را مي توان در پشته كنترل سيستم ذخيره كرد.

5ـ اكنون پردازنده ، آدرس محل ورود به سیاق وقفه اي را كه به اين وقفه پاسخ مي دهد ، درشمارنده برنامه (PC) قرار مي دهد . بسته به معماري كامپيوتر وطراحي سيستم عامل ، ممكن می باشد براي هر نوع وقفه يك برنامه اداره كننده وقفه وجودداشته باشد يا براي هر دستگاه و هر وقفه چنين برنامه اي موجود باشد اگر بيش از يك سیاق اداره كننده وقفه وجود داشته باشد ، پردازنده بايد تصميم بگيرد كدام را فراخواني كند . اين اطلاعات ممكن می باشد در سيگنال وقفه اصلي وجودداشته باشد ، يا ممكن می باشد پردازنده از دستگاه صادر كننده وقفه درخواست كند كه اين اطلاعات را در اختيارش قرار دهد .

وقتي شمارنده برنامه بار گردید ، پردازنده به چرخه دستور العمل بعدي مي رود كه با چرخه واكشي دستور العمل شروع مي گردد . زیرا واكشي دستور العمل توسط محتويات شمارنده برنامه تعيين مي گردد ،‌نتيجه اش اين می باشد كه كنترل به برنامه اداره كننـــده وقفه منتقل مي گردد . اجراي اين برنامه منجر به عمليــات زير مي‌گردد :

6ـ در اين نقطه ،‌شمارنده برنامه و PSW برنامه اي كه دچار وقفه گردید ، در پشته سيستم ذخيره شده می باشد . اما ، اطلاعات ديگري هست كه به عنوان بخشي از حالت برنامة در حال اجزا محسوب مي گردد . به خصوص محتويات ثبات هاي پردازنده بايد ذخيره شوند ، زيرا اين ثبات ها ممكن می باشد توسط سیاق اداره كننده وقفه بهره گیری شوند .

بنابراين تمام اين مقادير و ساير اطلاعات مربوط به حالت برنامه بايد ذخيره شوند . معمولاً روان اداره كننده وقفه با ذخيره محتويات تمام ثبات ها شروع مي گردد . ساير اطلاعات مربوط به حالت برنامة در حال اجرا كه بايد ذخيره شوند ، در اين مثال ، برنامه كاربر پس از اجراي دستور العمل موجود در محل N دچار وقفه مي گردد . محتويات تمام ثابت ها و آدرس دستور العمل بعدي (N+1) در پشته كنترل ذخيره مي گردد كه در مجموع M كلمه می باشد . مقدار تصریح گر پشته عوض مي گردد تا به بالاي پشته تصریح كند ومقدار شمارنده برنامه عوض مي گردد تا به سیاق اداره كننده وقفه تصریح كند .

7ـ اكنون اداره كننده وقفه شروع به پردازش وقفه مي كند . اين اقدام شامل بررسي اطلاعات وضعيت مربوط به عمليات I/O يا رويداد ديگري می باشد كه منجر به وقفه شده می باشد . علاوه بر اين ، شامل ارسال فرمان هاي ديگر؛ اعلام وصول هايي به دستگاه I/O می باشد .

8ـ وقتي پردازش وقفه كامل گردید ،‌مقادير ثبات ها كه در پشته ذخيره شدند از پشته بازيابي شده در ثبات ها بار مي شوند .


دیدگاهتان را بنویسید