add system's tp

master
antoine.perederii 1 year ago
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…
Cancel
Save