Vous êtes sur la page 1sur 4

Université Ibn Tofail S6- Filières: GI, Génie Industriel, RST, Génie

Ecole Nationale des Sciences Appliquées Electrique


Kénitra A.U. 2021/2022

Théorie des Systèmes d’exploitation


Contrôle final- Durée : 1h 30mn
Corrigé

Exercice 1 :
On considère les processus suivants avec leurs dates d'arrivée et leurs temps d'exécution (en
millisecondes). Nous supposons que le temps de commutation est négligeable.

Processus Date d’arrivée Temps d'exécution


A 0 3
B 1 6
C 4 4
D 6 2

1) Etablir le diagramme de Gantt correspondant aux méthodes d’ordonnancement suivantes :


Réponse :
a) SJF non préemptif (Processus le plus court d’abord sans réquisition).

A B D C
0 3 9 11 15

b) Le Tourniquet en prenant un quantum Q=2 ms.

A B C D A B C B
0 2 4 9 8 9 11 13 15

2) Calculer le temps moyen d’attente et le temps moyen de rotation pour chaque méthode.
Réponse :

SJF Non préemptif :


Temps moyen d’attente=3 ms
Temps moyen de rotation=6.75 ms

Tourniquet avec un quantum Q=2 ms:


Temps moyen d’attente=4.75 ms
Temps moyen de rotation=8.5 ms

1
3) D’une manière générale, quel est l’effet d’une augmentation du quantum sur l’algorithme
Round-Robin ?
Réponse :

L’effet de l’augmentation du quantum :


- Temps global de commutation réduit
- Mais un temps moyen d’attente élevé

Exercice 2 :
On considère deux processus concurrents selon le modèle du producteur/consommateur. L’un
produit des informations (des messages) qu’il dépose dans un tampon partagé de taille N, l’autre
les retire une à une pour les consommer. On propose le code suit :

Initialisation : Semaphore Mutex = 1; Message tampon[]; int N=100 ;

Producteur Consommateur
Producteur( ) Consommateur( )
{in ip=1; { int ic=1;
Message m ; Message m ;
Tant que Vrai faire Tant que Vrai faire
{m = creermessage() ; {down(Mutex) ;
down(Mutex) ; m = tampon[ic];
tampon[ip]=m; up(Mutex) ;
up(Mutex) ; ic=ic+1mod N;
Ip=ip+1 mod N; consommerMessage(m);
} }
} }

1) Cette solution assure l’exclusion mutuelle, mais ne permet pas la synchronisation entre le
producteur et le consommateur. Dire pourquoi ?
Réponse :

Cette solution n’assure pas la synchronisation entre le producteur et le consommateur car


- Le producteur peut écrire même si le tampon est plein
- Le consommateur ne rentre pas en sommeil si le tampon est vide.

2) Adapter cette solution pour que l'échange des messages soit synchronisé.
Réponse :

Ajouter deux sémaphores plein et vide initialisés comme suit ;


Sémaphore plein=0, vide=N :

2
Producteur Consommateur
Producteur( ) Consommateur( )
{in ip=1; { int ic=1;
Message m ; Message m ;
Tant que Vrai faire Tant que Vrai faire
{m = creermessage() ; { down(plein) ;
down(vide) ; down(Mutex) ;
down(Mutex) ; m = tampon[ic];
tampon[ip]=m; up(Mutex) ;
up(Mutex) ; up(vide):
up(plein); ic=ic+1mod N;
Ip=ip+2 mod N; consommerMessage(m);
} }
} }

3) Supposons que le producteur produit et dépose à chaque fois deux messages. Le


consommateur consomme toujours un seul message à la fois. Adapter le code
correspondant au producteur.

Réponse :

Producteur( )
{in ip=1;
Message m ;
Tant que Vrai faire
{m1 = creermessage() ;
m2 = creermessage() ;
down(vide) ; down(vide) ;
down(Mutex) ;
tampon[ip]=m1;
tampon[ip+1]=m2;
up(Mutex) ;
up(plein); up(plein);
Ip=ip+1 mod N;
}
}

4) On considère le cas de plusieurs producteurs et plusieurs consommateurs. Adapter cette


solution en réécrivant les procédures Producteur(i) et Consommateur(j). On suppose qu’un
seul message peut être déposé ou retiré à la fois.

3
Exercice 3 :
Soit un système d’exploitation qui utilise l’allocation contiguë par partitions variables. On
considère à l’instant T l’état suivant de la mémoire centrale (les zones vides sont libres) :

P1 P2 P3 P4
3 Ko 2 Ko 8Ko 1 Ko
10Ko 2Ko 6Ko
Soit la séquence suivante d’évènements selon cet ordre : l’arrivée du processus P5 (2 Ko), l’arrivée
de P6 (5 Ko), P4 est retiré et l’arrivée du processus P7 (1 Ko).

1) En utilisant la méthode d’allocation First Fit, donner le contenu de la mémoire.


2) Refaire la question en utilisant l’algorithme d’allocation Best Fit.
3) Quelles sont les limitations de l’allocation contiguë avec le va et vient ?

Exercice 4 :
Dans un système paginé, la table de pages d’un processus P est de taille 128 Ko. Le nombre
d’entrées de la table des pages est égal à 65536 (=216). Chaque entrée de la table de pages contient
une référence vers un cadre de page et un bit de présence/absence. Le déplacement (le décalage)
est codé sur 10 bits.

1) Calculer la taille en bit d’une entrée de la table de pages


128*1024*8/216=128*1024*8/216=27*210*23/216=24=16 bits

2) Quelle est la taille de l’espace d’adressage du processus P ?


Taille d’une page=210 Octets=1 Ko
Taille l’espace d’adressage du processus =Nombre de pages*taille d’une page=216*1 Ko=216 Ko
=26 Mo=64 Mo

3) Quelle est la taille nécessaire pour représenter une adresse physique ?


Pour coder un cadre, 15 bits sont nécessaires (16-1)
10 bits de décalage  25 bits pour coder une adresse physique.

Vous aimerez peut-être aussi