I/O & Device Management
I/O (Input/Output) ম্যানেজমেন্ট হলো অপারেটিং সিস্টেমের সেই অংশ যা বিভিন্ন ডিভাইস (কীবোর্ড, মাউস, ডিস্ক, প্রিন্টার) এর সাথে কমিউনিকেশন পরিচালনা করে।
1. I/O System Overview
I/O সিস্টেমের প্রধান লক্ষ্য:
- Device Independence: অ্যাপ্লিকেশন যেন ডিভাইসের ডিটেইলস না জেনেই কাজ করতে পারে।
- Uniform Naming: সব ডিভাইসের জন্য একই ধরনের নেমিং (যেমন
/dev/sda1)। - Error Handling: ডিভাইস এরর হ্যান্ডেল করা।
- Buffering: ডেটা টেম্পোরারি স্টোর করা।
2. Interrupts
Interrupt হলো একটি সিগন্যাল যা CPU-কে জানায় যে কোনো ইভেন্ট ঘটেছে এবং তাৎক্ষণিক মনোযোগ প্রয়োজন।
Real-life Example: আপনি পড়াশোনা করছেন এবং হঠাৎ ফোন বেজে উঠলো। আপনি পড়া থামিয়ে ফোন রিসিভ করলেন, কথা শেষ করে আবার পড়া শুরু করলেন। এখানে ফোনের রিং = Interrupt।
Types:
- Hardware Interrupt: ডিভাইস থেকে আসে (যেমন কীবোর্ড প্রেস, মাউস ক্লিক)।
- Software Interrupt: প্রোগ্রাম থেকে আসে (System Call)।
Process:
- CPU বর্তমান কাজ থামায়।
- বর্তমান স্টেট সেভ করে।
- Interrupt Handler রান করে।
- আগের কাজে ফিরে যায়।
3. Device Drivers
Device Driver হলো একটি সফটওয়্যার যা OS এবং হার্ডওয়্যার ডিভাইসের মধ্যে ইন্টারফেস হিসেবে কাজ করে।
কাজ:
- ডিভাইসের সাথে কমিউনিকেশন।
- ডিভাইস-স্পেসিফিক কমান্ড পাঠানো।
- ডেটা ট্রান্সফার ম্যানেজ করা।
Example: গ্রাফিক্স কার্ডের জন্য NVIDIA/AMD ড্রাইভার ইনস্টল করা।
4. DMA (Direct Memory Access)
সাধারণত CPU ডিভাইস থেকে ডেটা নিয়ে মেমোরিতে রাখে। কিন্তু এতে CPU ব্যস্ত থাকে। DMA ব্যবহার করে ডিভাইস সরাসরি মেমোরিতে ডেটা লিখতে পারে, CPU-র হস্তক্ষেপ ছাড়াই।
সুবিধা:
- CPU অন্য কাজ করতে পারে।
- দ্রুত ডেটা ট্রান্সফার।
Process:
- CPU DMA কন্ট্রোলারকে বলে কোথায় ডেটা পাঠাতে হবে।
- DMA কন্ট্রোলার ডেটা ট্রান্সফার করে।
- শেষ হলে CPU-কে ইন্টারাপ্ট পাঠায়।
5. Buffering & Caching in I/O
Buffering
Buffer হলো মেমোরির একটি অংশ যেখানে ডেটা টেম্পোরারি স্টোর করা হয় যখন দুইটি ডিভাইসের মধ্যে স্পিড মিসম্যাচ থাকে।
Example: কীবোর্ড থেকে ইনপুট নেওয়া। আপনি দ্রুত টাইপ করছেন কিন্তু প্রোগ্রাম ধীরে প্রসেস করছে। বাফার ডেটা ধরে রাখে যতক্ষণ না প্রোগ্রাম রেডি হয়।
Caching
Cache হলো ফ্রিকুয়েন্টলি এক্সেস করা ডেটা দ্রুত রিট্রিভ করার জন্য স্টোর করা।
Difference:
- Buffer: স্পিড মিসম্যাচ সমাধান করে।
- Cache: পারফরম্যান্স বাড়ায়।