Simulator simplu în Python (fără dependențe externe) pentru algoritmii FCFS, SJF, RR, PRIO și EDF. Citește același CSV ca varianta C și afișează tabel, metrici și Gantt textual.
Nu e nevoie de build. Rulează direct:
python3 schedsim.py -alg {FCFS|SJF|RR|PRIO|EDF} -in fisier.csv [-q quantum]
Exemple:
- FCFS:
python3 schedsim.py -alg FCFS -in test_fcfs.csv - SJF:
python3 schedsim.py -alg SJF -in test_sjf.csv - RR:
python3 schedsim.py -alg RR -q 2 -in test_rr.csv - PRIO:
python3 schedsim.py -alg PRIO -in test_prio.csv - EDF:
python3 schedsim.py -alg EDF -in test_edf.csv
- FCFS: non-preemptiv, ordinea sosirii (tie: pid).
- SJF: non-preemptiv, burst minim la dispatch (tie: arrival, pid).
- RR: preemptiv cu quantum fix; procesele se rotesc în coadă.
- PRIO: preemptiv, prioritate numerică mai mică e mai importantă; preemptă dacă apare unul mai bun (tie: arrival, pid).
- EDF: preemptiv, deadline absolut minim; marchează miss dacă
time == deadlineși procesul nu a terminat.
- Non-RT:
pid,arrival,burst,priority - EDF:
pid,arrival,burst,deadlineTermeni:arrival= tick de sosire;burst= cât CPU necesită;prioritymai mic = mai important;deadlineabsolut;pid= ID proces.
- Tabel procese: timpi de start, completare, response, turnaround, waiting (+ deadline/miss pentru EDF).
- Summary: CPU utilization, throughput (procese/ tick), medii waiting/turnaround/response, context switches, deadline misses.
- Gantt textual:
[start-end:Ppid]sauIDLE.
- Cod:
schedsim.py - Input-uri demo:
test_fcfs.csv,test_sjf.csv,test_rr.csv,test_prio.csv,test_edf.csv