Scheduler nga adunay masukod nga han-ay

15-minutong sesyon: pagbasa sulod sa 3 minutos, pag-trace sa 3, pag-eksperimento sa 7, ug pagtubag sa check sa 2. Paggahin og dugang oras kon gikinahanglan.

Ang scheduler mopili sa runnable task nga hatagan og turno. Imodelo ang round-robin gamit ang queue. Matag task mokonsumo og usa ka unit ug mobalik kon adunay nahibilin. Walay interrupt, context switch, o tinuod nga parallel execution niini nga modelo.

Praktis ug ebidensiya: Sunda ang A=2 ug B=1, idugang ang empty task, ug itakda kon mosulod ba kini sa runnable queue. Sulayi ang fairness pinaagi sa execution order.

from collections import deque
ready=deque([("A",2),("B",1)])
order=[]
while ready:
    name,left=ready.popleft()
    order.append(name)
    if left>1: ready.append((name,left-1))
print(" ".join(order))

Gipaabot nga resulta: A B A

Praktis ug ebidensiya

Isulat ang tagna, aktuwal nga resulta, ug hinungdan sa pagkapareho o kalainan. Ang completion check mosukod sa pagsabot; ang practice task mopauswag sa kahanas.

Reperensiya sa pinulongan: git.agilaos.com

Reperensiya sa pinulongan: git.agilaos.com