হলো kernel-এর এই সিদ্ধান্ত যে ready thread CPU পাবে, এবং জন্য। যেহেতু সাধারণত core-এর চেয়ে বেশি runnable thread থাকে, তাদের multiplex করে, প্রতিদ্বন্দ্বী লক্ষ্যগুলোর ভারসাম্য রাখার চেষ্টা করে — , , আর — একই সাথে এড়িয়ে।
হলো kernel-এর এই সিদ্ধান্ত যে ready thread CPU পাবে, এবং জন্য। যেহেতু সাধারণত core-এর চেয়ে বেশি runnable thread থাকে, তাদের multiplex করে, প্রতিদ্বন্দ্বী লক্ষ্যগুলোর ভারসাম্য রাখার চেষ্টা করে — , , আর — একই সাথে এড়িয়ে।
FCFS (first-come, first-served) → simple, but one long job blocks everyone (convoy effect)
SJF (shortest job first) → optimal avg wait, but needs to know job length; can starve long jobs
Round-robin (RR) → each job a fixed TIME SLICE (quantum), cycle through → fair, good latency
Priority → highest priority first → can STARVE low priority (fix: aging)
MLFQ (multi-level feedback) → several priority queues; jobs that use a full quantum sink,
interactive jobs that yield stay high → approximates SJF without knowing lengths
Round-robin মূল নবটি তুলে ধরে — quantum:
quantum too SMALL → fair & responsive, but lots of context-switch overhead
quantum too LARGE → less overhead, but degrades toward FCFS (poor responsiveness)
Linux-এর দীর্ঘদিনের default ছিল CFS (Completely Fair Scheduler): স্থির slice-এর বদলে এটি প্রতিটি task-এর virtual runtime (vruntime) ট্র্যাক করে এবং সবসময় সেই thread চালায় যা এ পর্যন্ত সবচেয়ে কম CPU পেয়েছে, তার nice value দিয়ে weighted — "সবাই একটি ন্যায্য ভাগ পায়" ধারণার কাছাকাছি। এটি vruntime দিয়ে একটি red-black tree key করে, তাই পরবর্তী task বেছে নেওয়া O(log n)। (নতুন kernel-গুলো EEVDF ব্যবহার করে, একই fairness লক্ষ্য সহ একটি পরিমার্জন যাতে আরও আঁটোসাঁটো latency bound আছে।)
Preemptive বনাম cooperative: আধুনিক OS-গুলো preemptive — একটি timer interrupt scheduler-কে জোর করে CPU ফিরিয়ে নিতে দেয়, তাই একটি thread একটি core একচেটিয়া দখল করতে পারে না।
Scheduling সরাসরি সেই latency আর throughput গড়ে তোলে যা user অনুভব করে। Interviewer-রা এটি খুঁটিয়ে দেখেন আপনি ট্রেড-অফ বোঝেন কিনা তা যাচাই করতে — কেন একটি interactive workload ছোট quantum বা একটি priority boost চায়, কেন priority scheduling-এর starvation ঠেকাতে aging দরকার, এবং কীভাবে MLFQ/CFS আগে থেকে job-এর দৈর্ঘ্য না জেনেও ভালো interactive আচরণ পায়। এটি nice টিউন করা, real-time priority, আর একটি starved বা laggy service নির্ণয় করার পেছনের মানসিক মডেলও।
বিস্তারিত উত্তরসহ IT ইন্টারভিউ প্রশ্নের একটি লাইব্রেরি — জুনিয়র থেকে সিনিয়র পর্যন্ত।
দান করুন