Class 36: Context Switching, PCB, Concurrency
context switching কী ?
Context Switching মানে হল, CPU একটা প্রসেস রেখে আরেকটা প্রসেস চালানো শুরু করে।
ঠিক যেমন ক্লাসে তুমি ম্যাথ করছিলে, হঠাৎ টিচার বলল “এবার ইংরেজি করো” তখন তুমি ম্যাথের খাতা বন্ধ করে ইংরেজির খাতা খুললে।
এই খাতা বদলানোই হলো Context Switch! 🧑🏫
🧱 কিভাবে কাজ করে?
- CPU এখন একটা প্রসেস (ধরো গেম) চালাচ্ছে।
- হঠাৎ OS বলে “এই তো, ভিডিও কল আসছে! আগে এটাকে চালাও।”
- তখন CPU গেমের অবস্থা (registers, state) একটা PCB-তে রেখে দেয়।
- এরপর নতুন প্রসেস (ভিডিও কল) এর অবস্থা PCB থেকে নিয়ে চালানো শুরু করে।
এভাবেই CPU বারবার প্রসেস বদলায়।
🎯 কেন দরকার?
- অনেক কাজ একসাথে করার জন্য
- যেই কাজটা এখন বেশি দরকার, সেটাকে চালানোর জন্য
- RAM বা CPU কে সঠিকভাবে ব্যবহার করার জন্য
🔍 Process Control Block (PCB)
কম্পিউটার যখন একসাথে অনেকগুলো প্রোগ্রাম চালায় (যেমন: গেম, মিউজিক, ব্রাউজার), তখন প্রতিটা প্রোগ্রাম একেকটা আলাদা Process (প্রসেস) হয়ে চলে।
এই প্রসেসগুলোকে চিনে রাখা, মনিটর করা আর নিয়ন্ত্রণ করার জন্য অপারেটিং সিস্টেম (OS) ব্যবহার করে একটা বিশেষ জিনিস যেটার নাম Process Control Block (PCB)।
🧠 PCB কী ❓
PCB হলো একটি ছোট্ট তথ্যের বাক্স (Data Structure) যেখানে একটি প্রসেস সম্পর্কিত সব দরকারি তথ্য জমা থাকে।
একে তুমি ভাবতে পারো, প্রতিটা প্রসেসের আইডি কার্ড বা রিপোর্ট কার্ড হিসেবে।
কেন PCB দরকার ❓
যখন অনেকগুলো প্রসেস একসাথে চলছে, তখন অপারেটিং সিস্টেমকে প্রতিটা প্রসেস সম্পর্কে জানতে হয়
- কে কোন জায়গা পর্যন্ত কাজ করেছে?
- কে এখন রানিং মোডে?
- কার কী রিসোর্স লাগছে?
- কতটুকু মেমোরি বা CPU লাগবে?
এই সব প্রশ্নের উত্তর থাকে PCB-তে।
আর যখন প্রসেস পরিবর্তন করতে হয় (একটা থেকে আরেকটাতে যেতে হয়), তখন PCB ছাড়া OS কিছুই করতে পারত না!
PCB-তে কী কী থাকে ❓
🧩 অংশ | 🎯 কাজ |
---|---|
Process ID (PID) | প্রতিটা প্রসেসের ইউনিক নাম বা নম্বর |
Process State | এখন প্রসেসটা কী অবস্থায় আছে (Ready, Running, Waiting) |
Program Counter | পরবর্তী কোন ইনস্ট্রাকশন চলবে সেটা দেখায় |
CPU Registers | CPU-তে চলা হিসাবের শেষ অবস্থান |
Memory Management Info | প্রসেস কোথায় কোথায় RAM ব্যবহার করছে |
I/O Info | ইনপুট-আউটপুট ডিভাইসের সাথে সম্পর্কিত তথ্য |
Accounting Info | প্রসেস কত সময় চালানো হলো, কে চালালো ইত্যাদি |
🌀 উদাহরণ দিয়ে বোঝা যাক:
ধরো তুমি একটি গেম খেলছো, আর তোমার ভাই ইউটিউবে ভিডিও দেখছে।
➡️ গেমটা এক ধরনের প্রসেস, ইউটিউব আরেকটা।
➡️ অপারেটিং সিস্টেম এই দুই প্রসেসকে আলাদা করে রাখতে PCB ব্যবহার করে।
➡️ প্রতিটা গেম/ভিডিও প্রসেসের জন্য আলাদা PCB থাকে যখন তুমি গেম থেকে বের হয়ে ইউটিউবে গেলে, তখন OS:
- গেমের সব তথ্য PCB-তে রেখে দেয়
- ইউটিউবের তথ্য PCB থেকে নিয়ে কাজ শুরু করে
এটাকে বলে Context Switch।
🎯 PCB কী কী করে ❓
✅ প্রসেসকে আলাদা করে চিনে রাখে
✅ প্রসেস চলাকালীন অবস্থা রেকর্ড রাখে
✅ প্রসেসের মেমোরি, CPU এবং I/O ব্যবস্থাপনা করে
✅ প্রসেস পরিবর্তনের সময় আগের কাজ মনে রাখে
✅ প্রসেস চলার হিসাব রাখে (অ্যাকাউন্টিং)
📌 মনে রাখার মতো বিষয়:
- PCB = প্রসেসের আইডি কার্ড + রিপোর্ট কার্ড + ফাইল
- এটা অপারেটিং সিস্টেমের জন্য সবচেয়ে দরকারি টুল
- প্রতিটা প্রসেসের জন্য একটা আলাদা PCB থাকে
- PCB ছাড়া প্রসেস ম্যানেজমেন্ট সম্ভব নয়
📋 Example :
-------------------------------------
| Process ID : 101 |
| State : Running |
| Program Counter : 0x0034 |
| Registers : AX=5, BX=2 |
| Memory : 200MB |
| I/O Devices : Keyboard |
| User Time : 0.05 sec |
------------------------------------
⬆️
Process Control Block
শেষ কথা:
- কম্পিউটার যেভাবে অনেক কাজ একসাথে করে,
- ঠিক তেমনি PCB-এর মাধ্যমে প্রতিটা কাজ (প্রসেস) আলাদা করে হ্যান্ডেল করে।
- এটা অপারেটিং সিস্টেমের অদৃশ্য সেনাপতি!
⏱️ Concurrency একসাথে অনেক কাজ!
👶 সহজভাবে বললে:
Concurrency মানে হলো, CPU যেন একসাথে অনেকগুলো কাজ করছে এমন একটা ধোঁকা দেয়।
ধরো তোমার মা একসাথে ভাত রান্না করছে, ডাল দিচ্ছে, আবার ফোনেও কথা বলছে মানে কাজগুলো একসাথে চলছে।
একসাথে সব কাজ না করলেও, অল্প অল্প করে সবকিছু সামলাচ্ছে। এটাকেই বলে Concurrency।
👨💻 কম্পিউটারে কিভাবে হয়?
- CPU একসাথে অনেক Process চালায় না, কিন্তু একটা একটু চালায়, তারপর আরেকটা, তারপর আবার প্রথমটা এভাবে।
- এতে মনে হয়, সবকিছু একসাথে চলছে।
📌 মনে রাখো:
বিষয় | ব্যাখ্যা |
---|---|
Context Switching | CPU এক প্রসেস থেকে আরেকটায় যায় |
PCB | প্রতিটি প্রসেসের গুরুত্বপূর্ণ তথ্য যেখানে রাখা হয় |
Concurrency | CPU একসাথে অনেক প্রসেস চালাচ্ছে এমন একটা অভিজ্ঞতা দেয় |
[Author : @shahriar-em0n Date: 2025-06-05 Category: interview-qa/class-wise ]