tp4
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
rebours seconde après seconde à partir d'un nombre passé en arguments. Sur
|
||||
chaque ligne, rebours affiche son pid et le nombre de secondes restantes.
|
||||
```bash
|
||||
[denis@portabledenis SYS-TP1]$ ./rebours 5
|
||||
[denis@portabledenis src]$ ./rebours 5
|
||||
2576552: debut
|
||||
2576552: 5
|
||||
2576552: 4
|
||||
@@ -18,6 +18,39 @@
|
||||
```
|
||||
On utilisera `getpid` et `sleep`.
|
||||
|
||||
2. Complétez [parexec.c](./src/paraexec.c) prend en arguments de ligne de commande un nom de programme prog,
|
||||
suivi d’une liste arbitrairement longue d’arguments, et il exécute prog en parallèle (dans des processus)
|
||||
sur chacun des arguments. Autrement dit, `./parexec prog arg1 arg2 ... argN` exécutera simulta-
|
||||
nément toutes les commandes prog arg1 , prog arg2 ... prog argN chacune dans un processus
|
||||
distinct. Testez avec le programme `rebours`.
|
||||
```bash
|
||||
[denis@portabledenis scr]$ ./parexec ./rebours 1 2 3
|
||||
2586243: debut
|
||||
2586243: 1
|
||||
2586244: debut
|
||||
2586244: 2
|
||||
2586245: debut
|
||||
2586245: 3
|
||||
2586243: fin
|
||||
2586244: 1
|
||||
2586245: 2
|
||||
2586244: fin
|
||||
2586245: 1
|
||||
2586245: fin
|
||||
```
|
||||
On utilisera `fork` et wait`.
|
||||
|
||||
3. Écrivez une version de `paraexec` qui prend un argumant supplémentaire N entre prog et arg1 qui indique
|
||||
le nomnre maximum d'instancesde prog à lancer en parallèle. Lorsque ce nombre est atteint, `parexec` doit attendre la
|
||||
fin d'un de ses fils pour en relancer un nouveau.
|
||||
|
||||
4. Modifiez votre programme `paraexec` pour que si une des instances de `prog` se termine anormalement alors il tue immédiatement
|
||||
toutes les instances puis il quitte.
|
||||
Pour testez, vous pouvez à la console envoyer un signal à un processus executé par `parexec`, ou dans rebours faire une division par
|
||||
zéro, ou utilisé `abort`.
|
||||
|
||||
Utilisez `kill`, `WIFSIGNALED`
|
||||
|
||||
#### Ex2
|
||||
Pour calculer le nombre $\pi$, on utilise la méthode de Monte-Carlo.
|
||||
On tire aléatoirement des couples $(x,y)$ de nombres de
|
||||
|
||||
Reference in New Issue
Block a user