Quali sono stati i lettori-scrittori problema?

Il "problema lettori-scrittori" è un dilemma di programmazione creato quando più lettori e scrittori hanno bisogno di accedere alla stessa risorsa. Se fossero tutti accesso consentito in una sola volta, potrebbero verificarsi problemi come la sovrascrittura, informazioni incomplete, e altre questioni. Pertanto, i programmatori possono limitare l'accesso al controllo che thread di elaborazione consulta la e quando, considerando le esigenze del sistema e gli utenti. Ci sono diversi modi per affrontare il problema dei lettori-scrittori. Una delle soluzioni più comuni implica l'uso di semafori per bandiera di stato e di controllo di accesso.

Da un punto di vista, qualsiasi numero di lettori potrebbe accedere in modo sicuro una risorsa perché non stanno facendo modifiche al contenuto. Una volta che uno scrittore entra nell'equazione, la situazione diventa più complicata. Se un thread sta scrivendo, mentre altri thread sono la lettura, i lettori non possono ottenere le informazioni corrette. Essi potrebbero ricevere solo una parte del cambiamento, o potrebbero vedere le informazioni obsolete e pensare ita € s accurate.

Più di uno scrittore potrebbe anche creare un problema. Modifiche simultanee allo stesso contenuto potrebbero sovrascrivere e creare altri errori. Sotto il problema dei lettori-scrittori, programmatori devono decidere se i lettori o scrittori hanno la priorità, e come gestire l'accesso. I lettori e scrittori potrebbero essere assegnate priorità, o il sistema potrebbe assegnare l'accesso in un primo arrivato, primo servire base. Questa terza soluzione potrebbe impedire lunghe attese, ma potrebbe venire con problemi propri.

In una soluzione in cui i lettori hanno la precedenza, il sistema presuppone che ogni lettore che chiede per l'accesso dovrebbe essere consentito in primo luogo, quando diventa disponibile accesso. Ciò significa che qualsiasi scrittori che vogliono accedere alla risorsa potrebbe essere necessario attendere. Al contrario, il sistema potrebbe supporre che, poiché gli scrittori hanno bisogno di apportare modifiche che potrebbero influenzare i lettori, che dovrebbe essere data priorità del problema lettori-scrittori. Quando un lettore è fatto con una risorsa, uno scrittore potrebbe saltare per fare un cambiamento. Questo non si applica solo alle azioni dell'utente come cercare di salvare un documento, ma di processi interni all'interno del computer che mantenere il sistema in esecuzione.

Un'altra opzione permette il problema lettori-scrittori di bilanciare le esigenze di entrambe le parti, consentendo ad ogni accesso thread di elaborazione come arriva. Questo impedisce scrittori di apportare modifiche che annullano a vicenda o confondere i lettori, senza lasciare i lettori di attesa, o costringendo gli scrittori di tenere mentre i lettori finire. Tali priorità possono essere integrati in un programma software o memoria di controllo di accesso in un computer. Gli utenti possono essere in grado di apportare modifiche se sono confortevoli, con la programmazione e il sistema lo permette.