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

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

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

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

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

در روش دوم ، براي وقفه ها اولويت در نظر گرفته مي گردد و وقفه اي با اولويت بالاتر مي تواند سیاق اداره كنند مربوط به وقفه اي با اولويت پايين تر را دچار وقفه كند به عنوان مثالي از روش دوم ، سيستمي با سه دستگاه I/O را در نظر بگيريد . اين دستگاه ها عبارت اند از چاپگر ، ديسك ، ويك خط ارتباطي كه اولويت آن ها به ترتيب 2 ، 4 و 5 می باشد . برنامه كاربر در زمان t=0 شروع مي گردد . در زمان t=10 وقفه چاپگر رخ مي دهد . اطلاعات كاربر در پشته سيستم قرار مي گيرد و اجرا در سیاق خدماتي چاپگر (ISR) ادامه مي يابد . در حين اجراي اينروال ،‌در t=15 وقفه ارتباطي رخ مي دهد . زیرا اولويت خط ارتباطي بيش از چاپگر می باشد اين وقفه پذيرفته مي گردد ISR چاپگر وقفه مي گردد ،‌حالت آن در پشته قرار مي گيرد ،‌و اجرا در ISR ارتباطي ادامه مي يابد .در اثناي اجراي اين سیاق ، در زمان t=20 وقفه ديسك رخ مي دهد . زیرا اولويت اين وقفه كمتر از اولويت وقفه ارتباطي كامل می باشد ، منتظر مي ماند و اجراي ISR ادامه مي يابد تا كامل گردد

وقتي در زمان t=25 سیاق خدماتي ارتباطي كامل گردید ،‌حالت قبلي پردازنده بازيابي مي گردد كه اجراي ISR چاپگر می باشد . اما ،‌قبل از اين كه حتي يك دستوراز اين سیاق اجرا گردد ،‌پردازنده ، وقفه ديسك را كه اولويت بالاتري دارد مي پذيرد وكنترل اجرا به ISR ديسك منتقل مي گردد . وقتي اين سیاق در t=35 خاتمه يافت ، ISR چاپگر از سرگرفته مي گردد. وقتي سیاق چاپگر در زمان t=40 خاتمه يافت ،‌كنترل به برنامه كاربر باز مي گردد.

چند برنامه اي

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

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

I/O بدون ميانگير

شما می توانید مطالب مشابه این مطلب را با جستجو در همین سایت بخوانید                     

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

دستگاه هاي يونيكس

يونيكس پنج نوع دستگاه را شناسايي مي كند :

  • گرداننده هاي ديسك
  • گرداننده هاي نوار
  • پايانه ها
  • خطوط ارتباطي
  • چاپگرها

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