« INFO622 : Systèmes de synchronisation et Processus » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 57 : Ligne 57 :
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q3e.c Solution question 3e)]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q3e.c Solution question 3e)]


<!--
CM2 : Processus et threads, utilisation des fonctions : fork, wait, waitpid, pthread_create, pthread_exit, pthread_join. Méthodes d'exclusion mutuelle : désactivation des interruptions et attente active.
CM2 : Processus et threads, utilisation des fonctions : fork, wait, waitpid, pthread_create, pthread_exit, pthread_join. Méthodes d'exclusion mutuelle : désactivation des interruptions et attente active.


Ligne 71 : Ligne 70 :
- Exemple d'utilisation d'un sémaphore non nommé par des threads (compiler avec l'option -lpthread) :
- Exemple d'utilisation d'un sémaphore non nommé par des threads (compiler avec l'option -lpthread) :
[http://lama.univ-savoie.fr/~provencal/INFO622/CM3/semThread.c programme ``semThread.c``.]
[http://lama.univ-savoie.fr/~provencal/INFO622/CM3/semThread.c programme ``semThread.c``.]
- Exemple erroné d'utilisation d'un sémaphore non nommé par des processus apparenté ( fork() ) (compiler avec l'option -lpthread) :
[http://lama.univ-savoie.fr/~provencal/INFO622/CM3/semFork-bug.c programme ``semFork-bug.c``.]


<!--
TD3 :
TD3 :
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD3.pdf Énoncé du TD3.]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD3.pdf Énoncé du TD3.]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td3_q2.c Implémentation du code de la question 2.] (à compiler avec les options -lpthread -lcurses )
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td3_q2.c Implémentation du code de la question 2.] (à compiler avec les options -lpthread -lcurses )
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td3_q2-sol.c Implémentation de la solution de la question 2.] (à compiler avec les options -lpthread -lcurses )
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td3_q2-sol.c Implémentation de la solution de la question 2.] (à compiler avec les options -lpthread -lcurses )
-->


CM4 : Sémaphores nommés et mémoire partagée
CM4 : Sémaphores nommés et mémoire partagée
- Exemple erroné d'utilisation d'un sémaphore non nommé par des processus apparenté ( fork() ) (compiler avec l'option -lpthread) :
[http://lama.univ-savoie.fr/~provencal/INFO622/CM3/semFork-bug.c programme ``semFork-bug.c``.]
- Sémaphores nommés avec processus distincs (compiler avec l'option -lpthread) :
- Sémaphores nommés avec processus distincs (compiler avec l'option -lpthread) :
[http://lama.univ-savoie.fr/~provencal/INFO622/CM4/createur.c programme ``createur.c``.]
[http://lama.univ-savoie.fr/~provencal/INFO622/CM4/createur.c programme ``createur.c``.]
Ligne 93 : Ligne 94 :
[http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_affichage.c programme ``mp_affichage.c``.]
[http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_affichage.c programme ``mp_affichage.c``.]


<!--
TD4 :
TD4 :
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD4.pdf Énoncé du TD4.]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD4.pdf Énoncé du TD4.]

Version du 4 février 2015 à 12:11

  • Responsable pour 2014--2015: Xavier Provençal
  • Intervenants : Xavier Provençal (CM/TD/TP), Afef Denguir-Draoui (TD/TP)


Ouvrage de référence

  1. Andrew Tanenbaum, Systèmes d'exploitation. Principalement les chapitres 2 et 6.


Documentation remise en classes

- Entêtes de fonctions POSIX (I) :
   fonctions_POSIX_1.pdf.


Déroulement (2014-2015)

CM1 : Introduction à la multiprogrammation, condition de concurrence et section critique.

- Banque virtuelle : exemple de condition de concurrence.
   programme ``banqueVirtuelle.c``.



TD1 :

- Énoncé du TD1 (en salle machine).
   - Solution question 1a)
   - Solution question 2a)
   - Solution question 2c)
   - Solution question 2e)
   - Solution question 3a)
   - Solution question 3d)
   - Solution question 3e)

CM2 : Processus et threads, utilisation des fonctions : fork, wait, waitpid, pthread_create, pthread_exit, pthread_join. Méthodes d'exclusion mutuelle : désactivation des interruptions et attente active.


TD2 :

- Énoncé du TD2.
   - Implémentation du code de la question 6. (à compiler avec l'option -lm )
   - Implémentation de la solution de la question 6. (à compiler avec les options -lm -lpthread )
   Utilisez la commande "time" pour observer un gain de vitesse sur une machine à plusieurs coeurs. 
   Pour cela il vous faudra de grands nombres premiers. En voici un : 1000000000000039723

CM3 : Producteur/Consommateur et Sémaphores

- Exemple d'utilisation d'un sémaphore non nommé par des threads (compiler avec l'option -lpthread) :
   programme ``semThread.c``.


CM4 : Sémaphores nommés et mémoire partagée

- Exemple erroné d'utilisation d'un sémaphore non nommé par des processus apparenté ( fork() ) (compiler avec l'option -lpthread) :
   programme ``semFork-bug.c``.
- Sémaphores nommés avec processus distincs (compiler avec l'option -lpthread) :
   programme ``createur.c``.
   programme ``destructeur.c``.
   programme ``gestionnaire.c``.
   programme ``parleur.c``.
- Exemple simplissime de manipulation d'un entier situé en mémoire partagée (compiler avec l'option -lrt) :
   programme ``mp_1.c``.
   programme ``mp_2.c``.
- Exemple d'utilisation d'un sémaphore non-nommé situé en mémoire partagée (compiler avec l'option -lrt) :
   fichier entête ``mp_maStruct.h``.
   programme ``mp_lecture.c``.
   programme ``mp_affichage.c``.





Matériel supplémentaire

Notes de cours prises pas des étudiants :

    Notes de cours d'étudiants