.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi e distribuiti (http://www.dsy.it/forum/forumdisplay.php?forumid=270)
-- Programma in C (http://www.dsy.it/forum/showthread.php?threadid=39012)


Posted by Paul442 on 09-09-2009 10:22:

Programma in C

Ciao a tutti, ho provato a dare questo esame 3 volte quest'anno...vorrei sapere se qualcuno può consigliarmi cosa e dove studiare per riuscire a fare il programmino in C che il Professore richiede come cosa necessaria ma non sufficiente per passare questo esame..Ho studiato un po di sintassi C su internet ma nn basta mai per fare poi il programmino durante il compito...
Grazie


Posted by gae84 on 15-09-2009 20:47:

io sto studiando un po' le sue soluzioni del progetto.... e alla fine ho notato che sono sempre le stesse cose che si ripetono.....

del tipo se ci sono i thread si deve fare i controlli su memoria condivisa, controlli sul primo thread controlli sul secondo thread, poi ovviamente aggiungere il corpo dei due thread dopo il corpo del main

oppure ci sono quelli con le fork, lì controlli se la fork viene creata, se il pid è 0 hai un processo figlio che dovrà fare le sue cose, se è 1= 0 è il processo padre con le sue cose, fai le operazioni varie e per farli comunicare su usa sempre la memoria condivisa.

Questo è quello che ho notato io, poi boh magari sto dicendo vaccate su vaccate, però secondo me alla fine non è impossibile (chiariamo che è la prima volta che lo tento, magari poi mi ritrovo all'esame e rimango fregato anch'io)


Posted by Paul442 on 16-09-2009 10:21:

Ma per esempio l'ultimo tema d'esame del 2 settembre saresti stato in grado di farlo? nel senso oltre la difficoltà del C anche la difficoltà della sommatoria del prodotto vettoriale...


Posted by gae84 on 17-09-2009 21:06:

guarda, a vedere la soluzione del prof mi viene da piangere..... perchè devo essere sincero, usa millemila funzioni che nn ho mai visto negli altri esempi suoi... però oggi ho provato a farlo con un mio compagno e concettualmente nn è impossibile come programma.....
io sono riuscito a tirare fuori un programmino che potrebbe anche funzionare in teoria, le operazioni che lui richiede le fa, ma se mi chiedi se fossi in grado di tirar fuori il medesimo sorgente che ha messo il prof sul sito, quello decisamente no

typedef struct{
double a
double b
double prodotto
int lungvet
dim_seg
}

num_thread = lung_vet/dim_seg

main(){
int ripetizioni = lung_vet/num_thread;
for(int i=0; i<num_thread; i++){
//calcolare le posizioni di inizio e fine per ogni thread
base=i*ripetizioni;
fine=base+100;
n = createthread(thread_prod(base, fine));
}
for(i=0; i<num_thread; i++){if()
n = pthread_join(thread[i], NULL);
}
}

thread_prod(int inizio, int fine){
for(int i=inizio; i<fine; i++){
//sveglia thread
prod = (a[i]*b[1]) + prod;
//blocca thread
}
pthread_exit(1);
}

io piuttosto che lasciarglielo in bianco o ritirarmi gli consegnavo una cosa del genere, è molto + semplice rispetto a quello del prof (lui ha fatto una funzione dove esegue il prodotto vettoriale per ottimizzare il codice, io invece ho messo tutto nel corpo del thread) però alla fine penso di essermi avvicinato in qualche maniera alla sua soluzione, poi boh magari ho scritto solo vaccate....


Posted by Paul442 on 18-09-2009 13:42:

Ti ringrazio per il tuo esempio, per altro credo che nel modo in cui l'hai fatto andava benissimo...se ho capito bene a lui basterebbe uno pseudocodice anche con delle funzioni inventate...secondo te cosa posso fare e/o studiare in sti 3 giorni rimanenti per avere delle chance per il programmino in C?


Posted by gae84 on 18-09-2009 13:50:

-funzioni base di (if-else, for, while, input e output.... insomma la roba base)
-fork(creare processo padre e figlio, come si identificano, come mettere in pausa uno dei due, come passare dati da processo padre a figlio)
-thread(come crearli e sincronizzarli)

cmq studiare può servire fino a un certo punto, conterà soprattutto quanto saremo fortunati nel trovare una richiesta + o - fattibile


Posted by Paul442 on 18-09-2009 14:34:

grazie mille....si spero anche io in una richiesta fattibile...


All times are GMT. The time now is 17:27.
Show all 7 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.