La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Matière 2:4,5 Ects Conception et programmation Orientée-objet 12h cours -14h TD -12h TP Matière 1: 4,5 Ects Programmation Parallèle 16h cours -18h TD -

Présentations similaires


Présentation au sujet: "Matière 2:4,5 Ects Conception et programmation Orientée-objet 12h cours -14h TD -12h TP Matière 1: 4,5 Ects Programmation Parallèle 16h cours -18h TD -"— Transcription de la présentation:

1 Matière 2:4,5 Ects Conception et programmation Orientée-objet 12h cours -14h TD -12h TP Matière 1: 4,5 Ects Programmation Parallèle 16h cours -18h TD - 12h TP TC1- CPPOO 96h - 9 Ects BE 12h TP CPOOP

2 TC1: Conception et programmation parallèle et orientée objet Volume horaire: 96h Répartition: Cours: 28h TD:32h TP:24h BE:12h Objectif: Ce cours a pour but de présenter les concepts de base de la programmation orientée objet et parallèle. Ils sont illustrés à travers une démarche de développement et des applications de synthèse. Plan: 1. Conception et Programmation Orientée Objets - Concepts fondamentaux de la POO Rappels et compléments sur les concepts de la POO (classes, objets, héritage, polymorphisme,...) - Conception Orientée Objets - Introduction au langage de modélisation UML - Démarche d'analyse et de conception - Schémas de conception - Mise en œuvre - Modélisation d'une application - Implantation avec Java 2. Programmation Parallèle - Expression des activités parallèles: processus et threads - Modèles de parallélisme: synchrone, asynchrone - Mécanismes de communication et de synchronisation - variables partagées, envoi de messages - verrou, sémaphore, moniteur, rendez-vous - Problèmes et applications - Exclusion mutuelle - Allocation de ressources - Schéma producteur-consommateur, lecteur-rédacteur,... - Eléments de spécification et de vérification - Mise en œuvre (UNIX et Java) 3. Travaux de synthèse - Réalisation d'objets synchronisés - Etude et réalisation d'interfaces graphiques Cette partie sera assurée dans le cadre de bureaux d'études et travaux-pratiques. Elle doit permettre de faire le lien entre les deux premières parties.

3 Programmation Parallèle Pourquoi ? Système complexe Exigence: Décomposition en activités « indépendantes » Matériel multiprocesseur réseaux monoprocesseur

4 Plateforme Centralisé Distribué Pseudo-parallélisme Parallélisme réel ---- Multiprocesseur: UC1..UCn Monoprocesseur: UC réseaux MC P0P1 Passage de contrôle S1S2S3Sn ----

5 Expression du parallélisme Processus Définition utilisateur Programme en cours dexécution Définition système Descripteur identité état pcontexte : Pile du processus _ : _ Ad_SDonnées Ad_Code S_Données _ Ad_Code _ Processus

6 États dun processus Selon implantations, sous-états possibles PRÊT BLOQUÉ ACTIF TERMINÉ Créé Allocation Préemption Attente Fin, destruction Plusieurs processus Prêts attendent lUC Le processus élu est choisit selon une politique de schedulling

7 Processus Unix S_Données_Père X 0 Pid Num_Fils S_Code S_Pile_Père Main() { int x, pid; x=0; pid = fork(); if (!pid) x=1; else x=2; } S_Données_fils X 0 Pid 0 S_Pile_Fils

8 Processus Unix S_Code S_Pile_Père Main() { int x, pid; x=0; pid = fork(); if (!pid) x=1; else x=2; } S_Pile_Fils S_Données_fils X 1 Pid 0 S_Données_Père X 2 Pid Num_Fils

9 Thread « processus léger » Expression du parallélisme de partager lespace dadressage avec dautres Permettre à une activité parallèle contrairement aux processus processus t1t2t3tn S_Données_processus _

10 Un thread est crée, seulement, par un processus Un processus peut créer plusieurs threads Les threads sexécutent dune façon général en multiprogrmmé Ils partagent le temps du processus père Le contrôle passe à un autre thread si le thread courant: se termine se bloque Lance une opération E/S Dautres politiques de schedulling sont possibles Le processus père joue le rôle du processeur / à ses threads

