Shell Exercice lockfile Sync
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:
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 |
Code:
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 |
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.
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.