IPC INTERFACE HOMEM MAQUINA
Por: daniloberrr • 8/6/2015 • Trabalho acadêmico • 748 Palavras (3 Páginas) • 307 Visualizações
UNIAN – UNIVERSIDADE ANHANGUERA
ATPS INTERFACE HOMEM MÁQUINA
Nomes:
Bruno de Melo RA: 1299729503
Danilo Bernardes RA: 1299173035
Mauricio Junior RA: 5221966242
Renato Soares RA: 5262953934
Disciplina: Interface Homem Máquina
Professor: Luis Carlos
Curso: Sistemas de Informação
Turma : 6º e 7º semestre
São Bernardo do Campo, 27 de Maio de 2015
IPC (INTER PROCESS COMMUNICATION)
A comunicação entre processos, em inglês Inter-Process Communication (IPC), é o grupo de mecanismos que permite aos processos transferirem informação entre si.
A execução de um processo pressupõe por parte do sistema operativo, entre outras coisas, a criação de um contexto de execução próprio que, de certa forma, abstrai o processo dos componentes reais do sistema. Devido a esta virtualização dos recursos, o processo não tem conhecimento acerca dos outros processos e, como tal, não consegue trocar informação.
Comunicação entre processos fazer referência à coordenação de atividades dentre processos cooperantes;
Exemplo:
- A necessidade de gerenciar o acesso a um determinado recurso do sistema.
- Para que funcione, necessitamos de algum tipo de comunicação Processos;
- Ao criar um processo, o filho herda todo o código e todos os dados do processo pai;
- Nesse momento, cada processo tem um caminho. Para cooperar, realizar tarefas, compartilhar dispositivos, etc., a comunicação é necessária;
A comunicação pode ocorrer através de:
- Pipe;
- Memória Compartilhada Pipes;
Os pipes podem ser:
- Unamed pipes (pipes não nomeados);e
- Named pipes (pipes nomeados) Unamed Pipes
As chamadas da função pipe é feita através de:
- A chamada de sistema write() é utilizada para escrever no pipe
- A chamada de sistema read() é utilizada para ler do pipe
Exemplo:
#include
#include
#include
#include
#define BUFFER 256
int main(void)
{
int fd[2]; /* File descriptors pro Pipe*/
pid_t pid; /* Variável para armazenar o pid*/
/* Criando nosso Pipe */
if(pipe(fd)<0) {
perror("pipe") ;
...