Algoritmi di Rilevamento del Deadlock
24 Questions
4 Views

Algoritmi di Rilevamento del Deadlock

Created by
@AffablePetra

Questions and Answers

Quale affermazione descrive meglio il deadlock?

  • Situazione in cui i processi non possono continuare a causa di risorse contese (correct)
  • Ricorso illimitato alle risorse
  • Quando un processo completa il suo lavoro senza attese
  • Un processo che richiede più risorse di quelle disponibili
  • L'uccisione di tutti i processi coinvolti in un deadlock è sempre la scelta migliore.

    False

    Come può un sistema ripristinarsi da una situazione di deadlock?

    Attraverso l'uccisione di processi coinvolti o riprendendo le risorse contese.

    La ______ è una situazione in cui i processi non possono proseguire a causa di risorse contese.

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

    Abbina le strategie di risoluzione del deadlock ai loro significati:

    <p>Uccisione selettiva = Eliminazione di alcuni processi basata su priorità Rollback = Ripristino ad uno stato precedente di un processo Algoritmo di rilevamento = Identificazione della presenza di deadlock nel sistema Prelazione delle risorse = Assegnazione temporanea delle risorse ad un processo prioritario</p> Signup and view all the answers

    Qual è il segnale che indica un possibile deadlock?

    <p>Utilizzo della CPU sotto una certa soglia</p> Signup and view all the answers

    Invocare l'algoritmo di rilevamento ad ogni richiesta di risorse è sempre la scelta più economica.

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

    Qual è uno svantaggio delle operazioni di rollback?

    <p>Possono essere particolarmente costose e portare alla starvation.</p> Signup and view all the answers

    Quale delle seguenti affermazioni descrive correttamente il comportamento del 'send' bloccante?

    <p>Aspetta una conferma dalla mailbox o dal ricevente prima di continuare.</p> Signup and view all the answers

    La memoria condivisa è generalmente meno veloce dello scambio di messaggi.

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

    Quale condizione deve essere rispettata affinché il processo P1 possa accedere alle risorse?

    <p>La richiesta di P1 deve essere minore o uguale a Available</p> Signup and view all the answers

    Qual è la funzione utilizzata per creare un segmento di memoria condivisa in POSIX?

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

    Il comando per distaccare un segmento di memoria condivisa è ______.

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

    Il processo P0 ha una necessità di risorse che è sempre soddisfatta durante l'esecuzione.

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

    Abbina le seguenti definizioni con i termini appropriati:

    <p>Bloccante = Aspetta conferma Non-bloccante = Non aspetta conferma Pipe = Comunicazione unidirezionale Memoria Condivisa = Accessi sincronizzati</p> Signup and view all the answers

    Qual è la funzione principale dell'algoritmo di allocazione delle risorse?

    <p>Verificare e allocare le risorse ai processi senza generare deadlock.</p> Signup and view all the answers

    La richiesta di risorse di un processo è considerata _____ se non può essere soddisfatta dalle risorse disponibili.

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

    Quale tipo di pipe è descritto nella comunicazione tra processi?

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

    La sincronizzazione in un sistema a memoria condivisa è gestita dal sistema operativo.

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

    Abbina i processi alla loro necessità di risorse:

    <p>P0 = (7, 4, 3) P1 = (0, 2, 0) P2 = (6, 0, 0) P3 = (1, 0, 0) P4 = (0, 0, 2)</p> Signup and view all the answers

    Qual è il metodo di comunicazione che utilizza un processo per scrivere ad un'estremità e un altro per leggere dall'altra?

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

    Quale processo ha completato con successo l'allocazione delle risorse nel ciclo for?

    <p>Nessuno dei processi</p> Signup and view all the answers

    L'allocazione delle risorse è stata possibile solo se tutti i processi hanno completato la loro richiesta.

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

    Qual è lo stato di 'work' inizialmente?

    <p>{2, 3, 0}</p> Signup and view all the answers

    Study Notes

    Deadlock e Rilevamento

    • Deadlock si verifica quando i processi P1, P2, P3 e P4 non riescono a ottenere le risorse necessarie.
    • Algoritmo di rilevamento dei deadlock invocato ogni N cicli o quando l'uso della CPU scende sotto un certo livello.
    • Invocazione ad ogni richiesta di risorse è sicura ma costosa, scelta più frequente nei sistemi critici.

    Ripristino da Deadlock

    • Due strategie di ripristino: uccisione di tutti i processi coinvolti o recupero delle risorse.
    • Uccidere tutti i processi comporta costi elevati e può causare inconsistenze se interagiscono con periferiche.
    • Uccisione selettiva richiede una politica di priorità per determinare l'ordine di eliminazione.
    • Dopo un'uccisione, è necessario rieseguire l'algoritmo di rilevamento deadlock.
    • Prelazione delle risorse implica una politica per la rimozione delle risorse assegnate.

    Costi e Rischi

    • Rollback totale richiede ripartenza da zero, operazione costosa.
    • Rollback è un meccanismo di ripristino che può portare a situazioni di starvation.

    Esempio di Allocazione Risorse

    • Processo P1 richiede risorse (1, 0, 2) al tempo t1, che è soddisfatta rispetto alla disponibilità (3, 3, 2).
    • Aggiornamento delle tabelle per l'allocazione delle risorse:
      • P1: Allocazione aggiornata a (3, 0, 2).
      • Risorse disponibili aggiornate a (2, 3, 0).
    • Controllo di deadlock tramite algoritmo di richiesta, verificando se i processi possono allocare le risorse.

    Scambio di Messaggi

    • Scambio di messaggi può essere bloccante (sincrono) o non-bloccante (asincrono).
      • Bloccante: invio e ricezione richiedono conferma prima di procedere.
      • Non-bloccante: invio e ricezione avvengono senza attesa di conferma.

    Memoria Condivisa

    • In un sistema a memoria condivisa, un processo crea un segmento condiviso identificato da un nome.
    • Sincronizzazione di accesso a memoria condivisa avviene tramite gestione delle operazioni di lettura e scrittura da parte dei processi.
    • Esempio in POSIX:
      • Creazione del segmento: segment id = shmget(IPC_PRIVATE, size, S_IRUSR | S_IWUSR);
      • Attaccamento al segmento: shared memory = (char *) shmat(id, NULL, 0);
      • Scrittura nel segmento: sprintf(shared memory, "Writing to shared memory");
      • Stacco del segmento: shmdt(shared memory);
      • Eliminazione del segmento: shmctl(shm_id, IPC_RMID, NULL);

    Pipe

    • Le pipe permettono la comunicazione tra processi scrivendo ad un'estremità e leggendo dall'altra.
    • Le pipe sono bloccanti e si dividono in due tipologie, utilizzate per la sincronizzazione dei processi.

    Studying That Suits You

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

    Quiz Team

    Description

    Questo quiz esplora il concetto di deadlock nei sistemi informatici e gli algoritmi utilizzati per rilevarlo. Analizzando le situazioni in cui le risorse non possono essere allocate, comprenderai la frequenza di invocazione degli algoritmi di rilevamento. Metti alla prova le tue conoscenze su questo argomento critico della gestione delle risorse.

    More Quizzes Like This

    Deadlock and Context Switching Quiz
    5 questions

    Deadlock and Context Switching Quiz

    LawAbidingRationality1519 avatar
    LawAbidingRationality1519
    Deadlock Handling Techniques
    5 questions

    Deadlock Handling Techniques

    ProfoundSerendipity avatar
    ProfoundSerendipity
    Operating System Deadlock Strategies
    10 questions
    Use Quizgecko on...
    Browser
    Browser