« 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 16 : | Ligne 16 : | ||
- 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) : |
|||
[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.] |
||
- Entêtes de fonctions POSIX (V) : |
- Entêtes de fonctions POSIX (V) : |
||
Ligne 27 : | Ligne 27 : | ||
[http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp1.pdf Énoncé du TP.] |
[http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp1.pdf Énoncé du TP.] |
||
[http://lama.univ-savoie.fr/~provencal/INFO622/TP/info622-tp1.tgz code fourni.] |
[http://lama.univ-savoie.fr/~provencal/INFO622/TP/info622-tp1.tgz code fourni.] |
||
<!-- |
|||
- TP2 : |
- TP2 : |
||
[http://lama.univ-savoie.fr/~provencal/INFO622/TP/info622-tp2.tgz Fichiers sources, les exercices sont en commentaire dans le fichier tp2.c] |
[http://lama.univ-savoie.fr/~provencal/INFO622/TP/info622-tp2.tgz Fichiers sources, les exercices sont en commentaire dans le fichier tp2.c] |
Version du 1 mars 2015 à 16:38
- Responsable pour 2014--2015: Xavier Provençal
- Intervenants : Xavier Provençal (CM/TD/TP), Afef Denguir-Draoui (TD/TP)
Ouvrage de référence
- 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. - Entêtes de fonctions POSIX (II) : fonctions_POSIX_2.pdf. - Entêtes de fonctions POSIX (III) : fonctions_POSIX_3.pdf. - Entêtes de fonctions POSIX (IV) : fonctions_POSIX_4.pdf. - Entêtes de fonctions POSIX (V) : fonctions_POSIX_5.pdf.
TP
- TP1 : Énoncé du TP. code fourni.
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.
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 condision 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
Matériel supplémentaire
Notes de cours prises pas des étudiants :
Notes de cours d'étudiants