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
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html