Pipe (informatica): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m (perché urlato?) |
|||
Riga 18:
}}</ref>
In maniera analoga, nei sistemi operativi [[Microsoft Windows]] una ''pipe'' convenzionale è denominata '''anonymous pipe''' ed è usabile tramite una coppia di [[
Il flusso di dati scritto da un processo ('''scrittore''') sul descrittore di file o
Il buffer viene usato come meccanismo di sincronizzazione tra i due processi: quando si riempie, il processo scrittore viene sospeso nell'operazione di scrittura fino a quando il lettore non ha prelevato una parte dei dati; quando il buffer si svuota il lettore viene sospeso nell'operazione di lettura fino a quando lo scrittore non ha inviato nuovi dati.
I due processi che comunicano attraverso una ''pipe'' devono in qualche modo scambiarsi i descrittori di file o
* nei sistemi operativi Unix e Unix-like un processo può creare una ''pipe'' tramite l'apposita chiamata di sistema e poi creare un [[processo figlio]] tramite la chiamata di sistema [[fork (programmazione)|fork]], il quale eredita i descrittori di file del padre: il processo padre può inviare dati al processo figlio scrivendo sul descrittore di file aperto in scrittura, mentre il processo figlio li può ricevere leggendolo dall'altro descrittore di file (aperto in lettura). Questo metodo richiede che tra i due processi esista una relazione di parentela. Altri metodi richiedono lo scambio di descrittori di file mediante un ''[[socket (reti)|socket]]'' in dominio Unix.<ref>{{cita libro
|autore=W. Richard Stevens
Riga 35:
|pagine=306-312
}}</ref>
* nei sistemi operativi [[Microsoft Windows]] un processo può creare una ''anonymous pipe'' tramite l'apposita chiamata di sistema, e poi creare un nuovo processo con cui condividere gli [[
===FIFO o named pipe===<!-- referenziato da "Named pipe"-->
Se due processi che devono comunicare tra loro con una ''pipe'' sono del tutto separati (ovvero non hanno modo di scambiarsi tra loro dei descrittori di file o
In questo modo, un processo può offrire un servizio ad altri processi aprendo una ''named pipe'' in una posizione nota del ''file system''.
|