Vous êtes sur la page 1sur 2

EXAMEN

Semestre : 2

Session : Principale Rattrapage

Module : Systèmes d’Exploitation Avancés


Enseignant : FREFITA R.. ZOUAOUI A., BOUAOUINA I., BEN CHEIKHA M., AMAMOU L.,
BOUKHRIS I.
Classe(s) :
Documents non autorisés Nombre de pages : 2
Date : ………… Heure : ........................................................... Durée : ..................................

N.B. : - Les réponses aux questions doivent être argumentées et aussi concises que possible.
- Le barème est donné à titre indicatif.

Exercice 1 : Course de processus


Ecrire un programme C qui, à partir d’un processus père, créée cinq processus fils. Les cinq processus fils
effectueront une « course ». La course sera simulée par une boucle vide de n tours, avec n un entier choisit au
hasard. A la fin du programme, le processus père affichera l’ordre d’arrivée des différents fils ainsi que la valeur
de l’entier n choisit par chaque processus.

Remarque :
Pour la générateur de nombres aléatoires, nous supposons l’existence d’une fonction prédéfinie en C : int rand( ) 

Exemple d’affichage :

Exercice 2 : Commande Unix


Ecrire un programme C appelé cmd permettant d’exécuter une commande shell de forme suivante :

$cmd1 –option1 | cmd2 –option2

La commande shell doit contenir exactement deux commandes Unix (ls, ps, grep,…), deux options (une option par
commande) et un tube de communication.

1/2
Exemples d’utilisation :

Exemple 1 : cmd ls –l grep ch


Cette commande doit retourner le même résultat que celui de la commande shell : $ls –l | grep ch

Exemple 2 : cmd ps aux grep root


Cette commande doit retourner le même résultat que celui de la commande shell : $ps aux | wc -l

Indication :
Pour la fonction main(), vous pouvez utiliser les deux paramètres : int argc et char *argv[]

Exercice 3 : Ordonnancement des processus à date d’échéance


Soit un système d’exploitation doté d’un seul processeur et qui comprend exactement 5 processus nommés : A, B, C,
D, E. Chaque processus sera activé à sa date de déclenchement (date d’arrivée). A cette date, un processus est mis
alors dans la file des processus prêts pour demander l’unité centrale (CPU) pour une durée d’exécution donnée.

Nous supposons de plus qu’à chaque processus est associée une date d’échéance, avant laquelle il doit se terminer,
sinon il y a « une faute temporelle ».

Hypothèse :
Les temps de commutation de contexte sont considérés comme négligeables.

Soit le scénario suivant :

Processus Durée d’exécution Date de déclenchement Date d’échéance Date de fin


A 12 1 16  
B 3 0 17  
C 2 2 16  
D 1 3 17  
E 1 4 15  

Questions :

Pour chaque processus on vous demande de calculer la date de fin d’exécution selon la nature de
l’ordonnancement du processeur et de dire s’il y a « une faute temporelle » ou non. Présenter, pour chaque cas,
le chronogramme d'allocation du processeur.
1. Selon la politique de l’ancienneté (FIFO).

2. Selon la politique du tourniquet (Round Robin) avec un quantum de 2.

2/2

Vous aimerez peut-être aussi