11 États dun thread Selon implantations, sous-états possibles PRÊT BLOQUÉ ACTIF TERMINÉ Créé Allocation Préemption Attente Fin, destruction les threads Prêts attendent dans le processus Le thread élu est choisit selon une politique de schedulling. Il sexécute quand le processus est actif

12 S_Code int x; /* */ void *traitementThread () { /* */ int i; x++; printf(…) x++; } main() { int etat; int numThreads; pthread_t idThread; pthread_attr_t attribut; /* Creation dun thread */ x = 1; etat = pthread_create(&idThreads, &attribut, traitementThread, &numThreads); Printf (…..); X--; } X == 1

13 S_Code int x; /* */ void *traitementThread () { /* */ int i; x++; printf(…) x++; } main() { int etat; int numThreads; pthread_t idThread; pthread_attr_t attribut; /* Creation dun thread */ x = 1; etat = pthread_create(&idThreads, &attribut, traitementThread, &numThreads); Printf (…..); X--; } X == 2

14 S_Code int x; /* */ void *traitementThread () { /* */ int i; x++; printf(…) x++; } main() { int etat; int numThreads; pthread_t idThread; pthread_attr_t attribut; /* Creation dun thread */ x = 1; etat = pthread_create(&idThreads, &attribut, traitementThread, &numThreads); Printf (…..); X--; } X == 1

15 S_Code int x; /* */ void *traitementThread () { /* */ int i; x++; printf(…) x++; } main() { int etat; int numThreads; pthread_t idThread; pthread_attr_t attribut; /* Creation dun thread */ x = 1; etat = pthread_create(&idThreads, &attribut, traitementThread, &numThreads); Printf (…..); X--; } X == 2

16 Créer un thread int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg); –start_routine = fonction exécutée par le thread –arg = argument de cette fonction –attr = attributs optionnels de création –thread = identificateur Toutes les ressources nécessaires au thread doivent avoir été initialisées. Erreurs possibles : –EINVAL : attributs invalide –EAGAIN : ressources insuffisantes Exemple: Thread Unix

17 Autres opérations sur un thread int pthread_detach(pthread_t thread); Détacher un thread Erreurs : –(EINVAL : thread non « joignable » –ESRCH : thread invalide) pthread_t pthread_self(void); Retourne l identificateur de l appelant int pthread_yield(void);, TR Rend prêt l appelant, élection nouveau thread Erreur : –Retour -1 + errno –ENOSYS : non supporté

18 Terminer un thread void pthread_exit(void *value_ptr); Terminaison de l appelant –value_ptr = valeur (non adr) de retour pour jointure int pthread_join(pthread_t thread, void **value_ptr); Attente de la terminaison dun thread non détaché –thread = identificateur du thread concerné –value_ptr = valeur retournée (si non NULL) Erreurs : –EINVAL : thread non « joignable » –ESRCH : thread invalide –(EDEADLK : join avec self) Exemple : create, exit/join

19 2 Modèles du parallélisme I- Modèle Synchrone Flot de données Flot de contrôle P P Pn ---- Horloge t0 t1 t2 t3 t4 Une seule horloge A chaque top tous les processus sactivent exécution // entre 2 top interaction 0 Lustre Esterel

20 2 Modèles du parallélisme II- Modèle Asynchrone H0H1H2…….Hn Indépendance interaction 0

21 Quelques Problèmes Causes coopérationPartage de ressources Communication & Synchronisation Synchrone Asynchrone Variables partagées Envoie de messages

22 Quelques Problèmes Exclusion Mutuelle Communication Synchrone Communication Asynchrone Attendre & Signaler un événement Diffuser un événement Allocation de Ressources Fichier Partagé Pilote dEntrée /Sortie :::::::: Propriétés Comportementales Sûreté Section Critique Non Inter blocage Vivacité Non Famine Équité


Télécharger ppt "Matière 2:4,5 Ects Conception et programmation Orientée-objet 12h cours -14h TD -12h TP Matière 1: 4,5 Ects Programmation Parallèle 16h cours -18h TD -"

Présentations similaires


Annonces Google