એ kernel નો નિર્ણય છે કે તૈયાર thread CPU મેળવે, અને માટે. કારણ કે સામાન્ય રીતે cores કરતાં વધુ runnable threads હોય છે, તેમને multiplex કરે છે, પ્રતિસ્પર્ધી લક્ષ્યો — , , અને — ને સંતુલિત કરવાનું ધ્યેય રાખીને, અને સાથે ટાળીને.
એ kernel નો નિર્ણય છે કે તૈયાર thread CPU મેળવે, અને માટે. કારણ કે સામાન્ય રીતે cores કરતાં વધુ runnable threads હોય છે, તેમને 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 મુખ્ય knob — 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): નિશ્ચિત slices ને બદલે તે દરેક task ના virtual runtime (vruntime) ને ટ્રૅક કરે છે અને હંમેશા એ thread ને ચલાવે છે જેને અત્યાર સુધી સૌથી ઓછું CPU મળ્યું છે, તેની nice value પ્રમાણે weighted — "દરેકને ન્યાયી હિસ્સો મળે" તેની નજીક. તે vruntime પ્રમાણે red-black tree ને key કરે છે, તેથી પછીનું task પસંદ કરવું O(log n) છે. (નવા kernels EEVDF વાપરે છે, જે એ જ fairness ધ્યેય સાથે વત્તા વધુ કડક latency bounds ધરાવતું refinement છે.)
Preemptive vs cooperative: આધુનિક OSes preemptive છે — એક timer interrupt scheduler ને CPU બળપૂર્વક પાછું લેવા દે છે, તેથી એક thread core પર એકાધિકાર જમાવી શકતો નથી.
Scheduling વપરાશકર્તાઓ અનુભવે છે તે latency અને throughput ને સીધું આકાર આપે છે. Interviewers તેને દબાવે છે એ જોવા કે તમે trade-offs સમજો છો કે નહીં — interactive workload ને શા માટે ટૂંકા quanta કે priority boost જોઈએ, priority scheduling ને starvation અટકાવવા શા માટે aging જોઈએ, અને MLFQ/CFS અગાઉથી job lengths જાણ્યા વગર સારો interactive વર્તન કેવી રીતે મેળવે છે. nice, real-time priorities ને ટ્યુન કરવા, અને ભૂખ્યા કે laggy service ને નિદાન કરવા પાછળનું માનસિક મૉડેલ પણ આ છે.
વિગતવાર જવાબો સાથે IT ઇન્ટરવ્યૂ પ્રશ્નોની લાઇબ્રેરી — જુનિયરથી સિનિયર સુધી.
દાન કરો