Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente bannato L'avatar di payens88
    Registrato dal
    Jun 2010
    Messaggi
    235

    Esercizio sui semafori nel problema produttori-consumatori

    salve a tutti avrei un problema con un esercizio di Sistemi Operativi
    questo è il testo:
    Si consideri il problema dei produttori e consumatori, con buffer limitato a m elementi, dove i codici del generico produttore e del generico consumatore sono i seguenti:

    "consumatore " "produttore"

    repeat repeat

    <preleva dato nel buffer> <produci dato>
    <consuma dato> <inserisci dato nel buffer>

    forever forever


    Inserite le opportune operazioni di semafori necessarie per il corretto funzionamento del sistema, indicando chiaramente i semafori necessari ed il loro valore iniziale. Spiegare anche il ruolo svolto dai semafori.

    se sono nella sezione sbagliata chiedo scusa.....

  2. #2
    Questo è il classico esercizio iniziale per spiegare la concorrenza, la soluzione me la ricordo ancora,
    cmq ti consiglio di prendere un libro che lo spieghi bene, come questo qui, sul quale ho studiato:
    W. Stallings, "Operating Systems", 6th ed., Prentice-Hall, 2009.

    Da qualche parte lo trovi...

    codice:
    semaphore sem_buffer = m;     // gestisce il buffer, per vedere se è pieno o vuoto
    semaphore mutex = 1;     // mutex sul buffer
    semaphore z = 0;     // Serve per bloccare il consumatore se non c'è nulla nel buffer
    
    buffer b;     // buffer sul quale lavorare;
    
    Produttore()
    {
         while(1)
         {
              Obj o = produci();
    
              wait(sem_buffer);
              wait(mutex);
                   inserisci(o,b);
              signal(mutex);
              signal(z);
         }
    }
    
    Consumatore()
    {
         while(1)
         {
              Obj o;
              
              wait(z);
              wait(mutex);
                   o = preleva(b);
              signal(mutex);
              signal(sem_buffer);
    
              consuma(o);
         }
    }
    Non ho firme, ma la ferma speranza che compaia una firma automatica ogni qualvolta ci sia bisogno di una firma, fermo restando che la speranza di una firma è l' ultima a morire

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.