« 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 11 : Ligne 11 :
- Entêtes de fonctions POSIX (II) :
- Entêtes de fonctions POSIX (II) :
[http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_2.pdf fonctions_POSIX_2.pdf.]
[http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_2.pdf fonctions_POSIX_2.pdf.]
<!--
- Entêtes de fonctions POSIX (III) :
- Entêtes de fonctions POSIX (III) :
[http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_3.pdf fonctions_POSIX_3.pdf.]
[http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_3.pdf fonctions_POSIX_3.pdf.]
<!--
- Entêtes de fonctions POSIX (IV) :
- Entêtes de fonctions POSIX (IV) :
[http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_4.pdf fonctions_POSIX_4.pdf.]
[http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_4.pdf fonctions_POSIX_4.pdf.]
Ligne 26 : Ligne 26 :
- Banque virtuelle : exemple de condition de concurrence.
- Banque virtuelle : exemple de condition de concurrence.
[http://lama.univ-savoie.fr/~provencal/INFO622/CM1/banqueVirtuelle.c programme ``banqueVirtuelle.c``.]
[http://lama.univ-savoie.fr/~provencal/INFO622/CM1/banqueVirtuelle.c programme ``banqueVirtuelle.c``.]


TD1 :
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1.pdf Énoncé du TD1 (effectuée en salle machine).]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q1a.c Solution question 1a)]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q2a.c Solution question 2a)]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q2b.c Solution question 2b)]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q3a.c Solution question 3a)]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q3d.c Solution question 3d)]
- [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.


TD2 :
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD2.pdf Énoncé du TD2.]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2_q6.c Implémentation du code de la question 6.] (à compiler avec l'option -lm )
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2_q6-sol.c 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
CM3 : Producteur/Consommateur et Sémaphores
Ligne 40 : Ligne 58 :
[http://lama.univ-savoie.fr/~provencal/INFO622/CM3/parleur.c programme ``parleur.c``.]
[http://lama.univ-savoie.fr/~provencal/INFO622/CM3/parleur.c programme ``parleur.c``.]


TD3 :
<!--
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD3.pdf Énoncé du TD3.]
CM2 : Processus vs Threads, exclusion mutuelle I
- [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 )
- Exemple d'utilisation du fork :
[http://lama.univ-savoie.fr/~provencal/INFO622/CM2/exFork.c programme ``exFork.c``.]
- [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 )
- Exemple d'utilisation de threads (compiler avec l'option -lpthread) :
[http://lama.univ-savoie.fr/~provencal/INFO622/CM2/exThread.c programme ``exThread.c``.]
- Exemple de récupération d'un valeur retournée par un thread. (compiler avec l'option -lpthread) :
[http://lama.univ-savoie.fr/~provencal/INFO622/CM2/exThread2.c programme ``exThread2.c``.]





<!--
CM4 : Sémaphores POSIX et mémoire partagée
CM4 : Sémaphores POSIX et mémoire partagée
- Sémaphores nommés avec processus distincs (compiler avec l'option -lpthread) :
- Sémaphores nommés avec processus distincs (compiler avec l'option -lpthread) :
Ligne 82 : Ligne 96 :
[http://lama.univ-savoie.fr/~provencal/INFO622/CM7/banqueVirtuelle2.c Programme ``banqueVirtuelle2.c``.]
[http://lama.univ-savoie.fr/~provencal/INFO622/CM7/banqueVirtuelle2.c Programme ``banqueVirtuelle2.c``.]
-->
-->

TD1 :
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1.pdf Énoncé du TD1.]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q1a.c Solution question 1a)]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q2a.c Solution question 2a)]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q2b.c Solution question 2b)]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q3a.c Solution question 3a)]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q3d.c Solution question 3d)]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q3e.c Solution question 3e)]

TD2 :
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD2.pdf Énoncé du TD2.]
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2_q6.c Implémentation du code de la question 6.] (à compiler avec l'option -lm )
- [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2_q6-sol.c 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

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-sol.c Implémentation de la solution de la question 2.] (à compiler avec les options -lpthread -lcurses )





Version du 2 février 2014 à 16:22

Ouvrage de référence

  1. Andrew Tanenbaum, Systèmes d'exploitation

Documentation remise en classes

- Entêtes de fonctions POSIX (I) :
   fonctions_POSIX_1.pdf.
- Entêtes de fonctions POSIX (II) :
   fonctions_POSIX_2.pdf.
- Entêtes de fonctions POSIX (III) :
   fonctions_POSIX_3.pdf.


Déroulement (2013-2014)

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

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


TD1 :

- Énoncé du TD1 (effectuée en salle machine).
   - Solution question 1a)
   - Solution question 2a)
   - Solution question 2b)
   - 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``.
- Exemple erroné d'utilisation d'un sémaphore non nommé par des processus apparenté ( fork() ) (compiler avec l'option -lpthread) :
   programme ``semFork-bug.c``.
- Exemple d'utilisation d'un sémaphore nommé par des processus non apparenté (compiler avec l'option -lpthread) :
   programme ``createur.c``.
   programme ``destructeur.c``.
   programme ``gestionnaire.c``.
   programme ``parleur.c``.

TD3 :

- Énoncé du TD3.
   - Implémentation du code de la question 2. (à compiler avec les options -lpthread -lcurses )
   - Implémentation de la solution de la question 2. (à compiler avec les options -lpthread -lcurses )