Processi concorrenti
Vernia Damiano
melkor.x a tiscali.it
Lun 16 Feb 2004 11:24:00 UTC
Ciao, finalmente sono riuscito a far partire in modo concorrente
(e pultito) un numero specificato e costante di processi. Forse puo'
servire e quindi ecco lo scriptino bash:
#################################################################
#!/bin/bash
INDICE=8 # Numero totale di processi da avviare
TEMPO=5 # Massimo tempo d'attesa simulazione processo
NUMPROC=$1 # Numero di processi concorrenti
shift
PARAMETRI=( "$@" ) # Parametri per ogni processo
function avvia() { # Avvia un singolo processo
local temp
temp=$RANDOM
let "temp %= $TEMPO"
let "temp += 1"
echo Inizio $1 $temp "${PARAMETRI[@]}"
sleep ${temp}
echo Fine $1 $temp
kill -s SIGRTMIN $$ # Avvisa per avviare un nuovo processo
}
function parti() {
if [ $INDICE -gt 0 ] ; then
avvia $INDICE "${PARAMETRI[@]}" &
let "INDICE--"
else
trap : SIGRTMIN
fi
}
trap parti SIGRTMIN
while [ "$NUMPROC" -gt 0 ]; do # Avvia $NUMPROC processi concorrenti
parti;
let "NUMPROC--"
done
wait
trap - SIGRTMIN
#############################################################
Puo' essere utile su sistemi multiprocessore!
Qualcuno sa indicarmi un segnale un po' piu' intelligente da usare?
--
Ciriciao
LtC. Melkor?! B. Xapatan
Maggiori informazioni sulla lista
Lug
|