Vous êtes sur la page 1sur 4

2009 - 2010

Systèmes d’exploitation 2
TD n 1 : Rappel sur l’ordonnancement des processus et introduction à la
synchronisation

Mme Lilia SFAXI


Systèmes d’exploitation 2

Systèmes d’exploitation 2
TD n 1 : Rappel sur l’ordonnancement des processus et introduction à la
synchronisation

Ordonnancement des processus

Le Tableau 1 décrit les données d'ordonnancement des processus.

1- Dessiner un schéma (Diagramme de GANTT) illustrant l'exécution de ces


processus à l'aide de:
a. L'algorithme FCFS
b. L'algorithme SJF : Shortest Job First : Non préemptif
c. L'algorithme SRT : Shortest Remaining Time : Préemptif
d. L'algorithme à Tourniquet (quantum=2)
e. L'algorithme à Tourniquet (quantum=1)

Tableau 1 : Données de l'ordonnancement des processus

Processus Date d’arrivée Temps de traitement

A 0,000 3

B 1,001 6

C 4,001 4

D 6,001 2

Exemple de Diagramme de GANTT :

1
TD1 : Rappel sur l’ordonnancement des processus

2- Donner le temps de rotation moyen de ces processus pour les cinq algorithmes
ci-dessous.

Temps de rotation = date de fin – date d’arrivée

3- Temps rotation moyen = ∑ temps rotation / nbr processus

Synchronisation des processus


Applications :
- Proposer un programme en C utilisant la primitive fork, qui affiche « Je suis le
processus père » s’il s’agit du père, et « je suis le processus fils » s’il s’agit du
fils.

#include <stdio.h>
const char* quisuisje = "Le pere";
int ga = 0;
main(){
int pid;
int la = 10;
int i;
quisuisje = "Le pere";
pid = fork();
if (pid ==0){
quisuisje = "Le fils";
for (i=0;i<10;i++){
ga++;
la++;
printf ("Je suis %s-local=%i-global=%i\n",
quisuisje,la,ga);
}
} else {
for (i=0;i<10;i++){

2
Systèmes d’exploitation 2

ga--;
la--;
printf ("##Je suis %s - local=%i - global=%i \n",
quisuisje,la,ga);
}
}
return 0;}

- Soit les bouts de programme suivant :

fork( ) ; for (int i = 0 ; i<3 ; i++){


fork( ) ; fork( ) ;
fork( ) ; }

Combien de processus seront créés?

8 processus :

i=0
P1

i=1 P1 P2

i=2 P3 P2 P4
P1

- P1l’effetP5
Quel est donc de forkP3
sur les P6 P2 locales
variables P7 et globales
P4 ? P8

Fork fait une copie des variables locales et globales à la création du


processus fils

3

Vous aimerez peut-être aussi