Comunicazione asincrona dalla comunicazione sincrona

0

Studiando la comunicazione tra processi nel sistema operativo, ho scoperto che la comunicazione asincrona può essere costruita sulla comunicazione sincrona. Ma non mi è chiaro come può essere fatto. Mi spieghi ? :)

    
posta Qwerto 18.02.2018 - 16:11
fonte

1 risposta

3

Per prima cosa, penso che abbiamo bisogno di una buona comprensione dei termini Sincrono e Asincrono.

Questi termini si riferiscono non a un messaggio comunicato tra processi ma al modello di invio o ricezione di tale messaggio relativo al calcolo in corso nel processo . Pertanto, la stessa comunicazione - lo stesso messaggio esatto - potrebbe essere asincrona per un processo e sincronizzazione per l'altro.

I / O sincrono viene anche chiamato I / O di blocco; I / O asincrono è un I / O non bloccante. Ancora una volta questi termini evidenziano l'approccio all'invio / ricezione relativo all'informatica interna di un processo di invio o di ricezione (piuttosto che la descrizione della comunicazione stessa).

Se si utilizza I / O sincrono per inviare o ricevere un messaggio, il processo si bloccherà fino a quando il messaggio non sarà completamente inviato o ricevuto. Pertanto, sembrerebbe molto difficile convertirlo in un approccio asincrono.

Tuttavia, è possibile creare un nuovo thread solo per eseguire un'operazione di I / O, mentre il thread principale oi thread esistenti continuano a essere eseguiti. Ciò fornisce un thread sacrificale che bloccherà la richiesta I / O sincrona, mentre gli altri thread possono continuare a essere eseguiti. Pertanto, l'operazione di I / O apparirebbe asincrona al main / altri thread, nonostante l'utilizzo di I / O di blocco nel nuovo thread.

(In assenza di thread, potresti fare lo stesso con più processi.)

    
risposta data 18.02.2018 - 17:10
fonte

Leggi altre domande sui tag