Skip to content
Snippets Groups Projects
Commit 9c9c0a2a authored by iliya's avatar iliya
Browse files

fin du cours

parent efd5262d
No related branches found
No related tags found
No related merge requests found
...@@ -61,6 +61,3 @@ vers **les mêmes frames.** ...@@ -61,6 +61,3 @@ vers **les mêmes frames.**
- Seule la page contenant les valeurs du `PID` et `PPID` est différente entre les - Seule la page contenant les valeurs du `PID` et `PPID` est différente entre les
2 processus. 2 processus.
- Au moment
\newpage
# Ordonnancement
## Multi-tâches: pourquoi?
- Sur un OS moderne, des centaines de processus s'exécutent "en même temps"
Pourquoi?
- Pour maximiser l'utilisation du système
- Pour que le système soit plus facilement utilisable
- L'utilisateur n'a pas besoin de se soucier si un CPU est disponible ou pas
## Multi-tâches: comment?
- Comment gérer un nombre de processus largement supérieur au nombre de CPUs?
- Comment donner l'illusion d'un nombre illimité de CPUs?
**L'OS crée cette illusion en virtualisant le(s) CPU(s)
## Temps partagé (_time sharing_)
**Le changement de contexte**
[!Changement de contexte](../figs/context_switch.png)
## Ordonnanceur (_Scheduler_)
L'ordonnanceur exécute continuellement les étapes suivantes:
1. **Mise en attente** du processus actif (fin du _quantum_ de temps)
2. **Sauvegarde** de son contexte d'exécution
3. **Recherche** du processus éligible ayant la plus haute priorité
4. **Restauration** du processus élu
5. **Exécution** du processus élu
- Le processus est exécuté sur un CPU jusqu'à la fin de son _quantum_ de
temps
6. Retour en 1
**Tout se passe comme si le processus préalablement interrompu n'avait pas
cessé de s'exécuter**
\newpage
# Exécution de programmes
## `execve` $\Rightarrow$ appel système
```C
execve (const char *pathname, char *const argv[], char *const envp[]);
```
figs/context_switch.png

133 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment