---
# System prepended metadata

title: SYS2
tags: [cours, ' gaby', ' sys2']

---

---
title: SYS2
tags: cours, sys2, gaby
author: Robin Boucher
date: 01/03/2019
---

++Scheduling++:
* ++Tâche++: (job)
    * Deadline
    * Temps d'execution
    * Dépendances
    * Psio (??) ...

---

++Batch++:
* Turnaround
* through put (débit)

Si je veux minimiser le turnaround time, je vais exécuter les taches dans l'ordre dans lequel elles arrivent --> **FCPS**: first come first serve

Si je veux maximiser mon débit, je vais exécuter les tâches les plus courtes en premières --> **SJF**: shortest jobs first (*défaut: si un job long apparait, il est possible qu'il ne passe jamais*)

---

Problèmes qu'on a dans la vraie vie:
* processes qui dépendent de l'un de l'autre
* processes qui prennent beacoup de temps
* attendre qu'un process soit fini avant de lancer un autre
* on ne peut pas déterminer le temps d'exectuion d'un process à l'avance

++Time sharing++:

> [color=#9d67ef] Mettre ici le schéma de scheduling

Combien de temps les processes tournent et quand est-ce qu'ils tournent ?
Le but du jeu, c'est de maximiser le temps d'utilisation du CPU par les utilisateurs. Faire le scheduling en temps constant.
Etre intelligent mais pas trop sinon on va casser notre indice d'utilisation en termes de perf.

**FIFO**
**Round Robin**

