مداخلت اور استثنائی کے درمیان فرق

Anonim

مداخلت بمقابلہ استثنی

کسی بھی کمپیوٹر میں، اس کے معمول پر عملدرآمد کے دوران، ایسے واقعات ہوسکتے ہیں جو سی سی یو کو عارضی طور پر روکنے میں ناکام ہوسکتی ہے. اس طرح کے واقعات کو رکاوٹ کہا جاتا ہے. مداخلت یا تو سافٹ ویئر یا ہارڈ ویئر کی غلطیوں کی وجہ سے ہوسکتی ہے. ہارڈ ویئر کی مداخلت بلایا جاتا ہے (آسانی سے) مداخلت کرتا ہے، جبکہ سافٹ ویئر میں رکاوٹوں کو استثنا کہتے ہیں. ایک بار جب مداخلت (سافٹ ویئر یا ہارڈ ویئر) اٹھائے جاتے ہیں تو، کنٹرول آئی ایس آر (انٹراپوت سروس روٹین) کا نام ایک خصوصی ذیلی جگہ پر منتقل کیا جا سکتا ہے جس میں رکاوٹوں کی طرف سے اٹھائے گئے حالات کو سنبھال سکتے ہیں.

مداخلت کیا ہے؟

مداخلت کی اصطلاح عموما ہارڈ ویئر کے مداخلت کے لئے مخصوص ہے. بیرونی ہارڈ ویئر کے واقعات کی وجہ سے وہ پروگرام کنٹرول رکاوٹ ہیں. یہاں، بیرونی وسائل CPU کے لئے. ہارڈ ویئر کو عام طور پر بہت سے مختلف ذرائع سے روکتا ہے جیسے ٹائمر چپ، پردیی آلات (کی بورڈ، ماؤس، وغیرہ)، I / O بندرگاہوں (سیریل، متوازی، وغیرہ)، ڈسک ڈرائیوز، CMOS گھڑی، توسیع کارڈ (صوتی کارڈ، ویڈیو) کارڈ، وغیرہ). اس کا مطلب یہ ہے کہ عملدرآمد کے پروگرام سے متعلق کچھ ایونٹ کی وجہ سے ہارڈ ویئر تقریبا کبھی نہیں ہوتا. مثال کے طور پر، صارف کی طرف سے کی بورڈ پر کلیدی پریس جیسے ایک ایونٹ، یا اندرونی ہارڈویئر ٹائمر ٹائمنگ کے باہر اس قسم کی مداخلت کو بڑھا سکتا ہے اور سی پی یو کو بتا سکتا ہے کہ ایک مخصوص آلہ کو کچھ توجہ کی ضرورت ہے. ایسی صورت حال میں، سی سی یو اس کے ساتھ کیا کر رہا ہے اس کو روک دے گا (میں موجودہ پروگرام کو روکتا ہے)، آلہ کی طرف سے ضروری خدمات فراہم کرتا ہے اور عام پروگرام میں واپس آ جائے گا. جب ہارڈ ویئر میں مداخلت ہوتی ہے اور CPU ISR شروع ہوتا ہے، دوسرے ہارڈویئر مداخلت غیر فعال ہیں (80 × 86 مشینیں میں ای). اگر آئی ایس آر چل رہا ہے، تو آپ کو دیگر ہارڈ ویئر کی مداخلت کی ضرورت ہوتی ہے، آپ کو مداخلت کے پرچم کو صاف کرکے (STI ہدایات کے ساتھ) واضح طور پر کرنے کی ضرورت ہے. 80 × 86 مشینوں میں، مداخلت کے پرچم کو صاف کرنا ہارڈ ویئر کے مداخلت کو صرف اثر انداز کرے گا.

استثناء کیا ہے؟

استثنا ایک سافٹ ویئر کی مداخلت ہے، جو ایک مخصوص ہینڈل کے معمول کے طور پر شناخت کیا جاسکتا ہے. استثنا خود کار طریقے سے واقع ہونے والے نیٹ ورک کے طور پر شناخت کی جاسکتی ہے (ایک ٹریپ کو کنٹرول کے منتقلی کے طور پر شناخت کیا جا سکتا ہے، جو پروگرامر کی طرف سے شروع ہوتا ہے). عموما، استثناء کے ساتھ منسلک کوئی مخصوص ہدایات نہیں ہیں (نیٹ ورک مخصوص ہدایات کا استعمال کرتے ہوئے پیدا ہوتے ہیں). لہذا، ایک استثنا ہوتا ہے "غیر معمولی" حالت کی وجہ سے ہے جو پروگرام کے پھانسی کے دوران ہوتا ہے. مثال کے طور پر، صفر کی طرف سے تقسیم، غیر قانونی اوکوکیڈ یا میموری سے متعلقہ غلطی کی پھانسی استثنا کی وجہ سے ہوسکتی ہے. جب بھی کسی استثنا میں اضافہ ہوا ہے تو، CPU عارضی طور پر اس پروگرام کو معطل کر دیتا ہے جس کو یہ آئی ایس آر کو نافذ کرنا اور شروع ہوتا ہے. ISR اس استثنا کے ساتھ کیا کرنا ہوگا. یہ مسئلہ کو درست کرسکتا ہے یا اگر ممکن نہیں ہے تو یہ ممکنہ غلطی کا پیغام پرنٹ کرکے پروگرام کو فضل سے روک دے.اگرچہ ایک مخصوص ہدایت کسی استثنا کی وجہ سے نہیں ہے تو، ایک استثنا ہمیشہ ایک ہدایت کی وجہ سے ہو گا. مثال کے طور پر، صفر کی غلطی سے تقسیم صرف ڈویژن ہدایات کے عمل کے دوران ہوسکتا ہے.

مداخلت اور استثنا کے درمیان کیا فرق ہے؟

مداخلت ہارڈ ویئر میں رکاوٹ ہیں، جبکہ استثنا سافٹ ویئر میں مداخلت ہے. ہارڈ ویئر کے وقفے وقفے وقفے سے عام طور پر دیگر ہارڈویئر مداخلت کو غیر فعال کر دیتا ہے، لیکن یہ استثناء کے لئے درست نہیں ہے. اگر آپ کو کسی استثناء کی تکمیل تک جب تک آپ ہارڈ ویئر کے مداخلت کو غیر فعال کرنے کی ضرورت نہیں ہے، تو آپ کو واضح طور پر مداخلت کے پرچم کو صاف کرنے کی ضرورت ہے. اور عام طور پر کمپیوٹر پر پرچم رکھنا پرچم پر اثر انداز ہوتا ہے (ہارڈویئر) استثنا کے خلاف مداخلت کرتا ہے. اس کا مطلب ہے کہ اس پرچم کو صاف کرنے سے استثناء سے بچنے کی کوئی ضرورت نہیں.