[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Dúvida export
From: |
Felipe Kellermann |
Subject: |
Re: [shell-script] Dúvida export |
Date: |
Sat, 24 Jun 2006 21:19:10 -0300 (BRT) |
User-agent: |
Pine <http://www.washington.edu/pine/> |
On Sat, 24 Jun 2006 8:50pm -0300, Gilberto Martins wrote:
> Olá Felipe.
>
> Achei interessante o teu texto, mas não entendi se vc quis dizer que :
> a) FIFOs têm uma característica chamada de "bloqueante"
Uma leitura/escrita, em UNIX, em um FIFO, faz o processo que está
executando a operação bloquear. Faça um teste assim:
% mkfifo teste
% cat teste
O cat vai ser bloqueado até que exista alguém para escrever. E iria
acontecer o mesmo caso fosse o contrário:
% mkfifo teste
% print palavra > teste
O shell vai ser bloqueado ("travado" por causar uma outra impressão) até
que tenha alguém para ler. Obviamente, existe a opção de leitura ou
escrita não bloqueante. Fiz este suporte na bash há um tempo. Assim tu vai
tentar ler. Se tiver alguma coisa, ótimo. Se não tiver, fica sabendo que
não tinha nada e segue. O mesmo para escrita. Se tinha alguém para ler, a
escrita é feita. Se não tinha, continua normal. Enviei para a lista há um
tempo o patch, eu acho. Se não achar, pode pedir que eu envio mais
informações sobre o assunto.
> b) FIFOs realmente podem provocar travamentos ?
>
Podem, como mostrei nos exemplos. Na zsh existe o zsh/select, que torna
possível o shell fazer um select(2) (uma chamada de sistema que verifica
se existe dado pronto para ser consumido, ou se existe consumidor, etc).
Eu acredito que a melhor referência sobre o assunto sejam os livros do
próprio Tanenbaum, do Stevens ou do Silberschatz, ambos de sistemas. Os
livros deles têm tradução para português.
--
Felipe Kellermann