« 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 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).] |
||
<!-- |
<!-- |
||
Version du 18 janvier 2016 à 09:55
- 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).
TP
Déroulement (2015-2016)
- 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)
Archives
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). - 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).