মাল্টিলেভেল ফিডব্যাক কিউ (MLFQ) হলো একটি CPU শিডিউলিং অ্যালগরিদম যা একাধিক রেডি কিউ মেইনটেইন করে, প্রতিটি ভিন্ন প্রায়োরিটি লেভেল এবং টাইম কোয়ান্টাম ভ্যালু সহ। নতুন প্রসেস হাইএস্ট প্রায়োরিটি কিউতে শুরু করে, এবং তাদের বিহেভিয়রের ভিত্তিতে সেগুলো প্রোমোট বা ডিমোট হয় কিউগুলোর মাঝপথে। এই অ্যাডাপ্টিভ অ্যাপ্রোচ ইন্টারঅ্যাক্টিভ এবং CPU-ইনটেনসিভ প্রসেস দুটোর নীডস ব্যালেন্স করে।
মাল্টিলেভেল ফিডব্যাক কিউ স্ট্রাকচার
Queue 0 (Highest Priority) Time Quantum: 1
Queue 1 (Medium Priority) Time Quantum: 2
Queue 2 (Lowest Priority) FCFS
CPU New Process Demote if time expires Aging: Promote after waiting
প্রসেস মুভমেন্ট রুলস
? নতুন প্রসেস Queue 0-এ শুরু করে
? যদি টাইম কোয়ান্টাম এক্সপায়ার হয় ? নেক্সট লোয়ার কিউতে মুভ করে
? এজিং মেকানিজম স্টারভেশন প্রিভেন্ট করে
MLFQ কীভাবে কাজ করে
অ্যালগরিদম নিচের কী প্রিন্সিপলসের সাথে অপারেট করে:
- প্রায়োরিটি-বেসড শিডিউলিং: হাইওয়ার প্রায়োরিটি কিউগুলো প্রথম সার্ভ হয়
- ভেরিয়েবল টাইম কোয়ান্টাম: হাইওয়ার প্রায়োরিটি কিউগুলো ছোট টাইম স্লাইস পায়
- ডাইনামিক প্রায়োরিটি অ্যাডজাস্টমেন্ট: প্রসেস বিহেভিয়োরের ভিত্তিতে কিউগুলোতে মাঝপথে মুভ করে
- এজিং মেকানিজম: লং-ওয়েটিং প্রসেস প্রোমোট করে স্টারভেশন প্রিভেন্ট করে
উদাহরণ
তিনটি প্রসেস বিবেচনা করুন নিচের ক্যারেক্টারিস্টিক্সের সাথে:
| প্রসেস | আরাইভাল টাইম | বার্স্ট টাইম | ইনিশিয়াল কিউ |
|---|---|---|---|
| P1 | 0 | 8 | Queue 0 |
| P2 | 1 | 4 | Queue 0 |
| P3 | 2 | 2 | Queue 0 |
Queue 0-এ টাইম কোয়ান্টাম = ১, Queue 1-এ টাইম কোয়ান্টাম = ২, এবং Queue 2 FCFS ব্যবহার করে:
MLFQ এক্সিকিউশন টাইমলাইন
P1 P2 P3 P2 P1 P2 P1 (Queue 2 - FCFS)
0 1 2 3 4 6 8 14
Q0 Q0 Q0 Q1 Q1 Q1 Q2
ইউজ কেসস
MLFQ নিচের সিনেরিওগুলোর জন্য পার্টিকুলারলি ইফেক্টিভ:
- ইন্টারঅ্যাক্টিভ অ্যাপ্লিকেশন: ওয়েব ব্রাউজার, টেক্সট এডিটর, এবং GUI অ্যাপ্লিকেশন কুইক রেসপন্স টাইম পায় ইউজার ইন্টারঅ্যাকশনের জন্য
- টাইম-শেয়ারিং সিস্টেম: মাল্টি-ইউজার সিস্টেম যেখানে ইন্টারঅ্যাক্টিভ এবং ব্যাচ প্রসেস কো-একzyst করে
- রিয়েল-টাইম সিস্টেম: সিস্টেম যেগুলো ক্রিটিক্যাল এবং নন-ক্রিটিক্যাল টাস্কের জন্য ভিন্ন প্রায়োরিটি লেভেল দরকার
- গেমিং অ্যাপ্লিকেশন: গেমস রেসপন্সিভ ইনপুট হ্যান্ডলিং দরকার যখন ব্যাকগ্রাউন্ড টাস্ক যেমন অডিও এবং নেটওয়ার্কিং ম্যানেজ করে
সুবিধা
- উন্নত রেসপন্স টাইম: শর্ট প্রসেস হাই-প্রায়োরিটি কিউতে কুইক আটেনশন পায়
- ডাইনামিক প্রায়োরিটি অ্যাডজাস্টমেন্ট: প্রসেস বিহেভিয়োর প্যাটার্নের সাথে অটোমেটিক্যালি অ্যাডাপ্ট করে
- স্টারভেশন প্রিভেন্ট করে: এজিং মেকানিজম নিশ্চিত করে লং-ওয়েটিং প্রসেস akibatে CPU টাইম পায়
- ভালো থ্রুপুট: ইন্টারঅ্যাক্টিভ এবং ব্যাচ প্রসেসিং নীডস কার্যকরভাবে ব্যালেন্স করে
- ফ্লেক্সিবল কনফিগারেশন: টাইম কোয়ান্টাম এবং কিউ সংখ্যা স্পেসifik ওয়ার্কলোডের জন্য টিউন করা যায়
অসুবিধা
- ইমপ্লিমেন্টেশন কমপ্লেক্সিটি: ভিন্ন পলিসি সহ একাধিক কিউ ম্যানেজ করা সিস্টেম কমপ্লেক্সিটি বাড়ায়
- উচ্চ ওভারহেড