Sistemi Operativi - 06: Sincronizzazione dei Processi
41 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Qual è il valore massimo che può avere un contatore di un semaforo per permettere l'uso contemporaneo da parte di più processi?

  • 4
  • 1
  • 3 (correct)
  • 2
  • I semafori possono essere utilizzati solo con l'implementazione di busy-waiting.

    False

    Cosa indica un valore negativo di un semaforo?

    Indica quanti processi sono in attesa su quel semaforo.

    Il contatore del semaforo è inizializzato a ______ se una risorsa può essere utilizzata da tre processi.

    <p>3</p> Signup and view all the answers

    Abbina le seguenti implementazioni ai loro vantaggi:

    <p>Sleep e Wakeup = Riduzione del tempo CPU sprecato Busy-Waiting = Possibilità di bloccare il processo Disabilitazione degli interrupt = Controllo completo della CPU</p> Signup and view all the answers

    Quale delle seguenti affermazioni descrive correttamente il problema del deadlock?

    <p>Il deadlock si verifica quando un processo è in attesa di una risorsa già presa da un altro processo.</p> Signup and view all the answers

    Le operazioni di wait e signal nei semafori sono sempre sicure quando vengono utilizzate in modo indipendente.

    <p>False</p> Signup and view all the answers

    Che cosa rappresenta il semaforo 'full' nel problema dei Produttori-Consumatori?

    <p>Il numero di posizioni piene del buffer.</p> Signup and view all the answers

    Nel problema dei Produttori-Consumatori, i produttori inseriscono i dati in un buffer circolare di SIZE posizioni, mentre i consumatori __________ i dati.

    <p>prelevano</p> Signup and view all the answers

    Abbina i problemi classici di sincronizzazione con le loro descrizioni:

    <p>Produttori-Consumatori = Gestione di dati in un buffer condiviso Lettori-Scrittori = Gestione di accesso concorrente a una risorsa condivisa Cinque Filosofi = Gestione delle risorse limitate tra più entità</p> Signup and view all the answers

    Qual è il problema principale della sezione critica?

    <p>Evitare che i processi accedano a dati inconsistente</p> Signup and view all the answers

    La sincronizzazione è necessaria solo quando i processi non condividono dati.

    <p>False</p> Signup and view all the answers

    Cosa indica la variabile condivisa 'counter' nell'esempio del produttore-consumatore?

    <p>Il numero di elementi nel buffer.</p> Signup and view all the answers

    Un problema nella sincronizzazione si verifica quando il produttore esegue 'counter++' mentre il consumatore esegue 'counter___'.

    <p>counter--</p> Signup and view all the answers

    Quale strumento è comunemente usato per la sincronizzazione dei processi?

    <p>Semaphore</p> Signup and view all the answers

    Un processo può accedere a dati condivisi anche se un altro processo sta lavorando su di essi.

    <p>False</p> Signup and view all the answers

    Abbina i seguenti termini con le loro descrizioni:

    <p>Produttore = Aggiunge dati al buffer Consumatore = Rimuove dati dal buffer Counter = Numero di elementi nel buffer Sezione Critica = Parte del codice che accede a risorse condivise</p> Signup and view all the answers

    Qual è l'importanza della sincronizzazione in sistemi con processi cooperanti?

    <p>Evitare dati inconsistenti e garantire l'ordine nell'accesso ai dati.</p> Signup and view all the answers

    Qual è la funzione principale della sezione critica?

    <p>Stabilire un protocollo di accesso per variabili condivise.</p> Signup and view all the answers

    Un processo deve segnalare quando esce dalla sezione critica.

    <p>True</p> Signup and view all the answers

    Qual è il ruolo della variabile 'counter' nel contesto del produttore-consumatore?

    <p>Controlla il numero di elementi nel buffer.</p> Signup and view all the answers

    Un processo deve ‘____’ per entrare nella sezione critica.

    <p>chiedere il permesso</p> Signup and view all the answers

    Abbina i seguenti componenti del problema della sezione critica con le loro funzioni:

    <p>entry section = Chiede permesso per entrare exit section = Segnala uscita dalla sezione critica sezione critica = Accesso ai dati condivisi counter = Controllo elementi nel buffer</p> Signup and view all the answers

    Quale delle seguenti affermazioni è CORRETTA riguardo alla mutua esclusione?

    <p>Interdice l'accesso alla sezione critica se un processo è già dentro.</p> Signup and view all the answers

    Un processo può avere più sezioni critiche senza la necessità di entry ed exit sections.

    <p>False</p> Signup and view all the answers

    Qual è l'operazione eseguita nella sezione critica del produttore?

    <p>Caricare un elemento nel buffer.</p> Signup and view all the answers

    Quale delle seguenti affermazioni descrive correttamente il deadlock?

    <p>Una situazione in cui ciascun processo aspetta il rilascio di una risorsa detenuta da un altro processo</p> Signup and view all the answers

    La starvation implica necessariamente un deadlock.

    <p>False</p> Signup and view all the answers

    Definisci starvation.

    <p>Un processo è in starvation se non riesce mai a portare avanti la propria computazione.</p> Signup and view all the answers

    Un processo è in _ quando sta aspettando indefinitamente per una risorsa.

    <p>starvation</p> Signup and view all the answers

    In quali situazioni il deadlock non crea problemi?

    <p>Quando nessun processo è coinvolto nel deadlock</p> Signup and view all the answers

    I semafori sono considerati sicuri e non possono causare deadlock.

    <p>False</p> Signup and view all the answers

    Cosa accade se i processi P0 e P1 eseguono il codice fornito in precedenza con i semafori S e Q?

    <p>Può verificarsi un deadlock.</p> Signup and view all the answers

    Quale delle seguenti affermazioni riguardo al problema dei Lettori-Scrittori è corretta?

    <p>Un processo lettore può accedere al file solo se nessun scrittore è attivo.</p> Signup and view all the answers

    La soluzione al problema dei Lettori-Scrittori garantisce l'assenza di deadlock e starvation per lettori e scrittori.

    <p>True</p> Signup and view all the answers

    Cosa deve fare un lettore quando il numero di lettori raggiunge uno?

    <p>Deve attendere che lo scrittore sia libero.</p> Signup and view all the answers

    Un filosofo deve utilizzare due ______ per mangiare.

    <p>bacchette</p> Signup and view all the answers

    Abbina i seguenti concetti con la loro descrizione:

    <p>Semaphore = Strumento per la sincronizzazione dei processi Deadlock = Situazione in cui due o più processi si bloccano a vicenda Starvation = Un processo non riesce a ricevere le risorse necessarie Mutex = Strumento per garantire l'accesso esclusivo a risorse condivise</p> Signup and view all the answers

    Quale delle seguenti soluzioni potrebbe prevenire un deadlock nel problema dei cinque filosofi?

    <p>Utilizzare solo 4 filosofi a tavola contemporaneamente.</p> Signup and view all the answers

    Nel problema dei cinque filosofi, ogni filosofo deve necessariamente prendere una bacchetta prima dell'altra.

    <p>False</p> Signup and view all the answers

    Qual è il principale obiettivo della section critical in un processo scrittore?

    <p>Garantire che solo un scrittore acceda al file alla volta.</p> Signup and view all the answers

    Study Notes

    Sincronizzazione dei Processi

    • I processi possono cooperare per svolgere un compito e spesso condividono dati
    • È fondamentale che l'accesso ai dati condivisi dai vari processi non produca dati inconsistenti
    • I processi che cooperano attraverso dati condivisi devono agire in modo ordinato, sincronizzandosi quando ciascuno di loro vuole accedere a quei dati

    Introduzione

    • Più processi possono cooperare per un determinato compito, spesso condividendo dei dati
    • È cruciale che l'accesso ai dati condivisi non generi dati inconsistenti
    • I processi che condividono dati devono agire in modo ordinato, sincronizzandosi all'accesso dei dati

    Il Problema della Sezione Critica

    • Il problema della sezione critica emerge quando più processi accedono e modificano dati condivisi, dovendo sincronizzarsi per evitare dati inconsistenti.
    • Ogni processo ha una sezione critica, cioè un blocco di codice che manipola variabili condivise, dove l'esecuzione di una sezione critica da parte di un processo deve essere mutualmente esclusiva rispetto all'esecuzione di una sezione critica da parte di un altro processo
    • L'esecuzione di più sezioni critiche da parte di più processi deve essere mutualmente esclusiva, per evitare incongruenze nei dati condivisi.

    Sincronizzazione via hardware

    • Le istruzioni hardware atomiche (come TestAndSet e Swap) possono essere utilizzate per creare sezioni critiche.
    • Queste istruzioni sono atomiche, garantendo che l'operazione avvenga interamente senza interruzioni o sovrapposizioni

    Semaforo

    • Un semaforo è una variabile intera che può essere utilizzata per sincronizzare i processi.
    • Le due operazioni fondamentali su un semaforo sono wait() e signal()

    Esempi di sincronizzazione

    • Produttori e consumatori: i produttori inseriscono elementi in un buffer, i consumatori li prelevano
    • Lettori e scrittori: i lettori leggono un file, gli scrittori lo modificano
    • Cinque filosofi: i filosofi condividono delle bacchette per mangiare, dove l'accesso alle risorse deve essere sincronizzato

    Deadlock

    • Si verifica quando un insieme di processi sono bloccati in attesa di eventi che non si verificheranno mai
    • Un processo è bloccato quando non può proseguire la sua attività perché aspetta un evento che non si verificherà, rimanendo in stallo

    Starvation

    • Un processo sta vivendo starvation se non riesce mai ad accedere a una risorsa o ad eseguire una certa operazione.
    • ciò accade a causa di una pianificazione del processore errata o di fattori analoghi

    Utilizzo di Semafori per risolvere il problema della Sezione Critica

    • I semafori mutex sono essenziali per l'accesso mutualmente esclusivo a una sezione critica
    • La soluzione con i semafori assicura una corretta sincronizzazione e previene situazioni di deadlock

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Questo quiz esplora la sincronizzazione dei processi e il problema della sezione critica. Scoprirai come i processi possono cooperare e condividere dati senza causare inconsistenze. È fondamentale comprendere come coordinare l'accesso ai dati condivisi per mantenere l'integrità.

    More Like This

    Use Quizgecko on...
    Browser
    Browser