3. Majuscules, Shadoks et franges
2. Shadokeries
Le but de cet exercice est d’écrire un programme créant quatre threads (en plus du thread initial). Chacun effectuera une attente de durée aléatoire puis écrira une des lettres de l’alphabet Shadok (GA, BU, ZO et MEU) en fonction de son rang de création. Les threads devront se synchroniser de façon à afficher systématiquement l’alphabet dans l’ordre indépendamment des tirages aléatoires effectués.
Voici le squelette du code C que vous allez compléter dans les questions suivantes :
#define _XOPEN_SOURCE 700
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <ctype.h>
#include <errno.h>
#define NB_SHADOK 4
char *lettre[4]={"GA","BU","ZO","MEU"};
/* Déclaration des variables globales si nécessaire */
void *thread_shadok(void *arg){
/* Code à écrire en question 2 */
}
int main(){
int i;
int *p;
pthread_t tid[4];
srand(time(NULL));
printf("Les shadoks vont commencer\n");
/* Code à écrire en question 1 */
printf("Les shadoks ont fini\n");
return EXIT_SUCCESS;
}
Notes sur 6.
Warning: fsockopen(): unable to connect to ssl://www-master.ufr-info-p6.jussieu.fr:8083 (Connection refused) in /dsk/www-master/html/2016/ecrire/inc/distant.php on line 699
Warning: fsockopen(): unable to connect to ssl://www-master.ufr-info-p6.jussieu.fr:8083 (Connection refused) in /dsk/www-master/html/2016/ecrire/inc/distant.php on line 699
1 Main (2 point(s))
Complétez le code de la fonction main de façon à assurer la création des quatre threads exécutant la fonction thread_shadok
. Vous prendrez garde à passer en paramètre à chaque thread son rang de création et de stocker son tid dans le tableau tid. Votre code doit de plus assurer que l’affichage final "Les shadoks ont fini" ne soit réalisé qu’une fois les quatre threads effectivement terminés.
$PWD/bin/shadok
2 Threads (4 point(s))
Donnez le code de la fonction thread_shadok
réalisant le traitement décrit ci-dessus. La synchronisation entre les threads sera exclusivement réalisée à l’aide de variables conditions. Vous préciserez clairement les déclarations des variables globales le cas échéant.
- Valid CSS 2.1
- Valid XHTML Basic 1.1
- Triple-A conformance Web Content Accessibility Guidelines 2.0
- Valid RSS Atom
-
Calculé le 22 janvier 2021 à 23h39minpar DidacSPIPUniversité Pierre et Marie Curie
- Mobile OK
- SPIP