|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Apr 2009
Messaggi: 5
|
produttore- consumatore con variante
ciao a tutti ho bisogno di un aiuto poichè non sono per niente esperta di programmazione in c non so da che parte cominciare con il problema del produttore consumatore. Per la precisione il testo del progetto che devo fare è il seguente:
Implementare una possibile soluzione al problema classico dei produtto- ri/consumatori nella variante in cui esistono C consumatori, P produttori ed un buffer intermedio capace di ospitare N messaggi. Utilizzare i POSIX thread in C sotto Linux scegliendo liberamente gli strumenti di sincroniz- zazione piu` comodi allo scopo (in particolare mutex, condizioni, o semafori per thread). Realizzare la variante in cui gli inserimenti nel buffer risultano non bloc- canti mentre le estrazioni risultano normalmente bloccanti. In particolare, le estrazioni seguiranno la tradizionale semantica secondo la quale un flusso di esecuzione che estrae da un buffer vuoto verra` sospeso in attesa che qualcuno vi deponga nuovi messaggi; al contrario, in caso di inserimento in un buf- fer pieno, il controllo verra` immediatamente restituito al flusso invocante la chiamata di inserimento, che restituisce un apposito codice di segnalazione. Viene esplicitamente richiesto di utilizzare le seguenti segnature, adot- tando l’ipotesi semplificativa che i messaggi siano semplici interi non negativi modellati con il tipo primitivo int, e che il codice di errore da restituire in caso di tentativo di inserimento in un buffer gia` pieno sia -1. // inserimento non bloccante; restituisce -1 se pieno int put(buffer_t * buffer, int msg); // estrazione bloccante; sospende il flusso invocante se vuoto int get(buffer_t * buffer); buffer t è una struttura dati C da definirsi in funzione della soluzione adot- tata, ma che in essenza vuole modellare tutto il necessario per gestire il buffer intermedio su cui operano le due primitive di cui sopra; ad es. piu` o contenere gli indici di accesso (estrazione e inserimento) ed un array di interi che ospiteranno i messaggi. qualcuno mi potrebbe aiutare??? sono veramente nei guai visto che devo consegnarlo lunedì!!! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:28.



















