Repository 32bit  Forum
Repository 64bit  Wiki

Programmazione Concorrente[RISOLTO]

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza dell'ultima regola porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Programmazione Concorrente[RISOLTO]

Messaggioda afterjames » mar mag 06, 2008 11:39

Salve a tutti, ho bisogno di fare esercizi sulla programmazione concorrente (clone,fork, etc.).Qualcuno ha del materiale da consigliarmi?Grazie in anticipo
Ultima modifica di afterjames il gio mag 08, 2008 12:13, modificato 1 volta in totale.
afterjames
Linux 1.0
Linux 1.0
 
Messaggi: 64
Iscritto il: lun gen 14, 2008 15:14

Re: Programmazione Concorrente

Messaggioda JohnnyMnemonic » mar mag 06, 2008 11:43

Se parliamo di linguaggio C un ottimo punto di partenza è il GAPIL di Simone Piccardi, trovi facilmente la versione pdf scaricabile liberamente
Avatar utente
JohnnyMnemonic
Staff
Staff
 
Messaggi: 2729
Iscritto il: dom set 05, 2004 0:00
Località: Bologna
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos

Re: Programmazione Concorrente

Messaggioda afterjames » mar mag 06, 2008 12:44

Conosco la Gapil!A me serviva qualcosa di specifico su clone e fork..Senza usare la pthread.Più che altro esercizi.
afterjames
Linux 1.0
Linux 1.0
 
Messaggi: 64
Iscritto il: lun gen 14, 2008 15:14

Re: Programmazione Concorrente

Messaggioda 414N » mar mag 06, 2008 17:13

Questa è la home page del corso di Sistemi Operativi L-A della facoltà di ingegneria di Bologna. Trovi slides di teoria e anche di esercizi su fork, pipe e compagnia bella.
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2845
Iscritto il: mer feb 13, 2008 17:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Programmazione Concorrente

Messaggioda ZeD » mar mag 06, 2008 18:12

se vuoi studiare la programmazione concorrente butta il C e studiati erlang :)
Avatar utente
ZeD
Linux 2.0
Linux 2.0
 
Messaggi: 112
Iscritto il: ven ott 28, 2005 12:30
Località: Terra
Slackware: 12.1

Re: Programmazione Concorrente

Messaggioda FireEater » mar mag 06, 2008 19:34

http://ulisse.polito.it/matdid/3ing_inf_N5030_TO_0/indexProgetto.html questa la pagina dell'esame di tecnologia dei sistemi operativi del politecnico di Torino.
Se vuoi ti posso spedire anche altro materiale, ho dato l'esame 2 settimane fa. 8)
Avatar utente
FireEater
Linux 2.6
Linux 2.6
 
Messaggi: 508
Iscritto il: sab feb 05, 2005 1:00
Località: Cagliari <---> Torino
Nome Cognome: Giuseppe M.
Slackware: Current
Kernel: 2.6.32.7-smp
Desktop: kde 4.3.4

Re: Programmazione Concorrente

Messaggioda afterjames » mar mag 06, 2008 21:23

Grazie a tutti..A me serve qualcosa principalmente sulla Clone.Vi pongo questa domanda,e scusate l'inesperienza.Ho scritto questa cosa:
Codice: Seleziona tutto
#include<stdio.h>
#include<stdlib.h>
#include<sched.h>
#include<signal.h>
#include<unistd.h>
int flag=5;
int clone_function(){
while(1){
   pause();
   printf("Sono nella clone..\n");

   
   }

_exit(0);
}
void gestore_segnale(){

   printf("Gestore Decremento\n");
   flag--;

}
int main(int argc,char **argv){

char stack[1024];
int i;
signal(SIGUSR1,gestore_segnale);
int pid=clone(clone_function,&stack[1024],CLONE_VM,NULL);

for(i=0;i<5;i++){
   
   printf("Invio un segnale..\n");
   kill(pid,SIGUSR1);       //invio 5 segnali intervallati da attese di 2 secondi
   sleep(2);
}
printf("Elimino il clone..\n");
kill(pid,SIGKILL);
printf("Flag %d\n",flag);

return 0;

}



Dalle specifiche dell'esercizio si richiedeva di inviare 5 segnali al clone intervallati da due secondi di attesa.Il Clone deve semplicemente aspettare di ricevere un segnale e stampare un messaggio.Funziona.Ma se provo a commentare la
Codice: Seleziona tutto
printf("Invio un segnale..\n");

Il programma si blocca prima ed ottengo un segmentation_fault durante l'esecuzione!Non è la prima volta che mi capitano queste stranezze con la clone, qualcuno saprebbe aiutarmi?
afterjames
Linux 1.0
Linux 1.0
 
Messaggi: 64
Iscritto il: lun gen 14, 2008 15:14

Re: Programmazione Concorrente

Messaggioda afterjames » mar mag 06, 2008 21:49

Ho aumentato la dimensione dello stack e funziona.Secondo voi quanto deve essere grande per stare tranquillo?
afterjames
Linux 1.0
Linux 1.0
 
Messaggi: 64
Iscritto il: lun gen 14, 2008 15:14


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite