Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi N - Z > Sistemi operativi e distribuiti
 
Programma in C
Clicca QUI per vedere il messaggio nel forum
Paul442
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

gae84
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)

Paul442
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...

gae84
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....

Paul442
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?

gae84
-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

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

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate