Sistemi Operativi - 06: Sincronizzazione dei Processi
41 Questions
2 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 (B)

    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. (B)</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 (B)</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 (A)</p> Signup and view all the answers

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

    <p>False (B)</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 (D)</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 (B)</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. (B)</p> Signup and view all the answers

    Un processo deve segnalare quando esce dalla sezione critica.

    <p>True (A)</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. (B)</p> Signup and view all the answers

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

    <p>False (B)</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 (B)</p> Signup and view all the answers

    La starvation implica necessariamente un deadlock.

    <p>False (B)</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 (B)</p> Signup and view all the answers

    I semafori sono considerati sicuri e non possono causare deadlock.

    <p>False (B)</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. (C)</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 (A)</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. (D)</p> Signup and view all the answers

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

    <p>False (B)</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

    Flashcards

    Processo

    Un processo che accede a risorse condivise, come variabili condivise, per modificare il loro valore e per sincronizzare le azioni con altri processi.

    Variabili Condivise

    Variabili il cui valore può essere modificato da più processi simultaneamente, comportando potenziali conflitti.

    Sezione Critica

    Un'area di codice in cui un processo accede a risorse condivise in modo esclusivo per evitare errori di concorrenza.

    Entry Section

    Una porzione di codice che un processo esegue per richiedere l'accesso alla sezione critica.

    Signup and view all the flashcards

    Exit Section

    Una porzione di codice che un processo esegue quando esce dalla sezione critica, per indicare agli altri processi che è disponibile a cedere l'accesso.

    Signup and view all the flashcards

    Mutua Esclusione

    Il requisito che solo un processo possa accedere alla sezione critica in un dato momento. Altri processi devono aspettare che il processo corrente termini.

    Signup and view all the flashcards

    Protocollo di Comportamento

    Un protocollo che regola il comportamento dei processi che accedono a risorse condivise, garantendo la corretta gestione della sezione critica.

    Signup and view all the flashcards

    Errore di Concorrenza

    Un errore che può verificarsi quando più processi cercano di accedere e modificare risorse condivise simultaneamente, portando a risultati imprevedibili.

    Signup and view all the flashcards

    Cooperazione tra Processi

    Diversi processi possono collaborare per un compito comune, spesso condividendo dati. È essenziale che l'accesso ai dati condivisi da parte dei processi non crei dati inconsistenti.

    Signup and view all the flashcards

    Sincronizzazione dei Processi

    I processi che cooperano e condividono dati devono agire in modo ordinato, cioè sincronizzarsi per accedere ai dati condivisi in modo corretto e sicuro, evitando conflitti e incoerenza.

    Signup and view all the flashcards

    Problema della Sezione Critica

    Un processo P che elabora dati condivisi non può sapere quando il sistema operativo lo rimuoverà dalla CPU. Altri processi non devono accedere ai dati fino a quando P non ha terminato l'elaborazione, garantendo la coerenza.

    Signup and view all the flashcards

    Sincronizzazione via Hardware

    Meccanismi hardware come le istruzioni atomiche o le variabili di blocco vengono utilizzati per impedire l'accesso simultaneo ai dati da parte di più processi, garantendo l'integrità.

    Signup and view all the flashcards

    Semafori

    Un semaforo è un oggetto speciale utilizzato per coordinare l'accesso a risorse condivise. Consente di controllare l'accesso a una risorsa, bloccando altri processi fino a quando la risorsa non è disponibile.

    Signup and view all the flashcards

    Esempio: Produttore-Consumatore

    Un produttore produce elementi e li aggiunge a un buffer condiviso, mentre un consumatore preleva elementi dal buffer. La sincronizzazione è necessaria per evitare che il produttore scriva in un buffer pieno o il consumatore legga da un buffer vuoto.

    Signup and view all the flashcards

    Sincronizzazione nel Produttore-Consumatore

    La variabile condivisa 'counter' rappresenta il numero di elementi nel buffer. E' necessario sincronizzare l'accesso a 'counter' tra produttore e consumatore per evitare che il suo valore sia errato.

    Signup and view all the flashcards

    Istruzioni Atomiche

    Nelle istruzioni atomiche, una serie di operazioni viene eseguita come un'unica unità indivisibile, garantendo coerenza anche in presenza di interruzioni. Un esempio è l'istruzione 'fetch-and-add', che legge il valore di una variabile, aggiunge un valore e scrive il nuovo valore in modo atomico.

    Signup and view all the flashcards

    Valore negativo di un semaforo

    Un semaforo con valore negativo indica il numero di processi in attesa su quel semaforo (in wait).

    Signup and view all the flashcards

    Vantaggi dell'implementazione dei semafori con sleep() e wakeup(P)

    L'implementazione dei semafori con sleep() e wakeup(P) consente ai processi utente di gestire sezioni critiche di qualsiasi lunghezza senza sprecare tempo di CPU in busy-waiting o rischiare di cedere il controllo della CPU ad altri processi.

    Signup and view all the flashcards

    Inizializzazione di un semaforo

    Un semaforo può essere inizializzato a un valore intero positivo maggiore di 1 per indicare il numero massimo di processi che possono accedere a una risorsa in modo concorrente.

    Signup and view all the flashcards

    Semafori come struttura di sincronizzazione

    I semafori sono una struttura di sincronizzazione che garantisce l'accesso esclusivo a una risorsa condivisa.

    Signup and view all the flashcards

    Deadlock

    Un problema che si verifica quando due o più processi sono bloccati in attesa di una risorsa che l'altro possiede, creando un ciclo di dipendenza.

    Signup and view all the flashcards

    Semaforo Binario

    Un tipo di semaforo utilizzato per sincronizzare l'accesso a una risorsa condivisa, come un buffer.

    Signup and view all the flashcards

    Problema dei Cinque Filosofi

    Un esempio di problema di sincronizzazione in cui un gruppo di processi compete per utilizzare le risorse di un sistema condiviso.

    Signup and view all the flashcards

    Problema dei Produttori e dei Consumatori

    Un tipo di problema di sincronizzazione in cui un gruppo di processi o thread cooperano per eseguire un'operazione condivisa.

    Signup and view all the flashcards

    Sincronizzazione con i Semafori

    Un metodo di sincronizzazione che utilizza semafori per controllare l'accesso a una risorsa condivisa. Consente di evitare l'accesso non autorizzato e di sincronizzare l'interazione tra i processi o i thread.

    Signup and view all the flashcards

    Starvation

    Un processo non riesce mai a completare la sua esecuzione a causa di una costante mancanza di risorse o di opportunità.

    Signup and view all the flashcards

    Problemi con i Semafori

    Usando i semafori, è facile creare situazioni in cui i processi si bloccano a vicenda, causando un deadlock o una starvation.

    Signup and view all the flashcards

    Esempio di Deadlock

    Un esempio di deadlock che si verifica quando due processi, P0 e P1, si bloccano a vicenda aspettando risorse reciprocamente detenute.

    Signup and view all the flashcards

    Inizializzazione dei Semafori

    L'inizializzazione dei semafori S e Q a 1 potrebbe portare a una situazione di deadlock se i processi P0 e P1 vengono eseguiti concorrentemente.

    Signup and view all the flashcards

    Processo Scrittore

    Un processo che accede ed elabora dati in un file, modificando il suo contenuto.

    Signup and view all the flashcards

    Processo Lettore

    Un processo che legge dati da un file senza modificarne il contenuto.

    Signup and view all the flashcards

    Problema dei Lettori-Scrittori

    Un problema che si verifica quando più processi cercano di accedere simultaneamente a un file condiviso.

    Signup and view all the flashcards

    Semaforo Scrivi

    Un semaforo che controlla l'accesso al file dagli scrittori, garantendo la mutua esclusione.

    Signup and view all the flashcards

    Semaforo Lettura

    Un semaforo che controlla l'accesso al file dai lettori, garantendo la mutua esclusione.

    Signup and view all the flashcards

    Soluzione con Quattro Filosofi

    Una soluzione al problema dei Cinque Filosofi in cui è consentito a massimo quattro filosofi di mangiare contemporaneamente per evitare deadlock.

    Signup and view all the flashcards

    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