Repository 32bit  Forum
Repository 64bit  Wiki

Programmazione Concorrente[RISOLTO]

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
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 della regola 5 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 10: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 11:13, modificato 1 volta in totale.
afterjames
Linux 1.0
Linux 1.0
 
Messaggi: 64
Iscritto il: lun gen 14, 2008 14:14

Re: Programmazione Concorrente

Messaggioda JohnnyMnemonic » mar mag 06, 2008 10: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: 2732
Iscritto il: sab set 04, 2004 23:00
Località: Bologna
Nome Cognome: Giuseppe Palmiotto
Slackware: 14.0
Kernel: 3.5.5-thanatos

Re: Programmazione Concorrente

Messaggioda afterjames » mar mag 06, 2008 11: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 14:14

Re: Programmazione Concorrente

Messaggioda 414N » mar mag 06, 2008 16: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: 2882
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Programmazione Concorrente

Messaggioda ZeD » mar mag 06, 2008 17: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 11:30
Località: Terra
Slackware: 12.1

Re: Programmazione Concorrente

Messaggioda FireEater » mar mag 06, 2008 18: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 0: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 20: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 14:14

Re: Programmazione Concorrente

Messaggioda afterjames » mar mag 06, 2008 20: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 14:14


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite