Bonjour à tous,
je dois réaliser un exercice pour un cours (Multiprog systèmes dans le cadre d'un diplôme de math). Je bloque sur une question. Mon niveau en Shell est Débutant.
J'ai deux morceaux de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #! /bin/bash # lancement.sh i=0 rm -f fichier rm -f copie while [ $i -lt $1 ] ; do ./ecrivain.sh $i fichier & ./ecrivain.sh $i copie $! & i=expr $i + 1 done
Comme on le voit dans lancement.sh, les appels à ecrivain.sh se font en parallèle et n'assurent donc pas que les fichiers fichier et copie soient identiques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #! /bin/bash # ecrivain.sh inst1 if [ $# -eq 3 ] ; then echo $3 : $1 >> $2 else echo $$ : $1 >> $2 fi
On me demande de modifier uniquement le script ecrivain.sh, pour garantir que fichier et copie soient identiques.
Aide : identifiez la section critique (quand commence-t-elle ? quand finit-elle ?).
De ce que je comprends, j'ai deux outils principaux pour réaliser ceci :
- lockfile => les verrous
- sync => la synchronisation
Même si je maîtrise les deux outils, je ne parviens pas à obtenir le résultat escompté
Merci pour votre aide.
N.
Partager