Trabalhos

1087 palavras 5 páginas
Comunicação entre processos - Pipes
Os pipes em UNIX constituem um canal de comunicação unidirecional entre processos com um ascendente comum (entre um pai e um seu descendente). Uma vez estabelecido o pipe entre os processos, um deles pode enviar “mensagens” (qualquer sequência de bytes) para o outro. O envio e recebimento destas “mensagens” é feito com os serviços normais de leitura e escrita em ficheiros - read() e write(). Os pipes possuem descritores semelhantes aos dos ficheiros.
Quando se cria um pipe o sistema retorna, para o processo que chamou o serviço de criação, dois descritores que representam o lado de escrita no pipe e o lado de leitura no pipe. Inicialmente esses descritores pertencem ambos a um processo. Quando esse processo lança posteriormente um filho este herdará esses descritores (herda todos os ficheiros abertos) ficando assim pronto o canal de comunicação entre os dois processos.
Consoante o sentido de comunicação pretendido deverá fechar-se, em cada processo, um dos lados do pipe (ver a figura seguinte).

Funcionamento de pipes
Assim, para criar um pipe num processo deve invocar-se o serviço:
#include
int pipe(int filedes[2]);
Retorna 0 no caso de sucesso e -1 no caso de erro. API do sistema operativo UNIX
Sistemas Operativos - Miguel Pimenta Monteiro 40
Deve passar-se ao serviço pipe() um array de 2 inteiros (filedes) que será preenchido pelo serviço com os valores dos descritores que representam os 2 lados do pipe. O descritor contido em filedes[0] está aberto para leitura - é o lado receptor do pipe. O descritor contido em filedes[1] está aberto para escrita - é o lado emissor do pipe.
Quando um dos lados do pipe está fechado e se tenta uma operação de leitura ou escrita do outro lado, aplicam-se as seguintes regras:
1. Se se tentar ler de um pipe cujo lado emissor tenha sido fechado, após se ter lido tudo o que porventura já tenha sido escrito, o serviço read() retornará o valor

Relacionados

  • Trabalhos trabalhos trabalhos
    822 palavras | 4 páginas
  • TRABALHO DE TRABALHO
    316 palavras | 2 páginas
  • Trabalho De Trabalho
    3827 palavras | 16 páginas
  • Trabalho trabalho
    2154 palavras | 9 páginas
  • Trabalho De Trabalho
    1631 palavras | 7 páginas
  • trabalho de trabalho
    3062 palavras | 13 páginas
  • trabalho de trabalho
    7228 palavras | 29 páginas
  • Trabalho é trabalho
    2191 palavras | 9 páginas
  • Trabalho de Trabalho
    1572 palavras | 7 páginas
  • Trabalho de trabalho
    8207 palavras | 33 páginas