Programação de Sistemas. Tubos
|
|
- Natan Rocha Sales
- 7 Há anos
- Visualizações:
Transcrição
1 Programação de Sistemas Tubos Programação de Sistemas Pipes : 1/18 Tubos - introdução APUE 15.2 No Unix, os tubos ( pipes ) constituem o mecanismo original de comunicação entre processos. Mensagens limitadas a sequências de Bytes (caracteres). Fluxo de informação unidireccional (i.e., um processo escreve num canal e o outro lê do canal). Descritores semelhantes aos dos ficheiros. escrita leitura pipe Núcleo Programação de Sistemas Pipes : 2/18
2 Tubos definição Um tubo é criado pela chamada de sistema POSIX: #include <unistd.h> int pipe(int fd[2]); Descritor fd[0] aberto para leitura Descritor fd[1] aberto para escrita. Em caso de sucesso (erro) retorna 0 (-1, com causa de erro indicada na variável de ambiente int errno;) Os tubos apenas podem ligar processos com antepassado comum. Nota: Os descritores são índices de uma tabela contendo os detalhes de todos os ficheiros abertos. Frequentemente, os tubos constituem o canal de comunicação entre os processos pai-filho, sendo definidos antes do lançamento dos processos descendentes (por fork). Programação de Sistemas Pipes : 3/18 Tubos fecho (1) Depois de usados, ambos os canais de comunicação devem ser fechados pela chamada do sistema POSIX: #include <unistd.h> int close(int); Em caso de sucesso (erro) retorna 0 (-1, com causa de erro indicada na variável de ambiente int errno;) ) Exemplo: int fd[2]; if (pipe(fd)==0) { close(fd[0]); close(fd[1]); } Programação de Sistemas Pipes : 4/18
3 Tubos fecho (2) Quando todos os descritores associados a um tubo, ou FIFO são fechados, todos os dados residentes no tubo ou no FIFO são perdidos. Quando todos os descritores associados a um ficheiro são fechados, o descritor do ficheiro é eliminado. Nota: quando o descritor do ficheiro é eliminado, todos os dados residentes na memória que ainda não tenham sido enviados para disco, são descarregados ( flushed ). Programação de Sistemas Pipes : 5/18 Tubos fecho (3) Quando um processo faz um fork() depois de ter aberto um tubo, ambos os processos ficam com extremidades de leitura e escrita. pai filho fd[0] fd[1] fd[0] fd[1] pipe Cada um dos processos deve fechar a extremidade desaproveitada. Programação de Sistemas Pipes : 6/18
4 Tubos fecho (4) Por exemplo, se o fluxo de informação for pai a escrever e filho a ler, int fd[2]; pid_t pid; pai filho if( pipe(fd)<0 ) exit(1); if( pid=fork()<0 ) exit(1); if ( pid==0 ) { /* processo filho */ close( fd[1] ); } fd[0] fd[1] fd[0] fd[1] pipe if ( pid>0 ) { /* processo pai */ close( fd[0] ); } Programação de Sistemas Pipes : 7/18 Tubos comunicação (1) Comunicação feita pelas seguintes chamadas de sistema: POSIX: #include <unistd.h> ssize_t read(int,char *,int); ssize_t write(int,char *,int); O 1º parâmetro é o descritor de ficheiro. O 2º parâmetro é o endereço dos dados de utilizador. O 3º parâmetro é o número de Bytes a comunicar. A função devolve o número de Bytes efectivamente transferidos. Nota1: O número de Bytes que podem ser temporariamente armazenados por um tubo é indicado por _POSIX_PIPE_BUF (512B, definido em <limits.h>) Nota2: Envio directo de dados como int, e.g. write(fd, val, sizeof(int)), gera problemas se as dimensões de dados nas máquinas do processos intervenientes forem distintas! Programação de Sistemas Pipes : 8/18
5 Tubos comunicação (2) Para uma comunicação bidireccional usar dois tubos. Regras aplicadas aos processos escritores: Escrita para descritor fechado resulta na geração de sinal SIGPIPE (acção por omissão de terminar o processo). Escrita de dimensão inferior a _POSIX_PIPE_BUF é atómica (i.e., os dados não são entrelaçados). No caso do pedido de escrita ser superior a _POSIX_PIPE_BUF, os dados podem ser entrelaçados com pedidos de escrita vindos de outros processos. Regras aplicadas aos processos leitores: Leitura para descritor fechado retorna valor 0. que pretenda ler de um tubo vazia fica bloqueado até que um processo escreva os dados. Programação de Sistemas Pipes : 9/18 Tubos comunicação (3) Exemplo: Envio de dados do processo filho para o pai. #include <stdio.h> #include <unistd.h> #include <signal.h> #include <sys/types.h> #define READ 0 #define WRITE 1 #define STDOUT 1 int main() { int n, fd[2]; pid_t pid; if ( pipe(fd)<0 ) { fprintf(stderr,"erro no tubo\n");_exit(1); } if ( (pid=fork())<0 ) { fprintf(stderr,"erro no fork\n");_exit(1); } Programação de Sistemas Pipes : 10/18
6 Tubos comunicação (4) if ( pid>0 ) { /* processo ascendente */ #define MAX 128 char line[max]; close( fd[write] ); n = read(fd[read],line,max); write(stdout, &line[0], n); close( fd[read] ); kill( pid,sigkill ); /* elimina processo descendente */ _exit(0); } if ( pid==0 ) { /* processo descendente */ #define LEN 8 char msg[len]={'b','o','m',' ','d','i','a','\n'}; close( fd[read] ); write( fd[write], &msg[0], LEN); close( fd[write] ); pause(); } } Programação de Sistemas Pipes : 11/18 Redirecção E/S por tubos (1) APUE 3.12 A redirecção E/S é feita com auxílio da chamada de sistema de duplicação do descritor de ficheiro POSIX: #include <unistd.h> int dup(int); O parâmetro é o descritor de ficheiro duplicado. O valor retornado identifica um novo descritor para o ficheiro (Nota: o ficheiro não é duplicado, apenas o descritor!). O valor devolvido é o primeiro índice vago da tabela de descritores. 0 x (parâmetro) 1 2 x 3 (retorno) 4 x Programação de Sistemas Pipes : 12/18
7 Redirecção E/S por tubos (2) Os dois descritores partilham a mesma posição do ficheiro. Se fosse efectuado open duas vezes sobre o mesmo ficheiro, cada descritor é posicionado em locais distintos! A função dup2 duplica descritor de ficheiro, fechando previamente o primeiro descritor POSIX: #include <unistd.h> int dup2(int,int); O 2º parâmetro é o descritor fechado. dup2(newd,d); é equivalente a close(d);dup(newd); Programação de Sistemas Pipes : 13/18 Redirecção E/S por tubos (3) O programa redirecciona E/S nas seguintes etapas: a) Abrir ficheiro, com modo de acesso apropriado b) Fechar descritor de E/S (0-entrada, 1-saída). c) Executar dup, com parâmetro do valor recolhido no passo a). d) Fechar o descritor recolhido no passo a). Exemplo: redireccionar escrita de instruções printf int newd=open("fich.txt", O_WRONLY O_CREAT O_TRUNC, S_IRUSR S_IWUSR); /* newd recebe um descritor livre, por exemplo 4 */ close(1); /* liberta descritor 1 */ dup(newd); /* procura primeiro descritor livre, que é 1 */ close(newd); /* descritor 4 libertado, mas fich.txt continua acedido pelo descritor 1 */ Programação de Sistemas Pipes : 14/18
8 Redirecção E/S por tubos (4) Os tubos são implicitamente criados quandos dois comandos são sequenciados por A saída do comando anterior é reencaminhada para a entrada do comando seguinte. Ex: who sort lpr Imprime utilizadores em sessão, por ordem alfabética. No Unix, os comandos são lançados em simultâneo com tubos ligando o comando anterior ao comando seguinte. No sistema operativo MSDOS, de tarefa única, cada comando na ordem pos executado isoladamente com a saída enviada para o ficheiro pos.tmp (armazenado na directoria %TEMP%, se não existir na directoria corrente) e o comando seguinte a ler a entrada do ficheiro. Programação de Sistemas Pipes : 15/18 FIFOs (1) Os tubos só podem ser usados por processos que tenham um antecessor comum. Para resolver a limitação dos tubos, o Unix disponibiliza Filas (FIFO- First In First Out ), também designados por tubos nomeados ( named pipes ) que podem ser usados por processos não relacionados entre si, e são referenciandos por um identificador dentro do sistema de ficheiros. Programação de Sistemas Pipes : 16/18
9 FIFOs (2) A. Uma fila é criada pela função int mkfifo(char *,mode_t); Nota: 1º parâmetro é o identificador, semelhante ao ficheiro de dados B. Antes de aceder à fila, o processo tem de a abrir como um vulgar dispositivo (ficheiro,...) int open(char *,int); C. Os dados são escritos/lidos pelas funções habituais write e read. D. Feito o close, a fila continua a existir. A fila é eliminada pela função int unlink(char *); Programação de Sistemas Pipes : 17/18 3º EXERCÍCIO TEORICO-PRATICO Neste exercício dois processos escrevem no mesmo tubo. 1. O processo Double lança dois processos filho, de identificadores A e B. Cada processo filho substitui a sua imagem. Logo, crie os programas Double.c e Son.c 2. Cada imagem envia para o processo pai a saudação ID: Bom dia!, em que ID é o Double identificador. Nota: Como o tubo é único, ele tem de ser Son (A) criado antes dos processos filho serem lançados. 3. O processo filho termina só depois de enviar a mensagem. Son (B) 4. O processo Double lê e imprime as mensagens no terminal. Por fim, fica à espera que os processos filho terminem. Programação de Sistemas Pipes : 18/18
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
Leia maisComunicaçã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,
Leia maisInter-process Communication (IPC)
Inter-process Communication (IPC) Comunicação entre processos (2) Filas (FIFOs, Named Pipes) Fila (FIFO, Named Pipe) Trata-se de uma extensão do conceito de pipe. Pipes só podem ser usados por processos
Leia maisInter-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
Leia maisInter-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
Leia maisInter-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
Leia maisComunicação baseada em canais de I/O e Pipelines no sistema Unix. José C. Cunha, DI-FCT/UNL
Comunicação baseada em canais de I/O e Pipelines no sistema Unix José C. Cunha, DI-FCT/UNL Mecanismos de comunicação Ficheiros em disco (geridos pelo SO) Pipes (buffers geridos pelo SO) Mensagens (filas
Leia maisComunicaçã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
Leia maisProgramaçã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
Leia maisComunicaçã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
Leia maisUnnamed Pipes. Chamada ao sistema pipe. Pipes. Comunicação entre processos. Unnamed Pipes Chamada so sistema. José Pedro Oliveira
Conteúdo (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos I 006-007 1 Exercícios 3 Referências Pipes Chamada
Leia mais6. Comunicação entre processos - Pipes
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
Leia maisCanos (Pipes) As pipes são um mecanismo de comunicação unidirecional entre dois ou mais processos. Um exemplo do uso de pipes na shell é:
Canos (Pipes) As pipes são um mecanismo de comunicação unidirecional entre dois ou mais processos. Um exemplo do uso de pipes na shell é: ± Û Ó Û ¹Ð O programa Û Ó gera uma linha por utilizador e envia-a
Leia maisDuplicação e partilha de ficheiros
(jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos I 006-007 : ficheiros abertos Dois processos independentes com
Leia maisComunicação entre Processos (1) Comunicação entre Processos (2) Comunicação entre Processos (3)
Comunicação entre Processos (1) Inter-process Communication (IPC) Comunicação entre processos (1) Introdução Tubos (Pipes) Filas (FIFOs, Named Pipes) Os sistemas operacionais implementam mecanismos que
Leia maisSumário. Ficheiros. Ficheiros
Sumário Ficheiros Motivação Operações Ficheiros de texto e binários Manipulação de ficheiros de texto Abertura Encerramento Descritores de ficheiros: stdin, stdout, stderr Escrita Leitura Outras funções
Leia maisComunicaçã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
Leia maisMestrado em Engenharia Física Tecnológica
5 a Aula - Ciclo for. Leitura e Escrita em Ficheiros. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento de Física Instituto Superior Técnico
Leia maisComunicação entre Processos Named Pipes (FIFO)
Comunicação entre Processos Named Pipes (FIFO) 5/17/18 1 Named pipe (FIFO) FIFO permite que dois processos quaisquer se comuniquem É um tipo especial de arquivo visível no sistema de arquivos Na troca
Leia maisGrupo I [5 Val] Suponha que, ao correr comando ls l whoami, se obtinha o seguinte output: -rwxr-xr-x 1 root root Sep whoami
Número: Nome: LEIC/LETI 2017/18-1º Teste de Sistemas Operativos 21 de Novembro de 2018 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 1h30m Grupo I [5 Val] 1.
Leia maisSistemas Operacionais II
Introdução Instituto de Informátic ca - UFRGS Sistemas Operacionais II Comunicação inter-processos Aula 09 Programação concorrente surgiu com a multiprogramação Mecanismos básicos supõem memória compartilhada,
Leia maisProgramação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre
Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Manipulação de ficheiros de texto Programação 2010/2011 IST-DEEC Manipulação de Ficheiros 1 Sumário Ficheiros
Leia maisI/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,
Leia maisMemória partilhada em Unix SysV
Memória partilhada em Unix SysV A forma mais geral de comunicação entre processos é através de memória partilhada. segmento de memoria partilhada Processo A Processo B p q Criação de um segmento de memória
Leia maisLEIC/LERC 2008/09. 2º Exame de Sistemas Operativos
Nome: Número: LEIC/LERC 8/9 º Exame de Sistemas Operativos Identifique o cabeçalho de todas as folhas da prova. de Fevereiro de 9 Duração: h3m O teste é resolvido no espaço dedicado ao efeito após cada
Leia mais! Os primeiros computadores permitiam a execução de apenas um programa de cada vez, com acesso completo aos recursos do sistema
Background! Os primeiros computadores permitiam a execução de apenas um programa de cada vez, com acesso completo aos recursos do sistema! Os sistemas actuais suportam o carregamento de múltiplos programas
Leia maisTeste de Sistemas de Operação 30 de Maio de 2009
Teste de Sistemas de Operação 30 de Maio de 2009 Duração: 30 min B NOME: Indique apenas uma das alternativas. Respostas erradas descontam na nota. 1. Um pedido de entrada e saída sem buffering: (letra
Leia maisIPC Interprocess communication
IPC Interprocess communication conceitos de IPC, pipes Taisy Weber Comunicação entre processos Pipes e FIFO Defição, chamadas de sistemas, utilização de Message queues. Memória compartilhada. Sockets.
Leia maisGrupo I [6 v] Considere o processo com a seguinte tabela de páginas: Página Presente Protecção Base 0 0 RW RW R R RW -
Número: Nome: LEIC/LETI 2014/15-2º Teste de Sistemas Operativos 9/Janeiro/2015 Identifique todas as folhas. Responda no enunciado no espaço fornecido. Justifique todas as respostas. Duração: 1h30m Grupo
Leia maisSistemas Distribuídos Aula 2
Sistemas Distribuídos Aula 2 Aula passada Logísitica Regras do jogo Definição e características Exemplos Aula de hoje Processos IPC Características Ex. sinais, pipes, sockets Objetivos Processos O que
Leia maisLEIC/LERC 2008/09. Segundo Teste de Sistemas Operativos. Grupo I [3 valores]
Nome: LEIC/LERC 2008/09 Segundo Teste de Sistemas Operativos Identifique o cabeçalho de todas as folhas da prova. 20 de Janeiro de 2009 Duração: 1h30m O teste é resolvido no espaço dedicado ao efeito após
Leia maisArquitetura de Sistemas Operativos
Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 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)
Leia mais1/24 FICHEIROS DE TEXTO
1/24 FICHEIROS DE TEXTO Hardware de entrada/saída 2/24 Hardware de entrada/saída Grande variedade de dispositivos de E/S (Input/Output) - de memória: disco interno e externo, DVD, pen, CD,... - de transmissão:
Leia maisSistemas Operacionais II
Sistemas Operacionais II Aula 3 - BASH e Redirecionamento de entrada/saída Autor: Renê de Souza Pinto Orientação: Prof. Dr. Francisco José Monaco rene@grad.icmc.usp.br, monaco@icmc.usp.br Universidade
Leia maisSinais: eventos assíncronos
Sinais: eventos assíncronos Um sinal é um evento assíncrono que pode ser enviado a um processo, avisando-o de que algo de inesperado ou anormal aconteceu. Evento Assíncrono significa que pode ocorrer a
Leia maisAbortar a execução dum programa
Abortar a execução dum programa Para terminar um programa na linha de comandos, utilize a combinação de teclas ctrl+c Esta combinação de teclas envia um sinal de término para o programa que está a ser
Leia maisSistemas de Operação (2018/2019) Ficha 4
Sistemas de Operação (2018/2019) Ficha 4 Q1. Considere a seguinte implementação de um comando mycat (semelhante ao cat da shell Bash) utilizando directamente a API do Unix (system calls) em vez da Biblioteca
Leia maisIntrodução aos Sistemas Operativos
Introdução aos Sistemas Operativos Baseado em: Andrew S. Tanenbaum. Modern Operating Systems, Prentice-Hall, 1992 FEUP/INESC http://www.fe.up.pt/~jlopes/teach/ jlopes@inescn.pt v 1.0, Outubro de 1997 Introdução
Leia maisJoão Correia Lopes. v 1.0, Outubro de Introdução aos Sistemas Operativos v1.0 1
Introdução aos Sistemas Operativos Baseado em: Andrew S. Tanenbaum. Modern Operating Systems, Prentice-Hall, 1992 FEUP/INESC http://www.fe.up.pt/~jlopes/teach/ jlopes@inescn.pt v 1.0, Outubro de 1997 Introdução
Leia maisTeste de Sistemas de Operação 15 de Abril de 2010
Teste de Sistemas de Operação 15 de Abril de 2010 Duração: 1 h (prática + teórica) D NOME: Indique apenas uma das alternativas. Respostas erradas descontam na nota. 1. Em um sistema que suporta multiprogramação
Leia maisAmbientes de Execução
KERNEL Conceitos Conceitos POSIX Portable Operating System Interface for UNIX. Um conjunto de padrões da IEEE e ISO que definem como programas e sistemas operacionais de interface com os outros. Sistemas
Leia maisIntrodução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados
Introdução à Programação Operadores, Expressões Aritméticas e Entrada/Saída de Dados Programa em C #include int main main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius
Leia maisLinguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux
Linguagem C Introdução Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux Porquê C em AC? A linguagem C fornece um modelo de programação próximo da máquina física
Leia maisSistemas de Operação (2018/2019) Teste de Auto-Avaliação Prática
Sistemas de Operação (2018/2019) Teste de Auto-Avaliação Prática (duração 1 hora) Resolva as 3 questões que se seguem da forma mais independente possível, evitando consultar a Internet ou os materiais
Leia maisFundamentos de Arquivos
Fundamentos de Arquivos Leandro C. Cintra M.C.F. de Oliveira Rosane Minghim 2004-2010 Fonte: Folk & Zoelick, File Structures 2 Arquivos Informação mantida em memória secundária HD Fitas magnéticas CD DVD
Leia mais- pid do último processo a manipular o semáforo (através de semop/semctl); - o número de processos que estão à espera que o valor do semáforo seja 0.
Página 1 de 8 Semáforos São variáveis que permitem sincronização entre processos, de modo a evitar race conditions (quando dois ou mais processos necessitam de escrever/ler dados partilhados simultaneamente),cujas
Leia maisMIEIC SISTEMAS OPERATIVOS 2009/2010 1S FEUP
MIEIC SISTEMAS OPERATIVOS 2009/2010 1S FEUP Tipo de prova: sem consulta Exame de Recurso da Época Normal Duração: 2 horas 12 de Fevereiro de 2010 Cotação máxima: 20 valores Estrutura da prova: Parte I
Leia maisLEIC/LERC 2011/12-1º Exame de Sistemas Operativos 16/Janeiro/2012
Número: Nome: LEIC/LERC 2011/12-1º Exame de Sistemas Operativos 16/Janeiro/2012 Identifique todas as folhas. Responda no enunciado, apenas no espaço fornecido. Justifique todas as respostas. Duração: 2h30m
Leia maisEventos. Rotinas Assíncronas
Eventos Rotinas Assíncronas para Tratamento de acontecimentos assíncronos e excepções Rotinas Assíncronas Certos acontecimentos devem ser tratados pelas aplicações, embora não seja possível prever a sua
Leia maisSistemas Operacionais II Unix: Memória e E/S. Geraldo Braz Junior
Sistemas Operacionais II Unix: Memória e E/S Geraldo Braz Junior Gerenciamento de Memória Gerenciamento de Memória Espaço de Endereçamento 1. Segmento de código Instruções de máquina que formam o código
Leia maisAula: ARQUIVOS. Introdução à Ciência da Computação I Simone Senger Souza. ICMC/USP São Carlos
Aula: ARQUIVOS Introdução à Ciência da Computação I Simone Senger Souza ICMC/USP São Carlos Introdução As estruturas vistas anteriormente armazenam as informações na memória principal do computador. Nem
Leia maisSistema de Controlo com Acesso Remoto
Trabalho de Laboratório Programação de Sistemas - LEE IST - 2007/2008 Sistema de Controlo com Acesso Remoto 1 Introdução Um sistema de controlo é, normalmente, constituído por vários processos controladores
Leia maisSistemas Operativos, 3. o MIEIC 2009/10, FEUP
Sistemas Operativos, 3. o MIEIC 2009/10, FEUP RMA, JVV, HSF December 20, 2009 2. o Trabalho Prático: SO Shell Stats (sosh s) Objectivos Completando com sucesso todas as fases deste trabalho, os alunos
Leia maisSISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios
SISTEMAS OPERACIONAIS INF09344 - Sistemas Operacionais / INF02780 - Sistemas Operacionais / INF02828 - Sistemas de Programação II Prof a. Roberta Lima Gomes (soufes@gmail.com) 2ª. Lista de Exercícios Data
Leia maisMétodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados
Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de
Leia maisComplementos de Programação. Engenharia Electrotécnica - Electrónica e Computadores. Ano Lectivo: 2005/2006. Ana Madureira. Gestão de Processos
Complementos de Programação Engenharia Electrotécnica - Electrónica e Computadores Ano Lectivo: 2005/2006 Ana Madureira Gestão de Processos 04-12-2006 1 Objectivos Os alunos deverão ser capazes de ter
Leia maisLEIC/LERC 2008/09. Primeiro Exame de Sistemas Operativos. 20 de Janeiro de Duração: 2h30m. Grupo I [3 valores]
Nome: Número: LEIC/LERC 2008/09 Primeiro Exame de Sistemas Operativos 20 de Janeiro de 2009 Duração: 2h30m Identifique o cabeçalho de todas as folhas da prova. O exame é resolvido no espaço dedicado ao
Leia maisLicenciatura em Eng.ª Informática Sistemas Operativos - 2º Ano - 1º Semestre. Trabalho Nº 4 Desenvolvimento de um mini-shell
Trabalho Nº 4 Desenvolvimento de um mini-shell (baseado no exercício presente em http://www.cs.huji.ac.il/~davidt/course/os/ex10.html) 1. Notas sobre criação de processos A criação de processos é uma das
Leia mais3.1 - Funções para manipular dados de entrada e saída padrão
1616161616161616161616161616161616161616161616161616 3- ENTRADA E SAÍDA EM C Os principais meios para executar operações de entrada e saída (E/S) são: Entrada e saída pelo console (ou padrão): teclado
Leia maisArquivos em C. Material da Prof. Ana Eliza
em C Material da Prof. Ana Eliza Definição Um arquivo é uma estrutura de dados linear ( lista ) que é mantida fora da memória principal, em um dispositivo de armazenamento (memória secundária). Um arquivo
Leia maisGrupo I [7 Val] 1. Considere os seguintes 3 algoritmos de escalonamento num sistema operativo de tempo virtual:
Número: Nome: LEIC/LERC 2012/13-1º Teste de Sistemas Operativos 24 de Novembro de 2011 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Justifique todas as respostas. Duração:
Leia maisManipulação de Ficheiros
Manipulação de Ficheiros Utilização de ficheiros Programas normalmente necessitam de ler e/ou escrever em ficheiros de dados Tipicamente um ficheiro representa uma sequência qualquer de bytes Redirecionamento
Leia maisSISTEMAS OPERATIVOS I
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informática SISTEMAS OPERATIVOS I Programação Concorrente em Linux: Memória Partilhada e Semáforos Versão 1.03 Maio de 2006 Luís Lino
Leia maisSSC0640 Sistemas Operacionais I
SSC0640 Sistemas Operacionais I 2ª Aula Conceitos Básicos Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano baseados
Leia maisProcessos 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
Leia maisREDES INTEGRADAS DE TELECOMUNICAÇÕES I 2008 / 2009
Departamento de Engenharia Electrotécnica REDES INTEGRADAS DE TELECOMUNICAÇÕES I 2008 / 2009 Mestrado Integrado em Engenharia Electrotécnica e Computadores 4º ano 7º semestre 2º Trabalho Prático: Localização
Leia maisExiste uma quantidade de informação que pode ser armazenada para resolver o problema.
Arquivos Introdução As estruturas vistas anteriormente armazenam as informações na memória principal do computador. Nem sempre é conveniente. Problemas: A informação é perdida; As estruturas de dados são
Leia maisA linguagem C (visão histórica)
A linguagem C (visão histórica) A linguagem C é uma linguagem de programação desenvolvida no ínício dos anos 70 por Dennis Ritchie, que trabalhava nos laboratórios Bell e que também inciou em paralelo,
Leia maisSistemas Operacionais II
Sistemas Operacionais II Aula 1 Autor: Renê de Souza Pinto Orientação: Prof. Dr. Francisco José Monaco rene@grad.icmc.usp.br, monaco@icmc.usp.br Universidade de São Paulo Instituto de Ciências Matemáticas
Leia maisSistemas Operacionais
Sistemas Operacionais Programação Concorrente Introdução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Introdução Programa Seqüencial Representado por apenas um processo Existe apenas
Leia maisPCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca
PCS-2529 Introdução aos Processadores Prof. Dr. Paulo Sérgio Cugnasca 1 2 Existem 4 esquemas diferentes de E/S possíveis, cada um se aplicando em uma determinada situação. E/S Programada. E/S Acionada
Leia maisProgramação de Sistemas
Programação de Sistemas Sinais Programação de Sistemas Sinais : 1/30 Modelo de eventos (1) Os processos de nível utilizador interagem com o núcleo através de chamadas de sistema. Nos sistemas computacionais,
Leia maisSistemas Operativos. Processos cooperantes e processos independentes
Processos (complementos) Processos cooperantes e processos independentes! Os processos que se executam de forma concorrente podem ser: Cooperantes podem afectar ou ser afectados pela execução de outros
Leia maisSistemas de Ficheiros Distribuídos. Pedro Ferreira DI - FCUL
Sistemas de Ficheiros Distribuídos Pedro Ferreira DI - FCUL Serviços do Sistema de Ficheiros Revisão de alguns aspectos do serviço de ficheiros O que é um ficheiro? uma sequência não interpretada de bytes
Leia maisComunicação entre Processos Memória Compartilhada
Comunicação entre Processos Memória Compartilhada 3/23/17 1 Métodos de comunicação entre processos Memória compartilhada Sinais Pipes Troca de mensagens Memória Compartilhada Memória compartilhada Permite
Leia maisSOP - TADS Processos. Revisão Ultima aula
SOP - TADS Processos Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Revisão Ultima aula Revisão de hardware Processador
Leia maisAula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU
Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito
Leia maisIntrodução à Programação C
Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Recapitulando Um programa C é uma sequência de diretivas (#include e #define), declarações de funções auxiliares,
Leia maisManipulação de Arquivos
Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Manipulação de Arquivos Linguagem de Programação Estruturado Sumário Introdução; E/S ANSI Versus E/S UNIX; E/S em C Versus E/S
Leia maisLEIC/LERC 2010/11 2º Exame de Sistemas Operativos
Número: Nome: LEIC/LERC 2010/11 2º Exame de Sistemas Operativos 2 de Fevereiro de 2011 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 2h30m Grupo I [ 2,9 valores]
Leia maisAmbiente de desenvolvimento
Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa
Leia maishttp://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
Leia maisTécnicas Avançadas de Programação
Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos
Leia maisLABORATÓ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:
Leia maisSistemas Operativos I/O. Rui Maranhão
Sistemas Operativos I/O Rui Maranhão (rma@fe.up.pt) I/O (E/S)? Parte do SO que permite interagir (convenientemente) com o ambiente que o rodeia Cria canais virtuais entre os programas e os periféricos
Leia maisLinguagem de Programação C. Arquivos
Arquivos Cristiano Lehrer Introdução Em C um arquivo é apenas um conjunto de bytes colocados uns após os outros de forma sequencial: Utilização de arquivos: Fonte de dados para o programa: Trata-se de
Leia maisProgramação II. Arquivos - Conceito. Arquivos
Programação II Arquivos Jocélio Passos joceliodpassos@bol.com.br C Comp Total, Cap 9 Espaço para armazenar dados em memória auxiliar (não volátil) Arquivos em C podem ser também terminais ou impressoras
Leia maisC/C++; biblioteca stdio
INSTITUTO SUPERIOR DE CIÊNCIAS DO TRABALHO E DA EMPRESA Sistemas Operativos ETI - IGE C/C++; biblioteca stdio 2º Semestre 2005/2006 Ficha 3 1. A biblioteca stdio engloba o conjunto de funções que são normalmente
Leia maisCaching. Caches do Sistema de Ficheiros
Caching Caches do Sistema de Ficheiros Acessos aos dispositivos de memória de massa: 4 a 5 ordens de grandeza mais lentos que os acessos a memória, Como usar caches para reduzir peso das escritas e leituras
Leia maisOutline. 33. Manipulação de arquivos DIM
Outline 33. Manipulação de arquivos DIM031 015.1 Leitura e escrita 3 s DIM031 33. Manipulação de arquivos 015.1 1 / 4 DIM031 33. Manipulação de arquivos 015.1 / 4 Arquivo = entidade de armazenamento de
Leia maisTratamento de Sinais
Tratamento de Sinais Luiz Affonso Guedes 1 Ivanovitch Silva 1 affonso@dca.ufrn.br ivan@dca.ufrn.br 1 Universidade Federal do Rio Grande do Norte 25 de setembro de 2009 Sinais DCA0109 - Prática de programação
Leia maisSISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios
SISTEMAS OPERACIONAIS Prof a. Roberta Lima Gomes (soufes@gmail.com) 2ª. Lista de Exercícios Data de Entrega: não há. O objetivo da lista é ajudar no estudo individual dos alunos. SINAIS 1. Qual a diferença
Leia maisDepartamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos
Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I Aula 13 Arquivos Responsável Seiji Isotani, Rafaela V. Rocha sisotani@icmc.usp.br rafaela.vilela@gmail.com
Leia mais9/24/2014. Prof. André Backes
Prof. André Backes 1 Arquivos Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não sequencial; Acesso concorrente aos
Leia maisCanais de Comunicação
Canais de Comunicação February 24, 2010 Sumário Comunicação via Mensagens Propriedades dum Canal de Comunicação Protocolos da Internet UDP TCP Aplicação Distribuída O que é? É uma aplicação que consiste
Leia maisExercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal
Exercício Crie uma função que recebe o número de dias até um determinado evento e calcula e retorna o equivalente em meses, semanas e dias, sem usar vetor ou o conceito de vetor. Considerar que todos os
Leia maisUnix Processos. Geraldo Braz Junior
Unix Processos Geraldo Braz Junior 1 Processos no Unix Unix é multiprogramado; Para cada processo é atribuído um Pid; Diversos daemons são executados: Cron Processamento de emails Gerenciamento da fila
Leia maisProcessos. Programas e Processos. Aula 1 - Chamadas ao sistema. José Pedro Oliveira fork exit getpid, getppid wait, waitpid
Conteúdo Programas e Aula 1-1 Programas e (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos I 006-007 3 Referências
Leia maisIntrodução à Programação em C Input / Output
Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then
Leia mais11 - Estrutura de um programa em C
11 - Estrutura de um programa em C directivas para o compilador { main ( ) declarações instruções } -É possível utilizar comentários, exemplo: /* Comentário */ que não são traduzidos pelo compilador, pois
Leia mais