Resumo_Pipes
452 palavras
2 páginas
Sistemas Distribuídos System Call
System Call é uma rotina que é implementada pelo SO, o código dela não fica no seu programa. No seu programa só tem a chamada a System Call. Na hora que você faz uma chamada a System Call seu processo sai da CPU e entra no SO para rodar aquela System Call. Isso é devido à segurança, pois vai mexer com áreas sensíveis do sistema como, memória, tabela de processos, descritores de arquivos, etc.
Fork
Fork é uma System Call que cria outro processo igual ao pai e começa a rodar no mesmo ponto que pai esta rodando. O Filho recebe uma copia independente do pai, e não uma copia compartilhada, com isso ele terá os mesmos arquivos abertos do pai, assim como, acesso a teclado, tela, valor de variáveis, pilha, etc. O Fork retorna para o pai o pid do filho e para o filho retorna 0, assim podemos saber se o código que esta sendo executado é o código do pai ou do filho.
Tabela de Descritores
Cada processo possui uma tabela de descritores, e essa tabela possui dois campos, um campo contém o índice e no outro campo um registro contendo várias informações sobre o dispositivo (nome, endereço, posição do dispositivo, de quem é o dispositivo, etc.). Quando você abre um arquivo o que você recebe é um índice para a tabela de descritores.
Pipe
O pipe é um canal de comunicação entre dois processos, ou seja, o que coloca numa extremidade aparece na outra. Ele não tem fronteiras entre mensagens, ele é um Stream (Fluxo) não há separação entre as mensagens.
O pipe possui dois descritores, um descritor para escrita e outro para leitura. Não pode ler e escrever pela mesma extremidade.
O Sistema Operacional toma conta do pipe, ele não fica na área de dados nem no processo pai nem do filho, os processos só tem acesso às extremidades do pipe.
Um problema do pipe é que ele não tem nome, como arquivo, então a única maneira de um processo ter acesso ao pipe é criando o pipe ou herdando um descritor (herdando do processo pai, o processo filho recebe uma