Esclusione reciproca selettiva nel problema dei filosofi di sala e dei lettori e degli scrittori

4

Ho letto della mutua esclusione selettiva (SME). L'idea che ho è che se un processo compete per le sue risorse contro un sottoinsieme di tutti gli altri processi invece di competere con tutti gli altri processi, allora mi trovo di fronte a un problema SME.

1) Puoi confermare che la mia definizione è giusta?

Ora, il problema dei filosofi della ristorazione è un classico esempio di questo (PMI per prossimità)

2) Nella soluzione distribuita (in cui ogni filosofo compete per entrambi i biforcuti contro altri due filosofi), se invece di 5 filosofi ce ne fossero 3, sarebbe ancora un problema per le PMI? (Penso di no, perché ogni filosofo sarà in competizione con tutti gli altri)

3) E nella soluzione centralizzata "conduttore" , con 5 filosofi, sarebbe ancora una PMI problema? (Penso che lo sarebbe, perché anche se tutti i processi sono in competizione per arrivare al cameriere, ogni filosofo è solo in competizione con due degli altri per ottenere entrambi i fork specificati)

Infine, nel problema di lettori e scrittori (PMI per tipo di processo)

4) Se solo 1 lettore e 1 scrittore fossero autorizzati, sarebbe ancora un problema per le PMI? (Penso di no, perché in realtà ogni processo sarà in competizione con tutti gli altri)

    
posta Mosty Mostacho 15.02.2012 - 04:01
fonte

2 risposte

1

1) Can you confirm my definition is right?

Sì. Tre o quattro riferimenti che ho trovato cercando sul web la concomitanza "esclusione reciproca selettiva" sembrano conformi alla tua comprensione: "se un processo compete per le sue risorse contro un sottoinsieme di tutti gli altri processi invece di competere con tutti gli altri processi "

2) In the distributed solution (in which each philosopher competes for both forks against two other philosophers), if instead of 5 philosophers, there were 3 of them, would it still be a SME problem? (I think not, because each philosopher will be competing with all of the others)

Molto probabilmente si tratterà di una PMI o di qualche sapore di area grigia. Pensa alla forchetta che giace tra i filosofi "primo" e "secondo" - il "terzo" filosofo non lo usa e per questo abbiamo "competizione sottoinsieme", limitata solo a primo e secondo

3) And in the centralized "conductor" solution, having 5 philosophers, would it still be a SME problem? (I think it would, because although all processes are competing to get to the waiter, each philosopher is only competing with two of the other to get both specified forks)

Finché definisci i fork come risorse condivise , sarà comunque SME - perché i filosofi "primo" e "terzo" non avranno risorse condivise (forks) per competere.

Però, se definisci il cameriere come una risorsa (in termini di programmazione questo può essere visto come un singleton con accesso conteso - che non sarebbe un progetto troppo grande, credo) - allora ci sarebbe nessuna PMI dal momento che tutti i filosofi competerebbero per l'accesso a quella singola risorsa condivisa.

4) If only 1 reader and 1 writer were allowed, would it still be a SME problem? (I think not, because actually every process will be competing with all the others)

Non sarebbe una PMI perché nel caso come sopra, l'insieme dei processi consiste precisamente di due (lettore e scrittore), ed entrambi hanno bisogno di accesso alle risorse reciprocamente esclusivo: il lettore non può leggere mentre scrittore scritture e scrittore non possono scrivere mentre il lettore legge.

Affinché la PMI si verifichi in lettori e scrittori , dovrebbe esserci 1) più di un lettore - per creare un sottoinsieme che non compete tra sé e 2) almeno uno scrittore - per stabilire un'esigenza di mutua esclusione tra gli accessi in lettura e in scrittura

  • La linea di fondo è, per scoprire le PMI, è necessario definire con precisione un insieme di processi e un insieme di risorse. E avere una solida conoscenza di mutex , naturalmente.

    Un altro punto da tenere a mente è che lo scopo di questo concetto dall'aspetto sofisticato è piuttosto pratico. Sapere quando alcuni processi non hanno bisogno di competere per una risorsa particolare offre un'opportunità per ridurre la contesa della serratura usando blocchi a grana più fine.
    Il problema Readers-writers è un buon esempio qui. Se scopri che ci sono, ad esempio, dieci lettori che si battono pesantemente per avere accesso ad alcune risorse quando non ce n'è bisogno, rivolgendosi a questo potrebbe rendere la tua applicazione su dieci volte più veloce , vai a capire.
risposta data 15.02.2012 - 10:15
fonte
1

gnat ha detto al punto 2 che con tre filosofi sarebbe un problema anche per le PMI, ma non ne sono sicuro.

la definizione del problema SME in base alla persona che ha posto le domande:

"if a process competes for its resources against a subset of all the other process instead of competing with all the other processes then I'm facing a SME problem."

Quindi, non importa se c'è sempre un fork che uno dei filosofi non usa, perché non si tratta di quante fork (risorse) ci sono, si tratta di quanti processi sono in competizione con ognuno di loro

Di conseguenza, se abbiamo tre filosofi, non abbiamo un problema con le PMI. Tutti i processi (filosofi) sono in competizione con tutti gli altri processi (filosofi) per le sue risorse.

Per favore, correggimi se sbaglio.

    
risposta data 17.02.2018 - 15:43
fonte

Leggi altre domande sui tag