Sistemi di Calcolo

Corso di Laurea in Ingegneria Informatica e Automatica - A.A. 2017-2018

HomePage | Avvisi | Diario lezioni | Programma | Materiale didattico | Esami | Forum | Login

Revision [3327]

Last edited on 2017-11-20 22:01:01 by CamilDemetrescu
Additions:
if (pid == 0) { // codice eseguito dal figlio
// codice eseguito dal genitore


Revision [3326]

Edited on 2017-11-20 22:00:20 by CamilDemetrescu
Additions:
printf("[figlio] proc=%d [genitore=%d]\n", getpid(), getppid());
printf("[figlio] terminato\n");
printf("[gen] processo %d e' terminato con stato %d\n", c, status);
printf("[figlio] proc=%d [genitore=%d]\n", getpid(), getppid());
Deletions:
printf("[figlio] proc=%d [genitore=%d]\n",
getpid(), getppid());
printf("[figlio] terminato [genitore=%d]\n", getppid());
printf("[gen] processo %d e' terminato "
"con stato %d\n",
c, status);
printf("[figlio] proc=%d [genitore=%d]\n",
getpid(), getppid());


Revision [3325]

Edited on 2017-11-20 21:59:19 by CamilDemetrescu
Additions:
Altro esempio di ##fork##: genitore termina prima del figlio, che prende come nuovo genitore un altro processo antenato nell'albero dei processi.
Deletions:
Esempio di ##fork##: genitore termina prima del figlio, che prende come nuovo genitore un altro processo antenato nell'albero dei processi.


Revision [3324]

Edited on 2017-11-20 21:57:11 by CamilDemetrescu
Additions:
Esempio di ##fork##: genitore attende terminazione del figlio, con figlio che rimane zombie finché il genitore non ne recupera con ##wait## lo stato di terminazione.
%%(c;myfork.c)
#include // fork
printf("[gen] sto per fare una fork, sono %d!\n",
getpid());
pid_t pid = fork();
if (pid == 0) {
printf("[figlio] proc=%d [genitore=%d]\n",
getpid(), getppid());
printf("[figlio] terminato [genitore=%d]\n", getppid());
_exit(13);
}
int status;
sleep(40);
pid_t c = wait(&status);
printf("[gen] processo %d e' terminato "
"con stato %d\n",
c, status);
printf("[gen] terminato\n");
return 0;
Esempio di ##fork##: genitore termina prima del figlio, che prende come nuovo genitore un altro processo antenato nell'albero dei processi.
%%(c;myfork2.c)
#include // fork, getpid, getppid
printf("[gen] sto per fare una fork, sono %d!\n", getpid());
pid_t pid = fork();
if (pid == 0) {
printf("[figlio] proc=%d [genitore=%d]\n",
getpid(), getppid());
sleep(40);
printf("[figlio] terminato dopo il padre [nuovo genitore=%d]\n", getppid());
_exit(13);
}
printf("[gen] terminato prima del figlio\n");
return 0;


Revision [3323]

The oldest known version of this page was created on 2017-11-20 21:53:31 by CamilDemetrescu
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.0205 seconds