SYS2 3
Sujet du jour: scheduling
Le but du scheduling est d’ordonner des tâches.
Une tâche contient:
- Deadline
- Temps d’execution
- Dépendances
- (priorité mais bon…)
Sur les ordis on a plusieurs types de scheduling.
- Batch
- FCFS (first come first served)
- SJF (shortest job first)
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:
- rapide (O_1)
- Fair (pas autant de ressources pour chacun mais plutôt suffisament pour que tout le monde puisse tourner convenablement)
- Starvation
Dans un algo fifo:
- On est enn O_1
- Fair
- Mais on change de process uniquement quand un process passe en waiting
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.
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:
Interactif: Qui exécute des syscalls
Non interactif:
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.