Département INFormatique |
|||
CSC4508/M2 : Concepts des systèmes d'exploitation et mise en œuvre sous Unix | |||
Contenu | |||
ThreadsVariante de l'exercice fil rouge du TP du chapitre Communication inter-processus: gestion des impressions.Exercice : gestion des impressions1. Un thread par impression
On reprend le programme
Visualisez les différents threads avec la commande 2. Synchronisation autour de l'imprimanteReprendre le programme précédent pour que les threads ne mélangent pas leurs impressions à l'imprimante. Question (de réflexion) 2.1: synchronisationQuel est le type de synchronisation à mettre en place entre les threads chargés de l'impression? Question 2.2: implantationImplanter avec un mutex de la bibliothèque POSIX thread. 3. Utilisation d'une zone tampon circulaireOn ne crée plus un thread à chaque demande d'impressions. On crée au préalable un ensemble de threads de taille MAXNBTHREADS = 3 threads. Chaque thread se met en attente d'une impression, imprime puis se met en attente d'une nouvelle impression. De plus, une zone tampon circulaire contenant de taille MAXNBIMPRESSIONS = 5 est utilisée pour stocker la file d'impressions. L'accès à l'imprimante reste exclusif. Question (de réflexion) 3.1: synchronisationQuel est le type de synchronisation à mettre en place entre le thread principal et les autres threads? Écrire l'algorithme sur papier. Question 3.2: implantation avec sémaphoresÉcrire ce programme en utilisant des sémaphores POSIX. Question 3.3: implantation avec conditionsÉcrire ce programme en utilisant des conditions. 4. Terminaison de l'application
Le thread producteur s'arrête lorsque l'utilisateur tape
Pour aller plus loinVariante de l'exercice fil rouge du TP du chapitre Client-Serveur: MetMme.Exercice M. et Mme...Dans cet exercice, on se propose d'écrire un serveur de "M. et Mme" :
Architecture client/serveur
Attention: repartir des corrigés du chapitre client-serveur: Question 1: création de threads à la voléeProgrammer le serveur de sorte que le thread principal crée un thread à chaque fois qu'il reçoit une requête. Le nouveau thread ouvre le fichier "M. et Mme" et traite la requête:
Question 2: création au préalable d'un ensemble de threads et utilisation d'une zone tampon circulaire
Programmer le serveur de sorte que le thread principal crée un
pool de
| |||
Last modified: Tue April 07 10:45:34 CEST 2015 |