SYS2 3

Sujet du jour: scheduling

Le but du scheduling est d’ordonner des tâches.

Une tâche contient:

Sur les ordis on a plusieurs types de scheduling.

le batch scheduling: on execute une tâche/programme à la fois. Les uns à la suite des autres.

Pour vérifier l’efficacité d’un systeme de scheduling on utilise le turnaround time qui est le temps qu’un programme met pour finir toutes les tâches, le throughput (débit) qui est le nombre de tâches faisable en un certain laps de temps donné.

FCFS: First come, fist served

SJF: Shortest jobfirst

Time sharing:

Parmi ces choses là, on a aucun moyen de définir une deadline, un temps d’execution ou des dépendances \(\rightarrow\) c’est la merde.

Le but dans ce schéma est de maximiser le temps en run.
Les caractéristique de l’algo de scheduling doit donc être:

Dans un algo fifo:

Response time: le temps entre la transition new et running.

Waiting time: Temps passé en ready

Dans un algo quantum:
On va avoir des problèmes avec les syscalls. S’il reste 0.0000001 sec à un program, et qu’il vient de lancer un syscall.

Deux types de programmes:

bottleneck:
- IO Bound -> Interactif
- Memory bound
- CPU Bound -> Non interactif

Si je suis interactif -> je suis io bound -> j’execute des syscalls

Un programme interactif aura tendance a ne pas finir le quantum.