parent
42ba4bd8d9
commit
d3003d6588
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
echo "[`date +%M:%S`](client n°$2) Je demande la ressource."
|
||||||
|
$(semP $1) # opération P sur le sémaphore (obtention de la ressource)
|
||||||
|
echo "[`date +%M:%S`](client n°$2) J'utilise la ressource."
|
||||||
|
sleep 2 # simulation de l'utilisation de la ressource (section critique)
|
||||||
|
echo "[`date +%M:%S`](client n°$2) Je libère la ressource."
|
||||||
|
$(semV $1) # opération V sur le sémaphore (libération de la ressource)
|
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
mutex=$(semC) # Création du sémaphore d'exclusion mutuelle avec initialisation
|
||||||
|
# de sa valeur à 1. L'identificateur du sémaphore est mémorisé
|
||||||
|
# dans la variable mutex.
|
||||||
|
echo "Création du sémaphore d'exclusion mutuelle (id=$mutex)"
|
||||||
|
for i in 1 2 3; do # création de trois processus client
|
||||||
|
./mutex-client $mutex $i & # chaque processus client reçoit en argument:
|
||||||
|
# - l'identificateur du sémaphore d'exclusion mutuelle
|
||||||
|
# - son numéro
|
||||||
|
done
|
||||||
|
wait # Attente de la fin des processus clients
|
||||||
|
$(semD $mutex) # # Suppression du sémaphore d'exclusion mutuelle
|
||||||
|
echo "Suppression du sémaphore d'exclusion mutuelle (id=$mutex)"
|
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
s1=$(semC 0) # Création du sémaphore d'exclusion mutuelle avec initialisation
|
||||||
|
s2=$(semC 0) # de sa valeur à 1. L'identificateur du sémaphore est mémorisé
|
||||||
|
# dans la variable mutex.
|
||||||
|
echo "Création du sémaphore d'exclusion mutuelle (id=$s1)"
|
||||||
|
echo "Création du sémaphore d'exclusion mutuelle (id=$s2)"
|
||||||
|
./rdv-client $s1 $s2 1 & # chaque processus client reçoit en argument:
|
||||||
|
./rdv-client $s2 $s1 2 &
|
||||||
|
# - l'identificateur du sémaphore d'exclusion mutuelle
|
||||||
|
# - son numéro
|
||||||
|
wait # Attente de la fin des processus clients
|
||||||
|
semD $s1
|
||||||
|
semD $s2 # # Suppression du sémaphore d'exclusion mutuelle
|
||||||
|
echo "Suppression des sémaphores d'exclusion mutuelle $s1 et $s2"
|
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
t=$$
|
||||||
|
temps=$(($t%10+1))
|
||||||
|
|
||||||
|
echo "[`date +%M:%S`](client n°$3)"
|
||||||
|
|
||||||
|
sleep $temps
|
||||||
|
|
||||||
|
semV $2
|
||||||
|
echo "[`date +%M:%S`](client n°$3)"
|
||||||
|
semP $1
|
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
RDV=$(semC $1)
|
||||||
|
|
||||||
|
echo "Création du sémaphore d'exclusion mutuelle (id=$RDV)"
|
||||||
|
|
||||||
|
for i in $(seq $1); do
|
||||||
|
./rdvN-client $RDV $i
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
wait # Attente de la fin des processus clients
|
||||||
|
semD $RDV # # Suppression du sémaphore d'exclusion mutuelle
|
||||||
|
echo "Suppression du sémaphore d'exclusion mutuelle (id=$RDV)"
|
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "[`date +%M:%S`](client n°$2) - Je suis au rendez-vous "
|
||||||
|
|
||||||
|
semP $1
|
||||||
|
semZ $1
|
||||||
|
|
||||||
|
echo "[`date +%M:%S`](client n°$2) - Coucou les gars, on se fait un tarot ?"
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
echo "[`date +%M:%S`](client n°$2) - Sympa, a plus"
|
||||||
|
semV $1
|
Loading…
Reference in new issue