0% ont trouvé ce document utile (0 vote)
20 vues6 pages

Mini Projet Lamoudan Mohammed

Ce mini projet en informatique se concentre sur la multiplication de matrices en utilisant des processus lourds et légers. Le projet inclut la génération de matrices aléatoires, l'exécution de programmes pour comparer les performances des processus lourds et des threads légers, et conclut que les threads légers sont plus rapides en raison de leur exécution parallèle. Le document présente également le code source utilisé pour réaliser ces opérations.

Transféré par

hhiho
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
20 vues6 pages

Mini Projet Lamoudan Mohammed

Ce mini projet en informatique se concentre sur la multiplication de matrices en utilisant des processus lourds et légers. Le projet inclut la génération de matrices aléatoires, l'exécution de programmes pour comparer les performances des processus lourds et des threads légers, et conclut que les threads légers sont plus rapides en raison de leur exécution parallèle. Le document présente également le code source utilisé pour réaliser ces opérations.

Transféré par

hhiho
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Mini projet

Département d’informatique
Système d’exploitation
Mini projet

Réalisé par

Lamoudan Mohammed

Sous la responsabilité de :

Mr : MEKNASSI MOHAMMED

Réaliser le 20/05/15
Mini projet

La première chose que je vais faire c’est de lister les déférente tache que je dois accomplir.

Avant de commencer le traitement du problème on doit d’abord Générer une matrice aléatoire est
une fonction de multiplication matriciel:

Voici le code du programme :


#include <stdio.h>
#include<stdlib.h>
/* Déclarations */
int rand_0_100() //produire un nombre aleatoire entre 0 et 20
{
return rand()%(100);
}
void multiplication(int A[1000][1000], int B[1000][1000]){
int C[50][50]; /* matrice résultat */
int N, M, P; /* dimensions des matrices */
int I, J, K; /* indices courants */

/* Saisie des données */


printf("*** Matrice A ***\n");
printf("Nombre de lignes de A (max.50) : ");
scanf("%d", &N );
printf("Nombre de colonnes de A (max.50) : ");
scanf("%d", &M );
for (I=0; I<N; I++)
for (J=0; J<M; J++)
{
A[I][J]=rand_0_100();
}
printf("*** Matrice B ***\n");
printf("Nombre de lignes de B : %d\n", M);
printf("Nombre de colonnes de B (max.50) : ");
scanf("%d", &P );
for (I=0; I<M; I++)
for (J=0; J<P; J++)
{
B[I][J]=rand_0_100();
}
/* Affichage des matrices */
printf("Matrice donnée A :\n");
for (I=0; I<N; I++)
{
for (J=0; J<M; J++)
printf("%7d", A[I][J]);
printf("\n");
}
printf("Matrice donnée B :\n");
for (I=0; I<M; I++)
{
for (J=0; J<P; J++)
printf("%7d", B[I][J]);
printf("\n");
}
/* Affectation du résultat de la multiplication à C */
for (I=0; I<N; I++)
for (J=0; J<P; J++)
{
C[I][J]=0;
for (K=0; K<M; K++)
C[I][J] += A[I][K]*B[K][J];
}
Mini projet

/* Edition du résultat */
printf("Matrice résultat C :\n");
for (I=0; I<N; I++)
{
for (J=0; J<P; J++)
printf("%7d", C[I][J]);
printf("\n");
}
}
main ()
{
int A[1000][1000];
int B[1000][1000];
multiplication(A,B);
}
Son exécution :

A. La création des dix processus lourd et l’affectation des différente tache a chacun des processus.
voici le code du programme :
Mini projet

Apres l’exécution du programme en constate que les processus termine par tour de role cette
capture nous donne une petite idée sur le fonctionnement du programme :

B. Maintenant c’est le tour des dix processus lèges ou threads et les comparer avec les processus
précèdent.
voici le code du programme :
Mini projet

Et voici son exécution :

C. En vas fusionner les deux programme précèdent dans un programme principale pour voire la
différence entre eux en ce qui concerne la vitesse.
et voici le programme après l’exécution :

D. La dernière chose á faire c’est de comparer le temps d’exécution des deux programmes et
j’ai trouvé que les processus lèges sont beaucoup plus rapide que les lourd chose évidente
sachant que les processus lèges s’exécute parallèlement (au même temps), déferrement au
processus lourd qui s’exécute d’une façon synchrone.
Mini projet

Vous aimerez peut-être aussi