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