কম্পিউটার টিউটোরিয়াল

ভেরিয়েবল প্রসেস আরাইভাল টাইমের জন্য অপ্টিমাইজড রাউন্ড রবিন শিডিউলিং

রাউন্ড রবিন (RR) একটি প্রি-এম্পটিভ CPU শিডিউলিং অ্যালগরিদম যেখানে প্রতিটি প্রসেসের জন্য একটি ফিক্সড টাইম স্লাইস অ্যালোকেট করা হয় যাকে কোয়ান্টাম বলা হয়। স্ট্যান্ডার্ড রাউন্ড রবিনের মতো শূন্য আরাইভাল টাইমের বিপরীতে, এই ভেরিয়েন্ট ভিন্ন-भিন্ন সময়ে আরাইভ करने वाले প্রসেসগুলো হ্যান্ডেল করে, যা শিডিউলিংকে আরও জটিল করে তোলে কারণ রেডি কিউ ডাইনামিক্যালি চেঞ্জ হয়।

প্রি-এম্পটিভ শিডিউলিং-এ, একটি রানিং প্রসেস ইন্টারাপ্ট হয়ে রেডি কিউতে ফিরে যেতে পারে। রাউন্ড রবিন নিশ্চিত করে প্রতিটি প্রসেসের সমান শেয়ার CPU টাইম দিয়ে ফেয়ারনেস, স্টারভেশন প্রিভেন্ট করে ইন্টারঅ্যাক্টিভ সিস্টেমের জন্য ভালো রেসপন্স টাইম মেইনটেইন করে।

ভিন্ন আরাইভাল টাইমের সাথে রাউন্ড রবিন কীভাবে কাজ করে

যখন প্রসেসগুলোর ভিন্ন আরাইভাল টাইম থাকে, অ্যালগরিদম এই স্টেপগুলো ফলো করে:

  • প্রসেসগুলো তাদের আরাইভাল টাইমের ভিত্তিতে রেডি কিউতে প্রবেশ করে
  • CPU প্রথম উপলব্ধ প্রসেসকে কোয়ান্টাম ডিউরেশনের জন্য সার্ভ করে
  • যদি প্রসেস কোয়ান্টামের মধ্যে কমপ্লিট হয়, এটি টার্মিনেট হয়
  • যদি না হয়, এটি রেডি কিউর শেষে মুভ করে
  • নতুন আরাইভাল রেডি কিউতে যোগ হয় এবং তাদের টার্ন এর জন্য অপেক্ষা করে
  • কনটেক্সট সুইচিং প্রি-এম্পটেড প্রসেসের স্টেট সেভ করে

কি ফিচারগুলো

  • স্টারভেশন প্রিভেন্ট করে—প্রতিটি প্রসেস যেকোনো সময় CPU টাইম পায়
  • ফেয়ার শিডিউলিং—সব প্রসেসের জন্য সমান টাইম কোয়ান্টাম
  • ভালো রেসপন্স টাইম—ইন্টারঅ্যাক্টিভ এবং রিয়েল-টাইম সিস্টেমের জন্য উপযুক্ত
  • কনটেক্সট সুইচিং ওভারহেড—ছোট কোয়ান্টাম সুইচিং কস্ট বাড়ায়

উদাহরণ ১: কোয়ান্টাম টাইম = ২

তিনটি প্রসেস বিবেচনা করুন ভিন্ন আরাইভাল এবং বার্স্ট টাইমের সাথে:

প্রসেসআরাইভাল টাইমবার্স্ট টাইম
P104
P213
P327

গ্যান্ট চার্ট — রাউন্ড রবিন (কোয়ান্টাম = ২)
P1 P2 P3 P1 P2 P3
0 2 4 6 8 9 14

স্টেপ-বাই-স্টেপ এক্সিকিউশন

টাইমপ্রসেসরেডি কিউঅ্যাকশন
0-2P1P1P1 ২ ইউনিট রান করে, P2 t=1-এ আরাইভ
2-4P2P2, P1P2 ২ ইউনিট রান করে, P3 t=2-এ আরাইভ
4-6P3P3, P1P3 ২ ইউনিট রান করে
6-8P1P1, P2, P3P1 বাকি ২ ইউনিট কমপ্লিট করে
8-9P2P2, P3P2 বাকি ১ ইউনিট কমপ্লিট করে
9-14P3P3P3 বাকি ৫ ইউনিট কমপ্লিট করে

গড় টাইম ক্যালকুলেশন

প্রসেসআরাইভালবার্স্টকমপ্লিশনটার্নঅরাউন্ডওয়েইটিং
P104884
P213985
P32714125

গড় টার্নঅরাউন্ড টাইম = (8 + 8 + 12) / 3 = 9.33 ইউনিট

গড় ওয়েইটিং টাইম = (4 + 5 + 5) / 3 = 4.67 ইউনিট

উদাহরণ ২: কোয়ান্টাম টাইম = ৪

বড় কোয়ান্টাম সাইজের সাথে:

প্রসেসআরাইভাল টাইমবার্স্ট টাইম
P128
P207
P319

গ্যান্ট চার্ট — রাউন্ড রবিন (কোয়ান্টাম = ৪)
P2 P3 P1 P2 P3 P1
0 4 8 12 15 20 24

প্রসেসআরাইভালবার্স্টকমপ্লিশনটার্নঅরাউন্ডওয়েইটিং
P128242214
P20715158
P319201910

গড় টার্নঅরাউন্ড টাইম = (22 + 15 + 19) / 3 = 18.67 ইউনিট

গড় ওয়েইটিং টাইম = (14 + 8 + 10) / 3 = 10.67 ইউনিট

উপসংহার

ভিন্ন আরাইভাল টাইমের সাথে রাউন্ড রবিন শিডিউলিং ফেয়ার CPU অ্যালোকেশন প্রদান করে ডাইনামিক প্রসেস আরাইভাল হ্যান্ডল করার সময়। কোয়ান্টাম সাইজ উল্লেখযোগ্যভাবে পারফরম্যান্সকে এফেক্ট করে—ছোট কোয়ান্টাম রেসপন্স টাইম উন্নত করে কিন্তু কনটেক্সট সুইচিং ওভারহেড বাড়ায়, যেখানে বড় কোয়ান্টাম ফেয়ারনেস কমাতে পারে কিন্তু থ্রুপুট উন্নত করে।

  1. CSS list-style-position প্রোপার্টি দিয়ে লিস্ট মার্কারের পজিশন পরিবর্তন করা

  2. পাইথনে n x m আকারের রেক্ট্যাঙ্গেলে 2x1 আকারের সর্বোচ্চ কতটি রেক্ট্যাঙ্গেল ফিট হবে তা বের করুন

  3. Redis দক্ষতা: উন্নত মেসেজিং দিয়ে মাইক্রোসার্ভিসেস ইনফ্রাস্ট্রাকচার বাড়ানো

  4. HTML DOM Input DatetimeLocal readOnly প্রোপার্টি