Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C] Info su algoritmo Sezioni Critiche

    Ciao a tutti,
    scusate avevo inserito un post sbagliato...

    ho fatto un mezzo casino

    la mia domanda era rivolta a questo segmento di codice :

    codice:
    while (1){
                  choosing[i] = true;
                  number[i] = max(number[0],...,number[n-1]) + 1 ;
                  choosing[i] = false;
    
                  for (j=0;j<n;j++){
                                while (choosing[j]);
                                while (number[j] !=0 && (number[j],j) < (number[i],i));
                  }
                  Sezione critica
                  number[i] = 0;
                  sezione non critica;
    }
    Premessa :

    la struttura choosing è inizializzata a false;
    la struttura number è inizializzata a 0;

    a cosa serve il primo while nel ciclo for se la condizione (choosing[j]) non è mai verificata ??

  2. #2
    Utente di HTML.it L'avatar di ibykos
    Registrato dal
    Feb 2005
    Messaggi
    201
    Se hai preso questo codice da un documento in cui si spiegano le sezioni critiche, serve a fare aspettare il programma che lo esegue fintantò che un processo esterno non modifichi il valore di choosing[j], altrimenti quel while bloccherebbe il programma all'infinito.
    Se ci ho preso, choosing è una variabile condivisa e rappresenta il vettore dei processi che utilizzano la risorsa.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.