Interrupts এবং Exception Handling Assembly Language প্রোগ্রামিং এবং প্রসেসর অপারেশনের জন্য গুরুত্বপূর্ণ ধারণা। Interrupts মূলত সিস্টেমের স্বাভাবিক কার্যপ্রবাহ ব্যাহত করে নির্দিষ্ট সময়ে প্রয়োজনীয় কার্যক্রম সম্পন্ন করতে ব্যবহৃত হয়, যখন Exception Handling হল বিশেষ পরিস্থিতি, যেমন ত্রুটি বা অস্বাভাবিক অবস্থা পরিচালনা করার প্রক্রিয়া।
Interrupts:
INT
নির্দেশনা ব্যবহার করে কার্যকর করা হয়।উদাহরণ:
INT 21h ; DOS interrupt কল করা, সাধারণত I/O কাজের জন্য ব্যবহৃত
Interrupt Vector Table:
Exception Handling:
বৈশিষ্ট্য | Interrupts | Exceptions |
---|---|---|
উৎস | হার্ডওয়্যার বা সফটওয়্যার | প্রসেসর বা প্রোগ্রামের ত্রুটি |
ব্যবহার | স্বাভাবিক কার্যপ্রবাহের বাইরে জরুরি কাজ | ত্রুটি বা অস্বাভাবিক অবস্থা পরিচালনা করা |
প্রক্রিয়াকরণ সময় | সাধারণত asynchronous | সাধারণত synchronous |
উদাহরণ | টাইমার, I/O ডিভাইস, কীবোর্ড ইন্টারাপ্ট | Divide by zero, invalid opcode |
সারসংক্ষেপ
Interrupts এবং Exception Handling প্রসেসরের কার্যপ্রবাহ নিয়ন্ত্রণ এবং ত্রুটি ব্যবস্থাপনার জন্য অপরিহার্য। Interrupts সিস্টেমে স্বাভাবিক কার্যপ্রবাহ থামিয়ে জরুরি কাজ সম্পন্ন করতে ব্যবহৃত হয়, যেখানে Exception Handling ত্রুটি বা অস্বাভাবিক অবস্থা পরিচালনা করে। Interrupt Vector Table ইন্টারাপ্ট পরিচালনা করতে সহায়তা করে, আর Exception Handling প্রসেসর এবং অপারেটিং সিস্টেম স্তরে ঘটে, যা প্রোগ্রামের সঠিক এবং নিরাপদ কার্যপ্রবাহ নিশ্চিত করে।
Interrupts হলো বিশেষ সংকেত যা CPU-কে চলমান কাজ থামিয়ে একটি নির্দিষ্ট কাজ সম্পন্ন করতে বাধ্য করে। এটি সাধারণত কোনো ইভেন্ট বা কন্ডিশনের কারণে ঘটে, যেমন ব্যবহারকারীর ইনপুট, টাইমার ইভেন্ট, অথবা হার্ডওয়্যার ত্রুটি। Interrupts প্রোগ্রামের কার্যপ্রবাহ নিয়ন্ত্রণে গুরুত্বপূর্ণ ভূমিকা পালন করে এবং দ্রুত সাড়া দেওয়ার জন্য ব্যবহৃত হয়।
১. Hardware Interrupts:
২. Software Interrupts:
INT
) ব্যবহার করে ডাকা হয়।৩. Exceptions (Traps):
৪. Maskable এবং Non-Maskable Interrupts:
Interrupts সৃষ্ট হলে CPU নিম্নলিখিত ধাপ অনুসরণ করে:
সারসংক্ষেপ
Interrupts CPU-র কার্যপ্রবাহ নিয়ন্ত্রণে এবং দ্রুত প্রতিক্রিয়া প্রদানে গুরুত্বপূর্ণ ভূমিকা পালন করে। Hardware এবং Software Interrupts বিভিন্ন ইভেন্টে CPU-কে সাড়া দিতে সক্ষম করে। Interrupts-এর মাধ্যমে CPU বিভিন্ন কাজ, ত্রুটি, এবং হার্ডওয়্যার ইভেন্ট পরিচালনা করতে পারে। Maskable এবং Non-Maskable Interrupts CPU-র ইন্টারাপ্ট হ্যান্ডলিং-এর আরও জটিলতা যোগ করে, যা সিস্টেমের স্থিতিশীলতা এবং প্রতিক্রিয়াশীলতা নিশ্চিত করে।
Interrupts হলো এক ধরনের সিগন্যাল যা CPU-কে জানায় যে একটি নির্দিষ্ট ঘটনা ঘটেছে এবং সেই অনুযায়ী প্রোগ্রামের নিয়ন্ত্রণ প্রবাহ পরিবর্তন করতে হবে। Interrupts সাধারণত দুটি প্রধান শ্রেণিতে বিভক্ত: Software Interrupts এবং Hardware Interrupts।
Software Interrupts:
INT
নির্দেশনা ব্যবহার করে Software Interrupt তৈরি করা হয়। যেমন:
MOV AH, 0x09 ; ফাংশন সিলেকশন (ডিসপ্লে স্ট্রিং)
MOV DX, msg ; মেসেজ অ্যাড্রেস
INT 0x21 ; DOS interrupt কল করা
বৈশিষ্ট্য:
Hardware Interrupts:
বৈশিষ্ট্য | Software Interrupts | Hardware Interrupts |
---|---|---|
উত্স | সফটওয়্যার বা প্রোগ্রামের মাধ্যমে সৃষ্ট। | হার্ডওয়্যার ডিভাইস যেমন কিবোর্ড, মাউস, টাইমার। |
নিয়ন্ত্রণ | প্রোগ্রামার দ্বারা নিয়ন্ত্রিত। | CPU দ্বারা স্বয়ংক্রিয়ভাবে প্রক্রিয়াকৃত। |
নির্দেশনা | INT নির্দেশনা ব্যবহার করে। | বাহ্যিক সিগন্যাল বা ইন্টারাপ্ট কন্ট্রোলার। |
ব্যবহার | সিস্টেম কল, ফাংশন কল, ডিবাগিং। | ইনপুট/আউটপুট ডিভাইস এবং টাইমার ইভেন্ট। |
প্রতিক্রিয়া সময় | সাধারণত প্রোগ্রাম নির্ধারিত সময়ে। | অবিলম্বে, প্রয়োজনমতো দ্রুত প্রতিক্রিয়া। |
Software Interrupt:
MOV AH, 0x4C ; DOS ফাংশন (প্রোগ্রাম টার্মিনেট)
INT 0x21 ; DOS interrupt কল করা
Hardware Interrupt:
সারসংক্ষেপ
Software এবং Hardware Interrupts উভয়ই CPU-র কার্যপ্রবাহ নিয়ন্ত্রণে গুরুত্বপূর্ণ ভূমিকা পালন করে। Software Interrupts প্রোগ্রামার দ্বারা তৈরি এবং নিয়ন্ত্রিত হয়, যেখানে Hardware Interrupts স্বয়ংক্রিয়ভাবে বাহ্যিক ডিভাইস দ্বারা সৃষ্ট হয়। Hardware Interrupts CPU-কে তাত্ক্ষণিকভাবে সাড়া দিতে বাধ্য করে, যা ইনপুট/আউটপুট প্রক্রিয়াকরণে সহায়ক, আর Software Interrupts সিস্টেম কল এবং ডিবাগিং প্রক্রিয়ায় ব্যবহৃত হয়।
INT Instruction এবং BIOS Interrupt Calls Assembly Language প্রোগ্রামিংয়ে হার্ডওয়্যার এবং সফটওয়্যার অপারেশন পরিচালনার জন্য ব্যবহৃত হয়। INT নির্দেশনা প্রোগ্রামকে একটি নির্দিষ্ট ইন্টারাপ্ট রুটিন কল করতে সাহায্য করে, এবং BIOS ইন্টারাপ্ট কলগুলি কম্পিউটারের হার্ডওয়্যার ব্যবস্থাপনা এবং ফাংশন পরিচালনার জন্য ব্যবহৃত হয়।
INT Instruction:
সাধারণ গঠন:
INT interrupt_number
এখানে interrupt_number
ইন্টারাপ্ট রুটিনের নম্বর নির্দেশ করে।
উদাহরণ:
MOV AH, 0x09 ; DOS ফাংশন 0x09 ব্যবহার করা (স্ট্রিং প্রিন্ট করা)
MOV DX, msg ; প্রিন্ট করার জন্য স্ট্রিং এর ঠিকানা DX রেজিস্টারে লোড
INT 0x21 ; DOS ইন্টারাপ্ট কল করা
BIOS Interrupt Calls:
উদাহরণ:
কীবোর্ড ইনপুট গ্রহণ করা:
MOV AH, 0x00 ; BIOS ফাংশন 0x00 ব্যবহার করা (কীবোর্ড ইনপুট পড়া)
INT 0x16 ; BIOS ইন্টারাপ্ট 0x16 কল করা
স্ক্রিনে ক্যারেক্টার প্রিন্ট করা:
MOV AH, 0x0E ; BIOS ফাংশন 0x0E ব্যবহার করা (স্ক্রিনে ক্যারেক্টার প্রিন্ট করা)
MOV AL, 'A' ; AL রেজিস্টারে প্রিন্ট করার জন্য ক্যারেক্টার 'A' লোড করা
INT 0x10 ; BIOS ইন্টারাপ্ট 0x10 কল করা
INT Instruction:
BIOS Interrupt Calls:
সারসংক্ষেপ
INT Instruction এবং BIOS Interrupt Calls Assembly Language-এ প্রোগ্রামের কার্যপ্রবাহ এবং হার্ডওয়্যার পরিচালনার জন্য গুরুত্বপূর্ণ। INT Instruction CPU-কে নির্দিষ্ট ইন্টারাপ্ট রুটিন কল করতে নির্দেশ দেয়, যেখানে BIOS Interrupt Calls কম্পিউটারের বেসিক হার্ডওয়্যার ফাংশন যেমন ডিসপ্লে, কীবোর্ড, এবং ডিস্ক ড্রাইভ পরিচালনা করতে ব্যবহৃত হয়। এগুলি প্রোগ্রামারদের জন্য সরাসরি সিস্টেম এবং হার্ডওয়্যার পরিচালনার ক্ষমতা প্রদান করে।
Assembly Language এবং অন্যান্য উচ্চ-স্তরের প্রোগ্রামিং ভাষায় Exception এবং Error Handling গুরুত্বপূর্ণ ভূমিকা পালন করে। এর মাধ্যমে প্রোগ্রামাররা প্রোগ্রামের ত্রুটি সনাক্ত ও পরিচালনা করতে পারেন, যা প্রোগ্রামকে নির্ভরযোগ্য ও স্থিতিশীল করে তোলে। Assembly Language-এ ত্রুটি পরিচালনা তুলনামূলকভাবে জটিল হলেও উচ্চ স্তরের ভাষায় বিভিন্ন টেকনিক ব্যবহৃত হয়। এখানে Assembly এবং উচ্চ-স্তরের ভাষায় Exception এবং Error Handling নিয়ে আলোচনা করা হলো।
Assembly Language এ Exception Handling:
উদাহরণ (ডিভাইড-বাই-জিরো Handling):
mov ax, 10
xor dx, dx ; DX-এ 0, ডিভাইড বায় জিরো তৈরি করবে
div dx ; Exception ঘটবে এবং CPU Exception Handler কল করবে
উচ্চ-স্তরের ভাষায় Exception এবং Error Handling Techniques:
try-catch
ব্লক ব্যবহৃত হয়।throw
স্টেটমেন্ট ব্যবহার করে Exception তৈরি করতে পারেন।finally
ব্লক ব্যবহৃত হয় যা Exception ঘটুক বা না ঘটুক সবক্ষেত্রেই কার্যকর হয়।উদাহরণ (C++ Exception Handling):
#include <iostream>
using namespace std;
int main() {
try {
int a = 10, b = 0;
if (b == 0)
throw "Division by zero error!";
int c = a / b;
} catch (const char* msg) {
cerr << "Error: " << msg << endl;
}
return 0;
}
Error Handling Techniques:
Assembly Language এ Return Code ব্যবহারের উদাহরণ:
mov ax, 1 ; সফলতার জন্য 1 রিটার্ন
int 21h ; DOS interrupt, রিটার্ন কোড হিসেবে কাজ করে
সারসংক্ষেপ
Exception এবং Error Handling Techniques Assembly এবং উচ্চ-স্তরের প্রোগ্রামিং ভাষায় নির্ভরযোগ্য এবং স্থিতিশীল প্রোগ্রাম তৈরি করতে সহায়তা করে। Assembly Language-এ ত্রুটি পরিচালনা করতে Interrupts এবং Custom Exception Handler ব্যবহার করা হয়। অন্যদিকে, উচ্চ-স্তরের ভাষায় try-catch
ব্লক এবং throw
স্টেটমেন্টের মাধ্যমে ত্রুটি পরিচালনা সহজ হয়। সঠিক Error Handling Techniques ব্যবহার করে প্রোগ্রামের ত্রুটি সনাক্ত ও প্রতিরোধ করা সম্ভব, যা প্রোগ্রামকে আরও শক্তিশালী এবং ব্যবহার উপযোগী করে।
common.read_more