Domanda

solo un rapido relativo a stati di sicurezza / non sicure di Dijkstra algoritmo del banchiere .. .

Se uno dei processi nel snapshot del sistema (ad esempio quello in basso) ha già tutte le sue esigenze soddisfatte e non ci sono risorse sufficienti per soddisfare le esigenze di uno qualsiasi degli altri processi, è il sistema di uno stato sicuro? So che di solito diamo per scontato che una volta che un processo riceve le risorse necessarie che terminerà subito dopo e restituire tutte le risorse, ma è questo presupposto presi in considerazione quando si calcola lo stato del sistema?

  Allocated        Maximum     Available

    | A | B         | A | B      A | B
 ---+---+---     ---+---+---    ---+---
 P1 | 1 | 2      P1 | 1 | 2      1 | 3
 P2 | 5 | 3      P2 | 7 | 8    

Modifica

Solo per fare la mia domanda un po 'più chiaro: è il sistema nel precedente esempio in uno stato sicuro o uno stato non sicuro? Dobbiamo supporre che le richieste di P2 vengono ritardati fino al ritorno P1 risorse, al quale le richieste punto di P2 possono essere soddisfatte e quindi il sistema è sicuro, o è il sistema non sicuro perché, al momento nessuna delle possibili richieste può essere soddisfatta?

È stato utile?

Soluzione

Il sistema è in uno stato sicuro, perché Process 1 può essere eseguito. Quando finisce, ci saranno abbastanza copie di risorsa A e la risorsa B per il processo di 2 per terminare. Pertanto, esiste un "programma" con cui il sistema può eseguire i propri processi al completamento. Questo significa che è sicura.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top