ইন্টারাপ্ট প্রকারভেদ: হার্ডওয়্যার এবং সফটওয়্যার ইন্টারাপ্ট
ইন্টারাপ্ট একটি সিগন্যাল যা কম্পিউটারের প্রসেসরের কার্যক্রমকে সাময়িকভাবে বিরতি দেয় এবং একটি নির্দিষ্ট কার্যক্রমের দিকে মনোনিবেশ করতে বলে। এটি কম্পিউটারের সিস্টেমের মধ্যে গুরুত্বপূর্ণ ডাটা বা ইভেন্টের জন্য দ্রুত প্রতিক্রিয়া নিশ্চিত করে। ইন্টারাপ্ট সাধারণত দুটি প্রকারে বিভক্ত করা হয়: হার্ডওয়্যার ইন্টারাপ্ট এবং সফটওয়্যার ইন্টারাপ্ট।
১. হার্ডওয়্যার ইন্টারাপ্ট (Hardware Interrupt)
হার্ডওয়্যার ইন্টারাপ্ট তখন ঘটে যখন একটি বাহ্যিক হার্ডওয়্যার ডিভাইস (যেমন কীবোর্ড, মাউস, প্রিন্টার বা টেম্পোরাল কন্ডিশন) প্রসেসরের কাছে একটি সিগন্যাল পাঠায়। এই সিগন্যাল প্রসেসরকে জানিয়ে দেয় যে কোনও নির্দিষ্ট কাজ বা ডিভাইসের পরিস্থিতি সম্পর্কিত কিছু ঘটেছে, যেমন ডাটা পাওয়া গেছে বা বাহ্যিক কোন ইভেন্ট ঘটেছে।
বৈশিষ্ট্য:
- বাহ্যিক উৎস: হার্ডওয়্যার ইন্টারাপ্ট সাধারণত বাইরের হার্ডওয়্যার ডিভাইস থেকে আসে, যেমন কীবোর্ডের কী প্রেস, মাউসের ক্লিক, বা প্রিন্টার সম্পন্ন হওয়া।
- দ্রুত প্রতিক্রিয়া: যখন কোনো বাহ্যিক ইভেন্ট ঘটে (যেমন, কীবোর্ডে কী প্রেস), তখন প্রসেসর দ্রুত সেই ইভেন্টটি প্রক্রিয়া করতে ইন্টারাপ্ট গ্রহণ করে।
- ডিভাইসের সাথে যোগাযোগ: হার্ডওয়্যার ইন্টারাপ্ট ডিভাইস এবং প্রসেসরের মধ্যে যোগাযোগ বাড়ায় এবং নির্দিষ্ট পরিস্থিতিতে সিস্টেমের কার্যক্ষমতা বাড়ায়।
উদাহরণ:
- কীবোর্ড ইন্টারাপ্ট: যখন ব্যবহারকারী কীবোর্ডে একটি কী চাপেন, তখন কীবোর্ড একটি ইন্টারাপ্ট সিগন্যাল পাঠায় এবং প্রসেসর এটি গ্রহণ করে এবং প্রক্রিয়া করে।
- টেম্পোরাল ইন্টারাপ্ট: সিপিইউ বা টাইমার দ্বারা নির্ধারিত সময়ের পরে এটি স্বয়ংক্রিয়ভাবে সিগন্যাল পাঠায়, উদাহরণস্বরূপ সিস্টেমের সময়সূচী নিয়ন্ত্রণ করার জন্য।
হার্ডওয়্যার ইন্টারাপ্টের উদাহরণ:
- IRQ (Interrupt Request): IRQ পিন বা লাইন ডিভাইসের সাথে সংযুক্ত থাকে এবং ইন্টারাপ্ট সিগন্যাল পাঠায়। উদাহরণস্বরূপ, একটি মাউস বা কীবোর্ডে কী প্রেসের জন্য IRQ ব্যবহৃত হয়।
- Timer Interrupt: টাইমার ইন্টারাপ্ট এমন একটি ইন্টারাপ্ট যেখানে নির্দিষ্ট সময় পর পর সিগন্যাল পাঠানো হয়, যা সিস্টেমের সময়সূচী বা টাস্ক পরিচালনা করতে ব্যবহৃত হয়।
২. সফটওয়্যার ইন্টারাপ্ট (Software Interrupt)
সফটওয়্যার ইন্টারাপ্ট তখন ঘটে যখন একটি প্রোগ্রাম নিজে প্রসেসরের কাছে ইন্টারাপ্ট সিগন্যাল পাঠায়। এটি সাধারণত প্রোগ্রামিংয়ের মধ্যে ব্যবহৃত হয় এবং বিশেষভাবে প্রোগ্রাম কোডের মাধ্যমে ইন্টারাপ্ট চালানো হয়। সফটওয়্যার ইন্টারাপ্ট বিভিন্ন কাজে ব্যবহৃত হতে পারে যেমন সিস্টেম কল (system calls), ডিবাগিং, বা অন্যান্য কার্যক্রম সম্পাদন।
বৈশিষ্ট্য:
- অন্তর্নিহিত উৎস: সফটওয়্যার ইন্টারাপ্ট সাধারণত প্রোগ্রাম বা অপারেটিং সিস্টেম দ্বারা তৈরি করা হয় এবং এতে বাহ্যিক ডিভাইসের কোনও ভূমিকা থাকে না।
- সিস্টেম কল: সফটওয়্যার ইন্টারাপ্ট প্রোগ্রামের মাধ্যমে অপারেটিং সিস্টেমের ফাংশনগুলির সাথে যোগাযোগ স্থাপন করে, যেমন ফাইল ম্যানিপুলেশন, ডাটা স্টোরেজ, ইত্যাদি।
- ব্যবহারকারী ইনিশিয়েটেড: প্রোগ্রাম বা ব্যবহারকারী সফটওয়্যার ইন্টারাপ্ট সৃষ্টি করতে পারে, যেমন সিস্টেম রিসোর্স অ্যাক্সেস করতে বা বিশেষ কাজের জন্য।
উদাহরণ:
- সিস্টেম কল (System Call): একটি প্রোগ্রাম যখন অপারেটিং সিস্টেমের কোনো ফাংশন ব্যবহার করতে চায় (যেমন ফাইল খোলার জন্য), তখন সফটওয়্যার ইন্টারাপ্ট করা হয়। এটি সিস্টেম কলের মাধ্যমে ইন্টারাপ্টকে ট্রিগার করে।
- ডিবাগিং ইন্টারাপ্ট: ডিবাগিং সময় প্রোগ্রাম বিশেষ একটি ইন্টারাপ্ট পাঠায় যাতে এটি কার্যক্রম থামিয়ে পরীক্ষণ শুরু করতে পারে।
সফটওয়্যার ইন্টারাপ্টের উদাহরণ:
- INT (Interrupt) ইনস্ট্রাকশন: সিপিইউতে সফটওয়্যার ইন্টারাপ্ট তৈরি করতে
INTইনস্ট্রাকশন ব্যবহার করা হয়। এটি সফটওয়্যার লেভেল সিগন্যাল পাঠায় এবং প্রসেসরের মধ্যে সংযোগ তৈরি করে। - System Call: সফটওয়্যার ইন্টারাপ্ট একটি সিস্টেম কলের মাধ্যমে কার্যকর হতে পারে, যেমন
int 0x80লিনাক্স সিস্টেমে সিস্টেম কল করার জন্য ব্যবহৃত হয়।
হার্ডওয়্যার এবং সফটওয়্যার ইন্টারাপ্টের মধ্যে পার্থক্য:
| বৈশিষ্ট্য | হার্ডওয়্যার ইন্টারাপ্ট | সফটওয়্যার ইন্টারাপ্ট |
|---|---|---|
| উৎস | বাহ্যিক ডিভাইস (যেমন কীবোর্ড, মাউস, টাইমার) | প্রোগ্রাম বা অপারেটিং সিস্টেম |
| প্রক্রিয়া | হার্ডওয়্যার ডিভাইসের মাধ্যমে সিগন্যাল পাঠানো | প্রোগ্রাম কোড বা সিস্টেম কল দ্বারা সিগন্যাল পাঠানো |
| গতি | সাধারণত দ্রুত (বাহ্যিক ডিভাইস থেকে সরাসরি সিগন্যাল) | প্রোগ্রাম বা কোডের মাধ্যমে, কিছুটা ধীরগতি |
| ব্যবহার | ডিভাইস ইন্টারঅ্যাকশন, টাইমার, বাহ্যিক সিগন্যাল | সিস্টেম কল, ডিবাগিং, প্রোগ্রাম ফাংশন কল |
সারসংক্ষেপ
- হার্ডওয়্যার ইন্টারাপ্ট বাহ্যিক ডিভাইস যেমন কীবোর্ড, মাউস, বা টাইমার থেকে আসে এবং সিপিইউ-কে দ্রুত প্রতিক্রিয়া জানানোর জন্য ব্যবহৃত হয়।
- সফটওয়্যার ইন্টারাপ্ট সাধারণত প্রোগ্রাম কোড বা সিস্টেম কলের মাধ্যমে তৈরি হয়, যেখানে কম্পিউটার নিজে থেকে ইন্টারাপ্ট সৃষ্টি করে এবং সিস্টেম ফাংশন অ্যাক্সেস করে।
ইন্টারাপ্ট সিস্টেমের জন্য অত্যন্ত গুরুত্বপূর্ণ কারণ এটি প্রসেসরের কার্যক্ষমতা বৃদ্ধি করে এবং সিস্টেমের মধ্যে দ্রুত ডাটা অ্যাক্সেস এবং ইভেন্ট প্রক্রিয়াকরণ নিশ্চিত করে।