6. Comunicação entre processos - Pipes
|
|
|
- Célia Bergmann Paiva
- 10 Há anos
- Visualizações:
Transcrição
1 6. Comunicação entre s - Pipes 6.1 O que são pipes Os pipes em UNIX constituem um canal de comunicação unidirecional entre s com um ascendente comum (entre um pai e um seu descendente). Uma vez estabelecido o pipe entre os s, 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 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. Quando esse 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 s. Consoante o sentido de comunicação pretendido deverá fechar-se, em cada, um dos lados do pipe (ver a figura seguinte). fork pipe pipe kernel kernel Criação do pipe Após um fork( ) fork pipe kernel Depois de se fechar uma extremidade em cada 6.2 Criação e funcionamento de pipes Assim, para criar um pipe num deve invocar-se o serviço: <unistd.h> int pipe(int filedes[2]); Retorna 0 no caso de sucesso e -1 no caso de erro. Sistemas Operativos - Miguel Pimenta Monteiro 39
2 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 0, indicador de fim de ficheiro. 2. Se se tentar escrever num pipe cujo lado receptor já tenha sido fechado, gera-se o sinal SIGPIPE e o serviço write() retorna um erro (se SIGPIPE não terminar o, que é a sua acção por defeito). Exemplo - estabelecimento de um pipe entre pai e filho <unistd.h> <stdlib.h> <stdio.h> <sys/types.h> int main(void) int n, fd[2]; pid_t pid; char line[maxline]; if (pipe(fd) < 0) fprintf(stderr, "pipe error\n"); exit(1); if ( (pid = fork()) < 0) fprintf(stderr, "fork error\n"); exit(2); else if (pid > 0) /* pai */ close(); /* fecha lado receptor do pipe */ write(, "hello world\n", 12); else /* filho */ close(); /* fecha lado emissor do pipe */ n = read(, line, MAXLINE); write(stdout_fileno, line, n); exit(0); Outro exemplo - Usar um programa externo, p. ex. um pager (formatador de texto), para lhe enviar, através de um pipe redireccionado para a sua entrada standard, o texto a paginar. <unistd.h> <sys/wait.h> <stdio.h> #define PAGER "/usr/bin/more" /* programa pager */ Sistemas Operativos - Miguel Pimenta Monteiro 40
3 int main(int argc, char *argv[]) int n, fd[2]; pid_t pid; char line[maxline], *pager, *argv0; FILE *fp; if (argc!= 2) printf("usage: prog filename\n"); exit(0); /* abertura do ficheiro de texto usando bibl. standard do C */ if ( (fp = fopen(argv[1], "r")) == NULL) fprintf(stderr, "can't open %s\n", argv[1]); exit(1); if (pipe(fd) < 0) fprintf(stderr, "pipe error\n"); exit(2); if ( (pid = fork()) < 0) fprintf(stderr, "fork error\n"); exit(3); else if (pid > 0) /* pai */ close(); /* fecha o lado receptor */ /* copia argv[1] para o pipe */ while (fgets(line, MAXLINE, fp)!= NULL) n = strlen(line); if (write(, line, n)!= n) fprintf(stderr, "write error to pipe\n"); exit(4); if (ferror(fp)) fprintf(stderr, "fgets error"); exit(5); close(); /* fecha lado emissor do pipe */ /* espera pelo fim do filho */ if (waitpid(pid, NULL, 0) < 0) fprintf(stderr, "waitpid error\n"); exit(6); exit(0); /* termina normalmente */ else /* filho */ close(); /* fecha lado emissor */ if (!= STDIN_FILENO) /* programação defensiva */ /* redirecciona para entrada standard */ if (dup2(, STDIN_FILENO)!= STDIN_FILENO) fprintf(stderr, "dup2 error to stdin\n"); exit(7); Sistemas Operativos - Miguel Pimenta Monteiro 41
4 close(); /* não é preciso depois do dup2()*/ pager = PAGER; /* obtém argumentos para execl()*/ if ( (argv0 = strrchr(pager, '/'))!= NULL) argv0++; /* após último slash */ else argv0 = pager; /* não há slashes em pager */ /* executa pager com a entrada redireccionada */ if (execl(pager, argv0, NULL) < 0) fprintf(stderr, "execl error for %s\n", pager); exit(8); Constitui uma operação comum, quando se utilizam pipes, criar um pipe ligado à entrada ou saída standard de um outro que se lança na altura através de fork() - exec(). A fim de facilitar esse trabalho a biblioteca standard do C contém as seguintes funções. <stdio.h> FILE *popen(const char *cmdstring, const char *type); Retorna apontar válido, ou NULL no caso de erro. int pclose(file *fp); Retorna código de terminação de cmdstring ou -1 no caso de erro. O parâmetro cmdstring indica o a lançar (juntamente com os seus argumentos) ao qual se vai ligar o pipe; o parâmetro type pode ser r ou w ; se for r o pipe transmite do novo para aquele que chamou popen() (ou seja quem chamou popen() pode ler (read) o pipe); se for w a transmissão faz-se em sentido contrário. A função popen() retorna um FILE * que representa o lado visível do pipe no que chama popen() como se fosse um ficheiro da biblioteca standard do C (leituras e escritas com fread() e fwrite() respectivamente). Para fechar o pipe usa-se pclose() que também retorna o código de terminação do lançado por popen(). Exemplo - O exemplo anterior escrito com popen() (sem verificação de erros) <stdio.h> #define PAGER "/usr/bin/more" /* programa pager */ int main(int argc, char *argv[]) char line[maxline]; FILE *fpin, *fpout; fpin = fopen(argv[1], "r")) Sistemas Operativos - Miguel Pimenta Monteiro 42
5 fpout = popen(pager, "w")) while (fgets(line, MAXLINE, fpin)!= NULL) fputs(line, fpout); pclose(fpout); return 0; 6.3 Cos Um filtro é um programa que lê informação da sua entrada standard, a modifica, e escreve essa informação modificada na sua saída standard. Quando um outro programa envia informação para a entrada standard de um filtro e depois recolhe a resposta na sua saída standard, o filtro passa a chamar-se um co desse programa. A forma usual de utilizar um co é lançá-lo como filho de um inicial e estabelecer ligações com as suas entrada e saída stantard através de dois pipes, como se mostra na figura seguinte. pai filho (co) pipe 1 stdin pipe 2 stdout O co nunca se apercebe da utilização dos pipes. Simplesmente lê a entrada standard e escreve a sua resposta na saída standard. No exemplo seguinte temos o código de um co que lê dois inteiros da entrada standard e escreve a sua soma na saída standard. <stdio.h> int main(void) int n, int1, int2; char line[maxline]; while ( (n = read(stdin_fileno, line, MAXLINE)) > 0) line[n] = 0; /* terminar linha lida com 0 */ if (sscanf(line, "%d %d", &int1, &int2) == 2) sprintf(line, "%d\n", int1 + int2); n = strlen(line); if (write(stdout_fileno, line, n)!= n) fprintf(stderr, "write error"\n); return 1; else if (write(stdout_fileno, "invalid args\n", 13)!= 13) fprintf(stderr, "write error\n"); return 1; return 0; Sistemas Operativos - Miguel Pimenta Monteiro 43
6 Um programa que usa o anterior como co pode ser: <unistd.h> <signal.h> <sys/types.h> <stdio.h> static void sig_pipe(int); /* our signal handler */ int main(void) int n, fd1[2], fd2[2]; pid_t pid; char line[maxline]; signal(sigpipe, sig_pipe); pipe(fd1); pipe(fd2); pid = fork(); if (pid > 0) /* parent */ close(fd1[0]); close(fd2[1]); while (fgets(line, MAXLINE, stdin)!= NULL) n = strlen(line); write(fd1[1], line, n); n = read(fd2[0], line, MAXLINE); if (n == 0) printf("child closed pipe\n"); break; line[n] = 0; fputs(line, stdout); return 0; else /* child */ close(fd1[1]); close(fd2[0]); if (fd1[0]!= STDIN_FILENO) dup2(fd1[0], STDIN_FILENO); close(fd1[0]); if (fd2[1]!= STDOUT_FILENO) dup2(fd2[1], STDOUT_FILENO); close(fd2[1]); execl("./add2", "add2", NULL); static void sig_pipe(int signo) printf("sigpipe caught\n"); exit (1); 6.4 Pipes com nome ou FIFOs Os FIFOs são por vezes chamados pipes com nome e podem ser utilizados para estabelecer canais de comunicação entre s não relacionados ao contrário dos Sistemas Operativos - Miguel Pimenta Monteiro 44
7 pipes, que exigem sempre um ascendente comum entre os s que ligam. Quando se cria um FIFO o seu nome aparece no directório especificado no sistema de ficheiros. A criação de FIFOs faz-se com o seguinte serviço: <sys/types.h> <sys/stat.h> int mkfifo(const char *pathname, mode_t mode); Retorna 0 se houver sucesso e -1 no caso contrário. O parâmetro pathname indica o directório e o nome do FIFO a criar, enquanto que o argumento mode indica as permissões de acesso ao FIFO (ver serviço open() no capítulo 2). Uma vez criado o FIFO é necessário abri-lo para leitura ou escrita, como se fosse um ficheiro, com o serviço open(). Um FIFO suporta múltiplos escritores, mas apenas um leitor. As leituras, escritas, fecho e eliminação de FIFOs fazem-se com os serviços correspondentes para ficheiros (read(), write(), close() e unlink()). Quando se abre um FIFO a flag O_NONBLOCK de open() afecta a sua operação. Se a flag não for especificada a chamada a open() para leitura ou para escrita bloqueia até que um outro faça uma chamada a open() complementar (escrita ou leitura respectivamente). Quando a flag é especificada, uma chamada a open() para leitura retorna imediatamente com sucesso, enquanto que uma abertura para escrita retorna um erro se o FIFO não estiver já aberto para leitura por um outro. O comportamento das leituras e escritas nos FIFOs (com read() e write()) é semelhante ao dos pipes. As duas figuras seguintes ilustram algumas utilizações de FIFOs no funcionamento de sistemas de s clientes-servidor. servidor leituras FIFO (nome bem conhecido) pedidos (escritas) pedidos (escritas) cliente 1 cliente 2... cliente n Clientes enviando pedidos para um servidor Sistemas Operativos - Miguel Pimenta Monteiro 45
8 resposta (escrita) servidor resposta (escrita) estabelecido pelo cliente FIFO FIFO leituras (nome bem conhecido) FIFO estabelecido pelo cliente resposta (leitura) pedidos (escritas) resposta (leitura) cliente 1... cliente n Respostas aos pedidos através de FIFOs estabelecidos pelo cliente O nome destes FIFOs é passado ao servidor através do seu FIFO bem conhecido Sistemas Operativos - Miguel Pimenta Monteiro 46
Comunicação entre pai e filho
Comunicação entre pai e filho Ao chamar um fork(), processos pai e filho deixam de compartilhar memória Como fazer então para que o resultado de um processo possa ser recebido pelo outro? Exemplos: Processo
Programação de Sistemas
Programação de Sistemas FIFOs Programação de Sistemas FIFOs : 1/13 Introdução APUE 15.5 Os tubos só podem ser usados por processos que tenham um antecessor comum. Para resolver a limitação dos tubos, o
Inter-process Communication (IPC) Comunicação entre processos (1) Introdução Tubos (Pipes)
Inter-process Communication (IPC) Comunicação entre processos (1) Introdução Tubos (Pipes) Comunicação entre Processos (1) Os sistemas operacionais implementam mecanismos que asseguram a independência
Comunicação entre Processos Canal de comunicação Arquitetura da comunicação Modelos de comunicação
Comunicação entre Processos Canal de comunicação Arquitetura da comunicação Modelos de comunicação Sistemas Operativos 2015-2016 O que construímos até agora... A abstração de processo 2 A possibilidade
Tubos ou Pipes de Comunicação
1 Tubos ou Pipes de Comunicação 1. Introdução Os tubos (ou pipes) constituem um mecanismo fundamental de comunicação unidirecional entre processos. Eles são um mecanismo de I/O com duas extremidades, ou
Comunicação entre Processos
Comunicação entre Processos Pipes Redirecionamento de entrada e saída 4/19/18 1 O Pipe: Características (1) Canal de comunicação entre processos parentes, usando a politica First-In-First-Out (FIFO) Tipicamente,
Comunicação Inter-Processo em Unix. Pipes FIFO (Named Pipes) Pipes
Comunicação Inter-Processo em Unix Pipes FIFO (Named Pipes) 1 Pipes 2 1! Comunicação entre pai e filho Ao chamar um fork(), processos pai e filho deixam de compartilhar memória Como fazer então para que
Um processo sob UNIX ocupa uma área de memória formada basicamente por 3 partes:
Processos O UNIX é um sistema operacional multitarefa (suporta multiprogramação). Isso significa que ele é capaz de gerenciar a execução simultânea de vários programas. O termo processo é usado para caracterizar
Sistemas Operacionais INF 09344 Prof. José Gonçalves
Sistemas Operacionais INF 09344 Prof. José Gonçalves 1 o Trabalho de Programação Período: 2014/1 Data de Entrega: 2/6/2014 Parte I. Usando Fork e Wait Você deve criar um programa C partei.c. Durante a
SVCs para Controle de Processos no Unix (cont.) Sistemas Operacionais
SVCs para Controle de Processos no Unix (cont.) Primitivas exec..() As primitivas exec constituem, na verdade, uma família de funções que permitem a um processo executar o código de outro programa. Não
Persistência de Dados
Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD
E.E.E.P. Dr. Solon Tavares Sistemas Operacionais Prof. Henrique Cordeiro. Programação Concorrente em Linux
E.E.E.P. Dr. Solon Tavares Sistemas Operacionais Prof. Henrique Cordeiro Programação Concorrente em Linux O Conceito de Processo no Linux O conceito de processo é fundamental para qualquer sistema operacional
http://www.csl.mtu.edu/cs4411/www/notes/process/fork/create.html
http://www.csl.mtu.edu/cs4411/www/notes/process/fork/create.html FORK() SYSTEM CALL * UTILIZADO PARA CRIAR SUBPROCESSO * PROCESSO QUE CRIA É PAI * PROCESSO CRIADO É O FILHO * APÓS A CRIAÇÃO AMBOS OS PROCESSO
3. Criação e terminação de processos
3. Criação e terminação de processos Um processo é uma instância em execução de um programa. No sistema operativo Unix a única forma de se criar um novo processo (processo-filho) é através da invocação,
LEIC/LERC 2012/13 2º Teste de Sistemas Operativos 15/Janeiro/2013
Número: Nome: LEIC/LERC 2012/13 2º Teste de Sistemas Operativos 15/Janeiro/2013 Identifique todas as folhas. Responda no enunciado, apenas no espaço fornecido. Justifique todas as respostas. Duração: 1h30m
PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS
PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS Disciplina de Nivelamento - 2000/1: ALGORITMOS & ESTRUTURAS DE DADOS Professor Responsável: Prof. Fernando Santos
Manipulação de Arquivos
Manipulação de Arquivos Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Tipo
Bibliotecas. Apoio à Programação Distribuída. Socket. Socket. bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas
Apoio à Programação Distribuída bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas flexibilidade de programação disponibilidade da ferramenta facilidade de desenvolvimento e reuso
Manipulação de processos
Manipulação de processos Luiz Affonso Guedes 1 Ivanovitch Silva 1 [email protected] [email protected] 1 Universidade Federal do Rio Grande do Norte 17 de setembro de 2009 Processos DCA0109 1 / 18 Sumário
LABORATÓRIO SISTEMAS OPERACIONAIS
FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: SISTEMAS OPERACIONAIS CARGA HORÁRIA: 75 H. A. ANO/SEMESTRE: 2016/02 PROFESSOR: EDUARDO FERREIRA DOS SANTOS HORÁRIOS:
OProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite
Laboratório de Redes. Remote Procedure Call - RPC Pedroso 9 de março de 2006 1 Introdução 2 Conceitos básicos OProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite que sejam criadas
Sistema de Entrada/Saída
Conteúdo Ficheiros ([email protected]) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos 2006-2007 2 Descritores de ficheiros Descritores
Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza
Introdução Manipulação de arquivos em C Estrutura de Dados II Prof Jairo Francisco de Souza Manipulação de Arquivo em C Existem dois tipos possíveis de acesso a arquivos na linguagem C : sequencial (lendo
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA
Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais
Inter-process Communication (IPC)
Inter-process Communication (IPC) Comunicação entre processos (1) Introdução Tubos (Pipes) Filas (FIFOs, Named Pipes) Comunicação entre Processos (1) Os sistemas operacionais implementam mecanismos que
Processos em Unix. Conteúdo: Definição de Processos em Unix Estrutura, tipo e escalonamento de processos em Unix Processos, Pai, Filho e Zumbi.
Processos em Unix Conteúdo: Definição de Processos em Unix Estrutura, tipo e escalonamento de processos em Unix Processos, Pai, Filho e Zumbi. O que é um Processo em Unix? É um espaço de endereçamento
Processos. Estados principais de um Processo: Contexto de um Processo. Nível de um Processo. http://www.dei.isep.ipp.pt/~orlando/so2/processos.
Página 1 de 5 Processos Consiste num método de descrição das actividades de um sistema operativo; Todo o software incluído no sistema operativo é organizado num grupo de programas executáveis. Cada um
Inter-process Communication (IPC)
Inter-process Communication (IPC) Comunicação entre processos (1) Introdução Tubos (Pipes) Filas (FIFOs, Named Pipes) Comunicação entre Processos (1) Os sistemas operacionais implementam mecanismos que
Conceitos de Sistemas Operacionais: Chamadas de Sistema. Prof Rafael J. Sandim
Conceitos de Sistemas Operacionais: Chamadas de Sistema Prof Rafael J. Sandim Conceitos de Sistema Operacional Interface entre o SO e os Programas de usuário é definida pelo conjunto de instruções estendidas
Sistemas Operacionais e Introdução à Programação. Programação com linguagem C
Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Variáveis na linguagem C: tipo char O tipo char representa um caractere ASCII (ocupa só 1 byte) int main(int argc, char **
Projeto: Camada Independente de Dispositivo
Projeto: Camada Independente de Dispositivo Introdução Esse documento tem como finalidade demonstrar como será implementada a Camada Independente de Software. Estrutura A camada independente de software
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO
Curso: Engenharia de Computação e Ciência da Computação Data: 10/09/2013 Disciplina: Programação Estruturada Valor: 3,0 pontos Professor: Henrique Monteiro Cristovão Nota: Aluno: Prova resolvida 4ª Prova
Estrutura de um programa em linguagem C
Estrutura de um programa em linguagem C Estrutura de um programa em linguagem C Exemplo de um programa em linguagem C Directivas de Pré-Processamento #include Declarações Globais Declarações
Sistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: [email protected] Mecanismos de Comunicação Voltando ao exemplo da calculadora... Rede local
Linguagem de Programação III Aula 2 Revisão Parte II
Linguagem de Programação III Aula 2 Revisão Parte II Prof. Moser Fagundes Curso Técnico em Informática (Modalidade Integrada) Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Revisão de PHP
Grupo I [4v] executaprograma();
Número: Nome: LEIC/LERC 2012/13-1º Exame de Sistemas Operativos 15/Janeiro/2013 Identifique todas as folhas. Responda no enunciado, apenas no espaço fornecido. Justifique todas as respostas. Duração: 2h30m
Manual do Desenvolvedor Criptografia de Arquivos do WebTA
Manual do Desenvolvedor Criptografia de Arquivos do WebTA Versão 1.4 Índice 1. Objetivo..3 2. Processo..3 3. API de Criptografia - Biblioteca Java..4 3.1 WEBTACryptoUtil..4 3.1.1 decodekeyfile..4 3.1.2
Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2015 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página Pessoal: http://www.icmc.usp.br/~fosorio/
Computação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,
Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior
Armazenamento de Dados Prof. Antonio Almeida de Barros Junior 1 Armazenamento de Dados Todos os dados que utilizamos até o momento, ficavam armazenados apenas na memória. Ao final da execução dos programas,
Capítulo II Modelos de Programação Distribuída
Capítulo II Modelos de Programação Distribuída From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, Addison-Wesley 2005 From: M. Ben-Ari Principles of Concurrent
Introdução às Linguagens de Programação
Introdução às Linguagens de Programação Histórico de Linguagens de Programação O computador não faz nada sozinho Precisamos informar, de forma clara, como ele deve executar as tarefas Ou seja, o computador
ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2005/2006. 0.5 Valores
ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA INTRODUÇÃO À PROGRAMAÇÃO (ENG. INFORMÁTICA) COMPUTADORES E PROGRAMAÇÃO I (ENG. ELECTROTÉCNICA) 2005/2006 TRABALHO PRÁTICO Nº
Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação?
Número: Nome: LEIC/LERC 2011/12-2º Exame de Sistemas Operativos 3/Fevereiro/2012 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 2h30m Grupo I [4v] 1. [0,6v] A
O protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura.
Universidade de Aveiro Departamento de Engenharia Mecânica Informática Industrial 2010/2011 5 PROTOCOLO DE COMUNICAÇÃO MODBUS 5.1 Protocolo de comunicação MODBUS Este protocolo foi proposto em 1979 pela
Construa a função insere_lista para inserir um elemento na lista ordenada, duplamente encadeada, descrita acima.
DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO Disciplina: Sistemas Operacionais Teste de verificação de pré-requisitos Considere as definições de tipos abaixo: type Aponta_Nodo = ^Nodo; NODO Nodo = record Info
14. Arquivos. W. Celes e J. L. Rangel. Estruturas de Dados PUC-Rio 13-1
14. Arquivos W. Celes e J. L. Rangel Neste capítulo, apresentaremos alguns conceitos básicos sobre arquivos, e alguns detalhes da forma de tratamento de arquivos em disco na linguagem C. A finalidade desta
Comunicação entre Processos
Comunicação entre Processos Comunicação memória compartilhada troca de mensagens base de comunicação em sistemas distribuídos Mensagens básicas send (destino, msg) receive (origem, mensagem) questões semântica
Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)
Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP) Existem inúmeras ferramentas (software) baseadas em RdP que permitem desenvolver modelar e analisar sistema de RdP. Algumas
I/O de baixo-nível em ficheiros
7 I/O de baixo-nível em ficheiros Sumário: Introdução Funções de entrada/saída de baixo-nível Referência bibliográfica: W. Stevens. Advanced Programming in the UNIX Environment. Addison-Wesley, 1992 (cap.3,
Arquitetura de Rede de Computadores
TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador
Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados
Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados Tipo de dados, tipo abstrato de dados, estruturas de dados Termos parecidos, mas com significados diferentes Tipo de dado Em linguagens de programação
Manipulação de Arquivos
1 Manipulação de Arquivos Para realizar E/S em arquivo, você precisa incluir o arquivo-cabeçalho fstream.h nos programas. Esse arquivo define muitas classes e valores importantes. Abrindo e fechando um
TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 5-1. A CAMADA DE TRANSPORTE Parte 1 Responsável pela movimentação de dados, de forma eficiente e confiável, entre processos em execução nos equipamentos conectados a uma rede de computadores, independentemente
TROCA DE MENSAGENS SOCKETS. Comunicando processos através de SOCKETS. SOCKETS com conexão. SOCKETS sem conexão
TROCA DE MENSAGENS SOCKETS Comunicando processos através de SOCKETS SOCKETS com conexão SOCKETS sem conexão SOCKETS Princípios dos sockets: 2. Fornecer uma interface geral permitindo a construção de aplicações
Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.
Data: 14/8 Página 1 de 9 Primeiros passos Introdução Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++. No tutorial anterior, mostramos como
Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos
TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br [email protected]
Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em
Tipos de Servidores. Servidores com estado
Tipos de Servidores Com Estado X Sem Estado Sequenciais X Concorrentes Com Conexão X Sem Conexão Servidores com estado Servidores com estado armazenam informação sobre cada cliente. Operações podem ser
Algoritmos e Programação Estruturada
Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.
COMPETÊNCIAS BÁSICAS EM TIC NAS EB1
COMPETÊNCIAS BÁSICAS EM TIC NAS EB1 Oficina do Correio Para saber mais sobre Correio electrónico 1. Dicas para melhor gerir e organizar o Correio Electrónico utilizando o Outlook Express Criar Pastas Escrever
Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br
Sistemas Distribuídos RPC x RMI Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Chamada Remota a Procedimento Definição Passagem de Parâmetros STUBS Semântica de Falhas 2 RPC Chamada Remota a
Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP
AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de
Algoritmos e Programação _ Departamento de Informática
16 ARQUIVOS Um arquivo corresponde a um conjunto de informações (exemplo: uma estrutura de dados-registro), que pode ser armazenado em um dispositivo de memória permanente, exemplo disco rígido. As operações
Experimentos com a memória cache do CPU
Experimentos com a memória cache do CPU Alberto Bueno Júnior & Andre Henrique Serafim Casimiro Setembro de 2010 1 Contents 1 Introdução 3 2 Desvendando o cache 3 2.1 Para que serve o cache?.....................
Web Input Module (LUNA) V2.0 1/6
Web Input Module (LUNA) V2.0 1/6 Módulo LUNA REM O Módulo LUNA REM permite que utilizadores externos tais como agentes, fotógrafos e clientes carreguem facilmente qualquer ficheiro suportado no NEWSASSET
Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto
Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2º Semestre 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização,
ZS Rest. Manual Profissional. Instalação do Software. v2011
Manual Profissional Instalação do Software v2011 1 1. Índice 2. Introdução... 2 3. Antes de Instalar... 3 b) Ter em consideração... 3 4. Iniciar a Instalação... 4 c) 1º Passo... 4 d) 2º Passo... 5 e) 3º
ROTEIRO PARA INSTALAÇÃO DO BITVISE, CONFIGURAÇÃO DE CHAVES SSH, DEFINIÇÃO DAS PORTAS PARA OS TÚNEIS SSH E CONFIGURAÇÃO DO THUNDERBIRD
ROTEIRO PARA INSTALAÇÃO DO BITVISE, CONFIGURAÇÃO DE CHAVES SSH, DEFINIÇÃO DAS PORTAS PARA OS TÚNEIS SSH E CONFIGURAÇÃO DO THUNDERBIRD PARTE 1 INSTALAÇÃO DO BITVISE E CRIAÇÃO E INSTALAÇÃO DA CHAVE SSH PARA
2 SYSCALLs: O que são
Trabalho de Software Básico - Turma 2010-1 Nome: Francisco Panis Kaseker GRR20071909 Título: Explicação e implementação de uma SYSCALL Data: 30/06/2010 1 Introdução Basicamente uma SYSCALL é uma chamada
Forms Authentication em ASP.NET
Forms Authentication em ASP.NET Em muitos sites web é necessário restringir selectivamente o acesso a determinadas áreas, ou páginas, enquanto para outras páginas pode permitir-se acesso livre. ASP.NET
