• Aucun résultat trouvé

Module de Systèmes d’exploitation II

N/A
N/A
Protected

Academic year: 2022

Partager "Module de Systèmes d’exploitation II"

Copied!
3
0
0

Texte intégral

(1)

Université de Chlef Mars 2010 Département Informatique

Filière : 3ème LMD (S5)

Examen de rattrapage

Module de Systèmes d’exploitation II

Corrigé

Exercice 1 : On considère le problème du Producteur-Consommateur où le buffer possède une seule case. Proposez une solution à ce problème en utilisant les moniteurs de Hoare.

Réponse :

Structure du moniteur :

Type Producteur_Consommateur = Monitor

Var

Plein : boolean ; X, Y : Condition Buffer : Char ;

Procedure Entry Deposer(M : Char) Begin

If Plein Then X.Wait;

Buffer:=X, Plein := True; Y.Signal End

Procedure Entry Prelever(M : Char) Begin

If Not Plein Then Y.Wait;

X := Buffer; Plein := False; X.Signal End

Begin /* Initialisation */

Plein := False End.

Structure des processus : PC étant une instance du type de moniteur Producteur_Consommateur.

Processus Producteur Début

Cycle

Produire(Message) ; PC_Deposer(Message) Fin Cycle

Fin

Processus Producteur Début

Cycle

PC_Prelever(Message) ; Consommer(Message) Fin Cycle

Fin

(07 points)

(2)

Exercice 2 : On reprend le problème du point de rendez-vous vu en TD. Proposez une solution à ce problème en utilisant les moniteurs de Horare.

Réponse :

Structure du moniteur :

Type Rendez_Vous = Monitor

Const N = 10 Var

I : integer ; X : Condition

Procedure Entry Arrivee Begin

I:= I + 1;

If I = N Then X.Signal End

Procedure Entry Franchir Begin

X.Wait;

End

Begin /* Initialisation */

I := 0 End.

Structure des processus : RV étant une instance du type de moniteur Rendez_Vous.

Processus Pi Début

RV_Arrivee

… Fin

Processus Maitre Début

RV_Franchir

… Fin

(07 points)

Exercice 3 : Ecrire un programme Java qui crée deux (02) threads affichant chacun les nombres entiers compris entre 1 et 100.

Réponse :

(3)

// LanceCompteurs.java //

class ThreadCompteur extends Thread { int no_fin;

// Constructeur

ThreadCompteur (int fin) { no_fin = fin;

}

// On redéfinit la méthode run() public void run () {

for (int i=1; i<=no_fin ; i++) { System.out.println(this.getName i);

} } }

// Classe lançant les threads class LanceCompteurs {

public static void main (String args[]) { // On instancie les threads

ThreadCompteur cp1 = new ThreadCompteur (100);

ThreadCompteur cp2 = new ThreadCompteur (100);

// On démarre les deux threads cp1.start();

cp2.start();

// On attend qu'ils aient fini de compter while (cp1.isAlive() || cp2.isAlive) { // On bloque le thread 100 ms try {

Thread.sleep(100);

} catch (InterruptedException e) { return; } }

} }

(06 points)

Références

Documents relatifs

Exercice 3 : Proposez une solution au problème des lecteurs-rédacteurs en donnant une priorité aux rédacteurs en utilisant les moniteurs

Exercice 1 : On considère le problème du Producteur-Consommateur où le buffer possède une seule case. Proposez une solution à ce problème en utilisant les moniteurs

Pour calculer la deuxième coordonnée de H , on forme l'équation de la hauteur issue

Il existerait en eet un vecteur a non nul tel que n(a) = λa (l'image est une droite stable) avec λ non nul (l'intersection noyau -image est réduite au vecteur nul).2. Toute

Université Pierre et Marie Curie – Paris 6 Examen semestriel Licence de Mathématiques – 3 e année LM329 – Systèmes Dynamiques.. 31 mai 2012 8h30

Notons K l'ensemble de toutes les fonctions vériant la relation de la partie II alors G est la partie de K constitué des fonctions continues alors que H est la partie de K

L’accès aux archives de la revue « Nouvelles annales de mathématiques » implique l’accord avec les conditions générales d’utilisation ( http://www.numdam.org/conditions )..

Déterminer l’équation la plus générale des courbes planes qui jouissent de cette propriété , savoir : que toutes celles de leurs cordes dont la direction passe par