ইন্টারপ্ট বনাম ব্যতিক্রম
যেকোন কম্পিউটারে, একটি প্রোগ্রামের স্বাভাবিক নির্বাহের সময়, এমন কিছু ঘটনা ঘটতে পারে যার ফলে CPU সাময়িকভাবে বন্ধ হয়ে যেতে পারে। এই ধরনের ঘটনাকে বলা হয় বাধা। সফ্টওয়্যার বা হার্ডওয়্যার ত্রুটির কারণে বিঘ্ন ঘটতে পারে। হার্ডওয়্যার বাধাগুলিকে (সহজভাবে) বাধা বলা হয়, যখন সফ্টওয়্যার বাধাগুলিকে ব্যতিক্রম বলা হয়। একবার একটি ইন্টারাপ্ট (সফ্টওয়্যার বা হার্ডওয়্যার) উত্থাপিত হলে, নিয়ন্ত্রণটি আইএসআর (ইন্টারপ্ট সার্ভিস রুটিন) নামক একটি বিশেষ সাবরুটিনে স্থানান্তরিত হয় যা বাধা দ্বারা উত্থাপিত পরিস্থিতিগুলি পরিচালনা করতে পারে৷
ইন্টারপ্ট কি?
Interrupt শব্দটি সাধারণত হার্ডওয়্যার বাধার জন্য সংরক্ষিত।তারা বহিরাগত হার্ডওয়্যার ঘটনা দ্বারা সৃষ্ট প্রোগ্রাম নিয়ন্ত্রণ বাধা. এখানে, বাহ্যিক মানে সিপিইউতে বাহ্যিক। হার্ডওয়্যার বাধাগুলি সাধারণত বিভিন্ন উত্স থেকে আসে যেমন টাইমার চিপ, পেরিফেরাল ডিভাইস (কীবোর্ড, মাউস, ইত্যাদি), I/O পোর্ট (সিরিয়াল, সমান্তরাল, ইত্যাদি), ডিস্ক ড্রাইভ, CMOS ঘড়ি, সম্প্রসারণ কার্ড (সাউন্ড কার্ড, ভিডিও) কার্ড, ইত্যাদি)। তার মানে এক্সিকিউটিং প্রোগ্রামের সাথে সম্পর্কিত কিছু ইভেন্টের কারণে হার্ডওয়্যার বাধা প্রায় ঘটে না। উদাহরণস্বরূপ, ব্যবহারকারীর দ্বারা কীবোর্ডে কী চাপার মতো একটি ইভেন্ট বা একটি অভ্যন্তরীণ হার্ডওয়্যার টাইমার টাইমিং আউট এই ধরনের বাধা বাড়াতে পারে এবং CPU-কে জানাতে পারে যে একটি নির্দিষ্ট ডিভাইসের কিছু মনোযোগ প্রয়োজন। এমন পরিস্থিতিতে সিপিইউ যা করছিল তা বন্ধ করে দেবে (অর্থাৎ বর্তমান প্রোগ্রামটি বিরতি দেবে), ডিভাইসের প্রয়োজনীয় পরিষেবা সরবরাহ করবে এবং স্বাভাবিক প্রোগ্রামে ফিরে আসবে। যখন হার্ডওয়্যার বিঘ্ন ঘটে এবং CPU ISR শুরু করে, তখন অন্যান্য হার্ডওয়্যার বাধা অক্ষম করা হয় (যেমন 80×86 মেশিনে)। ISR চলাকালীন আপনার যদি অন্য হার্ডওয়্যার বাধার প্রয়োজন হয়, তাহলে আপনাকে ইন্টারাপ্ট ফ্ল্যাগ (sti নির্দেশ সহ) পরিষ্কার করে তা করতে হবে।80×86 মেশিনে, ইন্টারাপ্ট ফ্ল্যাগ সাফ করা শুধুমাত্র হার্ডওয়্যার বাধাকে প্রভাবিত করবে।
ব্যতিক্রম কি?
ব্যতিক্রম একটি সফ্টওয়্যার বাধা, যা একটি বিশেষ হ্যান্ডলার রুটিন হিসাবে চিহ্নিত করা যেতে পারে। ব্যতিক্রম একটি স্বয়ংক্রিয়ভাবে ঘটে যাওয়া ফাঁদ হিসাবে চিহ্নিত করা যেতে পারে (একটি ফাঁদকে নিয়ন্ত্রণের স্থানান্তর হিসাবে চিহ্নিত করা যেতে পারে, যা প্রোগ্রামার দ্বারা শুরু হয়)। সাধারণত, ব্যতিক্রমগুলির সাথে সম্পর্কিত কোনও নির্দিষ্ট নির্দেশ নেই (একটি নির্দিষ্ট নির্দেশ ব্যবহার করে ফাঁদ তৈরি করা হয়)। সুতরাং, একটি ব্যতিক্রম একটি "ব্যতিক্রমী" অবস্থার কারণে ঘটে যা প্রোগ্রাম সম্পাদনের সময় ঘটে। উদাহরণস্বরূপ, শূন্য দ্বারা বিভাজন, একটি অবৈধ অপকোড কার্যকর করা বা মেমরি সম্পর্কিত ত্রুটি ব্যতিক্রম হতে পারে। যখনই একটি ব্যতিক্রম উত্থাপিত হয়, তখন সিপিইউ সাময়িকভাবে স্থগিত করে যে প্রোগ্রামটি এটি কার্যকর করছিল এবং আইএসআর শুরু করে। ISR ধারণ করবে ব্যতিক্রম কি করতে হবে। এটি সমস্যাটি সংশোধন করতে পারে বা এটি সম্ভব না হলে এটি একটি উপযুক্ত ত্রুটি বার্তা প্রিন্ট করার মাধ্যমে প্রোগ্রামটিকে সুন্দরভাবে বাতিল করতে পারে।যদিও একটি নির্দিষ্ট নির্দেশ একটি ব্যতিক্রম ঘটায় না, একটি ব্যতিক্রম সবসময় একটি নির্দেশ দ্বারা সৃষ্ট হবে। উদাহরণস্বরূপ, শূন্য ত্রুটি দ্বারা বিভাজন শুধুমাত্র ডিভিশন নির্দেশনা কার্যকর করার সময় ঘটতে পারে।
Interrupt এবং Exception এর মধ্যে পার্থক্য কি?
ইন্টারপ্ট হল হার্ডওয়্যার ইন্টারাপ্ট, যেখানে ব্যতিক্রম হল সফ্টওয়্যার ইন্টারাপ্ট৷ হার্ডওয়্যার বাধার ঘটনা সাধারণত অন্যান্য হার্ডওয়্যার বাধা অক্ষম করে, কিন্তু ব্যতিক্রমগুলির জন্য এটি সত্য নয়। যদি আপনি একটি ব্যতিক্রম পরিবেশন না হওয়া পর্যন্ত হার্ডওয়্যার বাধাগুলিকে অস্বীকৃত করতে চান, তাহলে আপনাকে স্পষ্টভাবে বাধা পতাকাটি সাফ করতে হবে। এবং সাধারণত কম্পিউটারে ইন্টারাপ্ট ফ্ল্যাগ (হার্ডওয়্যার) বাধাকে প্রভাবিত করে ব্যতিক্রমের বিপরীতে। এর মানে হল এই পতাকা সাফ করলে ব্যতিক্রমগুলি প্রতিরোধ করা যাবে না।