« INFO622 : Systèmes de synchronisation et Processus » : différence entre les versions
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``.] |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
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. |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
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``.] |
||
⚫ | |||
⚫ | |||
⚫ | |||
CM2 : Processus vs Threads, exclusion mutuelle I |
|||
⚫ | |||
- Exemple d'utilisation du fork : |
|||
[http://lama.univ-savoie.fr/~provencal/INFO622/ |
- [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``.] |
||
--> |
--> |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
- [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
- Responsable pour 2012--2013: Xavier Provençal
- Xavier Provençal (CM/TD/TP)
Ouvrage de référence
- 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 )