initial commit

This commit is contained in:
Guillaume-Sanchez
2026-05-26 13:56:03 +02:00
parent 4c720637a1
commit ff4bb12d22
539 changed files with 12415 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

+79
View File
@@ -0,0 +1,79 @@
# UTC 502 17 12 24
## Oronnancement sur l'unité centrale
### A. Prolitique Premier Arrivé, Premier servi (First In, First Out)
- Les processus sont élus selon lordre dans lequel ils
arrivent dans la file dattente des processus prêts.
- Il ny a pas de réquisition.
- Lavantage de cette politique est sa simplicité.
- Inconvénient : les processus de petit temps dexécution
sont pénalisés en terme de temps de réponse par les
processus de grand temps dexécution qui se trouvent
avant eux dans la file dattente.
### B. Politique Plus Court dAbord
- Le processus de plus petit temps dexécution est celui qui est ordonnancé en premier.
- La politique est sans réquisition.
- Remédie à linconvénient cité pour la politique précédente du « Premier Arrivé, Premier Servi ».
- Politique est optimale dans le sens où elle permet dobtenir le temps de réponse moyen minimal pour un
ensemble de processus donné.
- La difficulté : la connaissance a priori des temps dexécution des processus. Cette connaissance nest pas
disponible dans un système interactif.
- Politique est essentiellement mise en œuvre dans les systèmes de traitement par lots.
### C. Politique par priorité
- La politique très courante.
- Chaque processus possède une priorité, un nombre positif . Selon le système dexploitation, une valeur basse est plus prioritaire quune valeur haute ou inversement.
- Cette politique se décline en deux versions selon si la réquisition est autorisée ou non. La figure 16 donne un exemple dapplication de cette politique en mode préemptif et en mode non préemptif.
- Un inconvénient de cette politique est le risque de famine pour les processus de petite priorité si il y a de nombreux processus de haute priorité. On dit aussi quil y a coalition des processus de forte priorité contre les processus de faible priorité
![figure_16.png](./16.png)
### D. Politique du tourniquet (round robin)
- Politique mise en œuvre dans les systèmes dits en temps partagé.
- Le temps est découpé en tranches nommées quantums de temps.
- Un processus est élu, il sexécute au plus durant un quantum de temps.
- Si le processus na pas terminé son exécution à lissue du quantum de temps, il est préempté et il réintègre la file des processus prêts mais en fin de file.
- Le processus en tête de file de la file des processus prêts est alors à son tour élu pour une durée égale à un quantum de temps.
- La valeur du quantum constitue un facteur important de performance de la politique, elle influe directement sur le nombre de commutations de contexte.
![figure_17.png](./17.png)
### Exemples :
#### Ordonnancement sous Unix
- Lordonnanceur Unix est un ordonnanceur de type tourniquet, avec plusieurs niveaux de priorités.
- À un instant t, le processus élu est celui de plus forte priorité.
- Le système effectue un recalcul des priorités mettant en œuvre un principe dextinction de priorité afin de garantir une équité daccès au processeur.
Exemple :
- Supposons que toutes les secondes, le système recalcule les priorités des processus élus et prêts selon le principe suivant :
**Extinction** : compte_UC = compte_UC / 2 où compte_UC est le temps CPU consommé par le processus.
**Priorité** = compte_UC/2 + 40 où 40 est une priorité de base de niveau utilisateur.
Soient trois processus P1, P2 et P3, P1 de priorité 40 et P2, P3 de priorité 45. P1 sexécute.
Au bout d1 seconde :
- Priorité P1 : compte_UC = 60/2 = 30 et priorité = 15 + 40 = 55
- Priorité P2, inchangée : 45
- Priorité P3, inchangée : 45
- P2 est élu
Au bout de 2 secondes :
- Priorité P1 : compte_UC = 30/2 = 15 et priorité = 7 + 40 = 47
- Priorité P2 : compte_UC = 60/2 = 30 et priorité = 15 + 40 = 55
- Priorité P3, inchangée : 45
- P3 est élu
Au bout de 3 secondes :
- Priorité P1 : compte_UC = 15/2 = 7 et priorité = 3 + 40 = 43
- Priorité P2 : compte_UC = 30/2 = 15 et priorité = 17 + 40 = 47
- Priorité P3 : compte_UC = 60/2 = 30 et priorité = 15 + 40 = 55
- P1 est de nouveau élu
@@ -0,0 +1,133 @@
# TD Processus et ordonnancement
## A Processus Linux
`essai.c :`
```
#include <stdio.h>
#include <unistd.h>
int main(){
int pid;
pid = fork();
if (pid == 0){for(;;)
printf ("je suis le fils\n");
}
else{for(;;)
printf("je suis le père\n");
}
}
```
### 1) On compile ce programme pour générer un exécutable appelé essai dont on lance lexécution. La commande ps l permettant dafficher les caractéristiques de lensemble des processus de lutilisateur donne les éléments suivants :
`./essai`
```
...
je suis le père
je suis le fils
je suis le père
je suis le fils
je suis le père
je suis le fils
je suis le père
je suis le fils
je suis le père
...
```
`ps -efl :`
```
user@debian-cli:~$ ps -efl | grep essai
0 S user 4150 1942 12 80 0 - 615 file_t 09:25 pts/0 00:00:00 ./essai
1 S user 4151 4150 12 80 0 - 615 wait_w 09:25 pts/0 00:00:00 ./essai
0 S user 4153 4031 0 80 0 - 1583 pipe_r 09:25 pts/5 00:00:00 grep essai
```
`user@debian-cli:~$ kill -9 4151`
`user@debian-cli:~$ ps -efl | grep essai`
```
...
je suis le père
je suis le père
je suis le père
je suis le père
je suis le père
je suis le père
je suis le père
je suis le père
je suis le père
...
```
`user@debian-cli:~$ ps -efl | grep essai`
```
0 S user 4150 1942 7 80 0 - 615 wait_w 09:25 pts/0 00:00:36 ./essai
1 Z user 4151 4150 5 80 0 - 0 - 09:25 pts/0 00:00:27 [essai] <defunct>
0 S user 4249 4031 0 80 0 - 1583 pipe_r 09:34 pts/5 00:00:00 grep essai
```
### 3) Le programme essai.c est modifié :
```
#include <stdio.h>
#include <unistd.h>
int main(){
int pid;
pid = fork();
if (pid == 0){for(;;)
printf ("je suis le fils\n");
}
else{
printf("je suis le père\n");
int wait();
}
}
```
`./essai2`
```
...
je suis le fils
je suis le fils
je suis le fils
je suis le fils
je suis le fils
je suis le fils
je suis le fils
...
```
`ps -lef | grep essai`
```
user@debian-cli:~/Documents/TD/TD_Processus_et_ordonnancement$ ps -lef | grep essai
1 S user 4841 1519 17 80 0 - 615 wait_w 09:47 pts/5 00:00:05 ./essai2
0 S user 4852 1942 0 80 0 - 1583 pipe_r 09:47 pts/0 00:00:00 grep essai
```
`kill -9 4841`
`ps -lef | grep essai`
```
user@debian-cli:~/Documents/TD/TD_Processus_et_ordonnancement$ ps -lef | grep essai
0 S user 4906 1942 0 80 0 - 1583 pipe_r 09:52 pts/0 00:00:00 grep essai
```
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 MiB