Ada MARTINEK 6 months ago
parent 0df808e6fa
commit 29e9f594a8

@ -0,0 +1,8 @@
#!/bin/sh
echo "[`date +%M:%S`](client n°$2) Je demande la ressource."
semP $1
echo "[`date +%M:%S`](client n°$2) J'utilise la ressource."
sleep 2
echo "[`date +%M:%S`](client n°$2) Je libère la ressource."
semV $1

@ -0,0 +1,10 @@
#!/bin/sh
mutex=$(semC)
echo "Création du sémaphore d'exclusion mutuelle (id=$mutex)"
for i in 1 2 3; do
./mutex-client.sh $mutex $i &
done
wait
semD $mutex
echo "Suppression du sémaphore d'exclusion mutuelle (id=$mutex)"

@ -0,0 +1,10 @@
#!/bin/bash
temps=$(($RANDOM%3+3))
sleep $temps
echo "[`date +%M:%S`](client n°$3) semV $2"
semV $2
echo "[`date +%M:%S`](client n°$3) semP $1"
semP $1
echo "[`date +%M:%S`](client n°$3) poursuite"

@ -0,0 +1,13 @@
#!/bin/bash
attendreP2=$(semC 0)
attendreP1=$(semC 0)
for i in 1; do
./rdv-client.sh $attendreP1 $attendreP2 1 &
./rdv-client.sh $attendreP2 $attendreP1 2 &
done
wait
semD $attendreP1
echo "Suppression du sémaphore de rdv (id=$attendreP1)"
semD $attendreP2
echo "Suppression du sémaphore de rdv (id=$attendreP2)"

@ -0,0 +1,10 @@
#!/bin/bash
temps=$(($RANDOM%3+3))
sleep $temps
echo "[`date +%M:%S`](client n°$2) semP $1"
semP $1
echo "[`date +%M:%S`](client n°$2) semZ $1"
semZ $1
echo "[`date +%M:%S`](client n°$2) poursuite"

@ -0,0 +1,10 @@
#!/bin/bash
n=10
rdv=$(semC $n)
for i in $n; do
./rdv-client.sh $rdv $i &
done
wait
semD $rdv
echo "Suppression du sémaphore de rdv"

Binary file not shown.

@ -22,6 +22,7 @@ int main(void)
pid_t pid[MAX_PROC];
int dest;
char msg[MAX_MSG_LEN];
char buf[MAX_MSG_LEN];
int i;
i = 0;
@ -41,19 +42,27 @@ int main(void)
}
if(pid[i] == 0)
{
dup2(fd[i][1], 1);
dup2(1, fd[i][1]);
close(fd[i][1]);
while(fgets(buf, MAX_MSG_LEN, stdin))
{
sscanf(buf, "%d %[^\n]", &dest, msg);
printf("Processus %d a reçu: %s\n", dest, msg);
}
close(fd[i][0]);
exit(0);
}
i++;
}
while(scanf("%d %[^\n]", &dest, msg) != EOF)
/*while(scanf("%d %[^\n]", &dest, msg) != EOF)
{
if(dest >= 0 && dest < N)
{
printf("Processus %d a reçu: %s\n", dest, msg);
write(fd[dest][1], msg, my_strlen(msg) + 1);
fsync(fd[dest]);
}
}
}*/
i = 0;
while(i < N)
{

Loading…
Cancel
Save