Newsgroup: it.comp.os.linux.development
Titolo: Interrompere e riprendere l'esecuzione dei processi

Non ho mai usato clone() e avrei bisogno di aiuto.
Se la invoco passandogli il puntatore alla funzione da eseguire viene creato
il processo figlio(presumo), ma cosa devo fare esattamente per farlo
eseguire.
Esattamente dovrei:
1. Creare processo figlio, interrompere processo padre e eseguire processo
figlio.
2. Terminata l'esecuzione del figlio continuare e terminare l'esecuzione del
padre.
Sapete come fare?
O dove trovare le informazioni che mi servono?

figlio.
Non si puo` interrompere un processo, non hai controllo sullo scheduler.
-- 
ciao, |
Marco | * The Internet is full. Go away.  -- Joel Furr *
      | (Ri)scoprire fidonet: 
http://bbs.mi.linux.it

 ha scritto nel messaggio
news:0t39660618i7adn3e9%m...@wonderland.linux.it...


 wrote in message
| Comunque il mio non è un programma ad alto livello.
| Mi serve per testare delle system call che ho introdotto
| e devo evidenziare la risoluzione di una race condition.
Se devi lavorare con lo scheduler, e hai il gcc con support ai posix
thread, ti conviene usare questi ultimi.
Con un paio di semafori o di mutex sospendi il thread in cui vuoi testare
le system call.
agendo sui pthread_attr_t, puoi definire schedpolicy e schedparam.
Per terminarlo, pthread_cancel() dal padre, pthread_setcanceltype() e
pthread_setcancelstate()
ulteriori info su pthread.h stesso, e sul thread howto.
Walter



 padre.
Prova a dare un'occhiata a vfork().
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)


man wait4

 ha scritto nel messaggio
news:8k6pt0$ieo$1...@fe1.cs.interbusiness.it...> Paolo Romano


 è che mi sapresti dire qualcosa pure per 'ste cose?
se la memoria non mi inganna esistono dei segnali appositi da poter
utilizzare: 
kill(pid, SIGSTOP) per fermarlo
kill(pid, SIGCONT) per riprenderne l'esecuzione.
Ciao,
Fabio Alemagna

 wrote in message
| Vedi il problema è che 'sta cosa la dovrei usando clone() xchè mi è stato
| espressamente richiesto di fare così (leggasi il prof. m'ha detto di
| usare clone ma mi ha liquidato dicendomi di leggermi la man).
e proprio dalla man leggi:
Linux 2.0.33              25 april 1998                         3
CLONE(2)            Linux Programmer's Manual            CLONE(2)
CONFORMING TO
       The  __clone call is Linux-specific and should not be used
       in programs intended  to  be  portable.   For  programming
       threaded  applications (multiple threads of control in the
       same memory space), it is better to use a  library  imple­-
       menting   the  POSIX  1003.1c  thread  API,  such  as  the
       LinuxThreads library.  See pthread_create(3thr).
| A quanto mi
| risulta la cosa con pthread è uguale solo che è la versione posix
| compliant mentre con clone si creano lightweight processes specifici per
| ambiente Linux. Non è che mi sapresti dire qualcosa pure per 'ste cose?
'nzomma, con clone lo scheduler non lo vedi manco da lontano...
casomai, prova a leggere pthrad.h e il sorgente della libpthread.so, e' nei
sorgenti del kernel, anche se non credo sia una stupidaggine...
se pero' il problema e' solo interrompere l'esecuzione del padre e
aspettare il figlio, con una waitpid() dovresti risolvere...

 wrote in message
| Vedi il problema è che 'sta cosa la dovrei usando clone() xchè mi è stato
| espressamente richiesto di fare così (leggasi il prof. m'ha detto di
| usare clone ma mi ha liquidato dicendomi di leggermi la man).
e proprio dalla man leggi:
Linux 2.0.33              25 april 1998                         3
CLONE(2)            Linux Programmer's Manual            CLONE(2)
CONFORMING TO
       The  __clone call is Linux-specific and should not be used
       in programs intended  to  be  portable.   For  programming
       threaded  applications (multiple threads of control in the
       same memory space), it is better to use a  library  imple­-
       menting   the  POSIX  1003.1c  thread  API,  such  as  the
       LinuxThreads library.  See pthread_create(3thr).
| A quanto mi
| risulta la cosa con pthread è uguale solo che è la versione posix
| compliant mentre con clone si creano lightweight processes specifici per
| ambiente Linux. Non è che mi sapresti dire qualcosa pure per 'ste cose?
'nzomma, con clone lo scheduler non lo vedi manco da lontano...
casomai, prova a leggere pthread.h e il sorgente della libpthread.so, e'


 ha scritto nel messaggio
news:8kafvj$ai6$1...@fe2.cs.interbusiness.it...
