« INFO622 : Systèmes de synchronisation et Processus » : différence entre les versions
Aller à la navigation
Aller à la recherche
(→TP) |
Aucun résumé des modifications |
||
Ligne 10 : | Ligne 10 : | ||
== Documentation remise en classes == |
== Documentation remise en classes == |
||
<!-- |
|||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/fct_posix-1.pdf Entêtes de fonctions POSIX (I).] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/fct_posix-1.pdf Entêtes de fonctions POSIX (I).] |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/fct_posix-2.pdf Entêtes de fonctions POSIX (II).] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/fct_posix-2.pdf Entêtes de fonctions POSIX (II).] |
||
Ligne 15 : | Ligne 16 : | ||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/fct_posix-4.pdf Entêtes de fonctions POSIX (IV).] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/fct_posix-4.pdf Entêtes de fonctions POSIX (IV).] |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/fct_posix-5.pdf Entêtes de fonctions POSIX (V).] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/fct_posix-5.pdf Entêtes de fonctions POSIX (V).] |
||
--> |
|||
== TP == |
== TP == |
||
À venir |
|||
<!-- |
|||
- TP1 : |
- TP1 : |
||
[http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/tp1.pdf Énoncé du TP.] |
[http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/tp1.pdf Énoncé du TP.] |
||
Ligne 28 : | Ligne 31 : | ||
[http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/tp3.pdf Énoncé du TP.] |
[http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/tp3.pdf Énoncé du TP.] |
||
[http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/info622-tp3.tgz Fichiers sources du simulateur.] |
[http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/info622-tp3.tgz Fichiers sources du simulateur.] |
||
--> |
|||
== Déroulement (2016-2017) == |
|||
- CM1 : |
|||
- Introduction à la multiprogrammation |
|||
- Condition de concurrence |
|||
- Section critique. |
|||
- Banque virtuelle : exemple de condition de concurrence |
|||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/CM1/banqueVirtuelle.c programme ``banqueVirtuelle.c``.] |
|||
⚫ | |||
== Déroulement (2015-2016) == |
== Déroulement (2015-2016) == |
||
Ligne 42 : | Ligne 58 : | ||
- TD1 : |
- TD1 : |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD1.pdf Énoncé du TD1 (en salle machine).] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD1.pdf Énoncé du TD1 (en salle machine).] |
||
<!-- |
|||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD1-sol/q1a.c Solution question 1a)] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD1-sol/q1a.c Solution question 1a)] |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD1-sol/q2a.c Solution question 2a)] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD1-sol/q2a.c Solution question 2a)] |
||
Ligne 49 : | Ligne 66 : | ||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD1-sol/q3d.c Solution question 3d)] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD1-sol/q3d.c Solution question 3d)] |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD1-sol/q3e.c Solution question 3e)] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD1-sol/q3e.c Solution question 3e)] |
||
--> |
|||
- CM2 : |
- CM2 : |
||
Ligne 59 : | Ligne 77 : | ||
- TD2 : |
- TD2 : |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD2.pdf Énoncé du TD2.] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD2.pdf Énoncé du TD2.] |
||
<!-- |
|||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD2/q4_seq.c Code question 4, version séquentielle] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD2/q4_seq.c Code question 4, version séquentielle] |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD2/q4_para.c Code question 4, version parallèle boguée] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD2/q4_para.c Code question 4, version parallèle boguée] |
||
Ligne 64 : | Ligne 83 : | ||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD2/q4_c.c Solution de 4c)] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD2/q4_c.c Solution de 4c)] |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD2/q4_f.c Solution de 4f)] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD2/q4_f.c Solution de 4f)] |
||
--> |
|||
- CM3 : |
- CM3 : |
||
Ligne 77 : | Ligne 97 : | ||
- TD3 : |
- TD3 : |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD3.pdf Énoncé du TD3.] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD3.pdf Énoncé du TD3.] |
||
<!-- |
|||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/td3_q1.c Solution de la question q1 (fichier source).] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/td3_q1.c Solution de la question q1 (fichier source).] |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/prod_cons.c Implémentation du problème ``producteurs/consommateurs`` (avec attente active et conditions de concurrence).] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/prod_cons.c Implémentation du problème ``producteurs/consommateurs`` (avec attente active et conditions de concurrence).] |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/prod_cons_sol.c Solution au problème ``producteurs/consommateurs`` (avec n producteur et m consommataeurs, sans conditions de concurrence).] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/prod_cons_sol.c Solution au problème ``producteurs/consommateurs`` (avec n producteur et m consommataeurs, sans conditions de concurrence).] |
||
--> |
|||
- CM4 : |
- CM4 : |
||
Ligne 98 : | Ligne 120 : | ||
- TD4 : |
- TD4 : |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD4.pdf Énoncé du TD4.] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD4.pdf Énoncé du TD4.] |
||
<!-- |
|||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD4/q1.c Solution de la question 1 (fichier source).] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD4/q1.c Solution de la question 1 (fichier source).] |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD4/q2.c Solution de la question 2 (fichier source).] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD4/q2.c Solution de la question 2 (fichier source).] |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD4/q3.c Solution de la question 3 (fichier source).] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD4/q3.c Solution de la question 3 (fichier source).] |
||
--> |
|||
- CM5 |
- CM5 |
||
Ligne 130 : | Ligne 154 : | ||
- TD6 |
- TD6 |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD5.pdf Énoncé du TD5.] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD5.pdf Énoncé du TD5.] |
||
<!-- |
|||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/q1_v1.c Solution question 1 (Version sémaphores).] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/q1_v1.c Solution question 1 (Version sémaphores).] |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/q1_v2.c Solution question 1 (Version attente active).] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/q1_v2.c Solution question 1 (Version attente active).] |
||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/q2.c Solution question 2.] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/q2.c Solution question 2.] |
||
--> |
|||
Ligne 140 : | Ligne 166 : | ||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/banqueVirtuelle2.c banqueVirtuelle2.c] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/banqueVirtuelle2.c banqueVirtuelle2.c] |
||
<!-- |
|||
⚫ | |||
=== Déroulement (2014-2015) === |
=== Déroulement (2014-2015) === |
||
Ligne 246 : | Ligne 271 : | ||
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD7.pdf TD7.] |
- [http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/TD7.pdf TD7.] |
||
[http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/arrayFun.c Solution des question 1), 2a) et 2b).] |
[http://lama.univ-savoie.fr/~provencal/enseignement/INFO622/TD/arrayFun.c Solution des question 1), 2a) et 2b).] |
||
--> |
Version du 8 janvier 2017 à 14:39
- Responsable pour 2015--2016: Xavier Provençal
- Intervenants : Xavier Provençal (CM/TD/TP), Rodolphe Lepigre (TD/TP)
Ouvrage de référence
- Andrew Tanenbaum, Systèmes d'exploitation. Principalement les chapitres 2 et 6.
Documentation remise en classes
TP
À venir
Déroulement (2016-2017)
- CM1 : - Introduction à la multiprogrammation - Condition de concurrence - Section critique. - Banque virtuelle : exemple de condition de concurrence - programme ``banqueVirtuelle.c``.
Archives
Déroulement (2015-2016)
- CM1 : - Introduction à la multiprogrammation - Condition de concurrence - Section critique. - Banque virtuelle : exemple de condition de concurrence - programme ``banqueVirtuelle.c``.
- TD1 : - Énoncé du TD1 (en salle machine).
- CM2 : - Threads et processus. - Ressources physiques et espace d'adressage. - Commandes fork, wait, pthread_create, pthread_join. - programme ``zombies.c``. - Mécanismes d'exclusion mutuelle (première partie).
- TD2 : - Énoncé du TD2.
- CM3 : - Mécanismes d'exclusion mutuelle (deuxième partie) - Mutex et sémaphores - Programme verrou.c - Programme mutex.c - Programme ParleurCC.c (avec condition de concurrence) - Programme ParleurSem.c (sans condition de concurrence) - Communication interprocessus - Problème "producteurs/consommateurs"
- TD3 : - Énoncé du TD3.
- CM4 : - Sémaphores nommés vs non-nommés - Implémentation du duo "Parleur/gestionnaire" avec un sémaphore non-nommé. - Parleur/gestionnaire avec threads et sémaphore non-nommé. - Parleur/gestionnaire avec fork et sémpaphore non-nommé (non-fonctionnel). - Implémentation du duo "Parleur/gestionnaire" avec un sémphore nommé. - createur.c (crée un sémaphore nommé). - gestionnaire.c (fait des POST sur un sémaphore nommé). - parleur.c (fait des WAIT sur un sémaphore nommé). - destructeur.c (détruit un sémaphore nommé). - Mémoire partagée - Exemple simplissime d'utilisation de mémoire partagée. - mp_1.c (à compiler avec l'option -lrt). - mp_2.c (à compiler avec l'option -lrt).
- TD4 : - Énoncé du TD4.
- CM5 - Mémoire partagée (suite et fin) - Solution du devoir sur le comportement par défaut de la mémoire partagée lors d'un fork. - sol_devoir.c - Exemple un peu plus évolué d'utilisation de mémoire partagée. - mp_maStruct.h. - mp_affichage.c (à compiler avec l'option -lrt). - mp_lecture.c (à compiler avec l'option -lrt). - Variable de condition - Programme ``decrémenteur`` avec une variable de condition. - Implémentation de ``Producteur/consommateur`` avec des variables de condition. - Barrière de synchronisation - Exemple simplissime d'utilisation d'une barrière de synchronisation.
- TD5 - Énoncé du TD5.
- CM6 - Tubes Unix - tubeFork.c - fifoEcriture.c - fifoLecture.c - ficoLectureMultiple.c (utilisation de la fonction select)
- TD6 - Énoncé du TD5.
- CM7 - Tubes Unix (suite et fin) - Interblocages - banqueVirtuelle2.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. - 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 ) - 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``. - 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 ) - 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``. - TD4 : - Énoncé du TD4. - Programme ``collatz.c`` à compléter (compilez avec les options : -lpthread -lrt. - CM5 : Variables de condition et implémentation du problème "producteurs/consommateurs". - Solution au devoir : Programme qui teste le comportement par défaut le la mémoire partagée lors d'un fork. - Exemple d'utilisation d'une variable de condition. Implémentation naïve (non-fonctionnelles) Implémentation avec des sémaphores Implémentation avec des variables de conditions - Barrières de synchronisation (début) - CM6 : - Barrières de synchronisation (suite et fin) Programme ``barriere.c``. - Tubes (début) - TD5 : - Énoncé du TD5. - CM7 : - Tubes (suite et fin) - Exemple d'utilisation d'un tube non-nommé entre processus père et fils. Programme ``tubeFork.c``. - Exemnple d'utilisation d'un fifo entre deux processus non-apparentés. Programme ``fifoEcriture.c``. Programme ``fifoLecture.c``. Interblocages et famine - Exemple de programme créant un interblocage. Programme ``banqueVirtuelle2.c``. - TD6 : - TD6. - TD7 : - TD7. Solution des question 1), 2a) et 2b).
-->