Índice. 5. Falhas em sistemas baseados em CPR Aspectos relativos à implementação 8. Chamadas a procedimentos remotos

Tamanho: px
Começar a partir da página:

Download "Índice. 5. Falhas em sistemas baseados em CPR Aspectos relativos à implementação 8. Chamadas a procedimentos remotos"

Transcrição

1 Índice 1. Introdução 2 2. Definição de Chamadas a Procedimentos Remotos 2 3. Funcionamento das Chamadas a Procedimentos Remotos 3 4. Localização do servidor pelo cliente 4 1. Gravar no hardware do cliente o endereço do servidor na rede 4 2. Ligação dinâmica 4 Vantagens 5 Desvantagens 5 5. Falhas em sistemas baseados em CPR 5 O cliente não é capaz de localizar o servidor 6 Perda de mensagem do cliente solicitando serviço 6 Perda de mensagem do servidor como resposta 6 Queda do servidor 7 Queda do cliente 7 6. Aspectos relativos à implementação 8 Protocolos para Chamadas a procedimentos remotos 8 Confirmação de Pacote 9 Caminho Crítico 10 Cópia 10 Gerência do tempo 11 Gláucia Faria Vieira / Hima Carla Belloni Mourão 1

2 Chamadas a Procedimentos Remotos 1. Introdução Um sistema distribuído é estratificado em níveis de abstração. Os níveis menos abstratos do sistema, que incluem o sistema operacional e a rede física, relacionados com o transporte, empacotamento e roteamento de mensagens, devem permanecer transparentes aos processos. No nível da camada de transporte, é oferecido um serviço de troca de mensagens, sendo este o mais baixo nível de comunicação entre processos de um sistema. No nível da camada de apresentação é implementado um serviço de solicitação e resposta via chamada de rotinas, denominado chamada a procedimentos remotos. Este mecanismo conduz as transações, seqüência de solicitações e/ou respostas, da camada de aplicação. Comunicação Aplicação Transações Apresentação Chamadas a procedimentos remotos Transporte Passagem de mensagem S.O.(rede) Conexões de transporte Enlace/Físico Chaveamento de pacotes Tabela: Exemplificação da estratificação Deve ser lembrado que o principal objetivo de projeto de um sistema distribuído é o de se parecer com um sistema centralizado sob a ótica dos usuários. Para se atingir tal objetivo, basearse em conceitos de entrada/saída não é a melhor maneira. Portanto, o conceito de chamada a procedimento remoto, vem tratar de problemas que implicam em um sistema distribuído. 2. Definição de Chamadas a Procedimentos Remotos Chamadas a procedimentos remotos é a chamada de um programa a procedimentos localizados em máquinas diferentes. Sintaticamente, uma chamada a um procedimento remoto é idêntica a uma chamada a um procedimento local. Entretanto, a semântica é diferente, pois envolve atrasos e eventualmente algum tipo de tratamento a falhas. Chamada a procedimentos remotos esconde dos clientes detalhes de chamadas ao sistema, de conversões de dados e de comunicação na rede. Gláucia Faria Vieira / Hima Carla Belloni Mourão 2

3 3. Funcionamento das Chamadas a Procedimentos Remotos Uma chamada a procedimentos remotos é realizada através dos seguintes passos: 1. O procedimento do cliente chama o stub do cliente de maneira usual. 2. O stub do cliente constrói uma mensagem e envia um trap ao kernel. 3. O Kernel envia uma mensagem ao kernel remoto. 4. O kernel remoto entrega a mensagem ao stub do servidor. 5. O stub do servidor desempacota os parâmetros constantes da mensagem e chama o servidor. 6. O servidor realiza o seu trabalho e retorna o resultado para um buffer dentro do stub. 7. O stub do servidor empacota tais resultados em uma mensagem e emite um trap para o kernel. 8. O kernel remoto envia a mensagem para o kernel do cliente. 9. O kernel do cliente entrega a mensagem para o stub do cliente. 10. O stub desempacota os resultados e os fornece ao cliente. Maquina-Cliente Stub de Cliente Stub de Servidor Maquina-Servidora Cliente Chamada Retorno Empacotamento de parâmetros Desempacotamento do resultado Desempacotamento de parâmetros Empacotamento do resultado Chamada Retorno Servidor Kernel Kernel Transporte de mensagem por sobre a rede Figura1: Chamadas e mensagens na chamada remota a procedimento. Gláucia Faria Vieira / Hima Carla Belloni Mourão 3

4 4. Localização do servidor pelo cliente 1. Gravar no hardware do cliente o endereço do servidor na rede Uma possibilidade de o cliente localizar o servidor, é simplesmente gravar no hardware do cliente o endereço do servidor na rede. O problema com esse método é sua inflexibilidade. Se o servidor trocar de lugar ou mesmo se for replicado, ou se sua interface vier a mudar, muitos programas terão de ser recompilados. Para evitar esses tipos de problemas, alguns sistemas distribuídos empregam a chamada Ligação dinâmica. 2. Ligação dinâmica Este conceito se baseia em se ter uma especificação formal do servidor. O principal uso da especificação formal, é o de servir como entrada para o gerador do stub, que produz tanto o stub do servidor quanto o do cliente. Após gerados, ambos são postos na biblioteca de procedimentos. Quando um programa usuário (cliente) chama qualquer dos procedimentos definidos por esta especificação, o procedimento correspondente ao stub do cliente é ligado ao seu código objeto. Da mesma forma, quando o servidor é compilado, os stubs do servidor também são ligados a ele. Para cada um dos procedimentos são especificados os tipos dos parâmetros, caracterizandoos como in, out ou in out. A direção é relativa ao servidor. A direção do envio dos parâmetros é uma informação essencial, de forma que o stub do cliente sabe quais parâmetros devem ser enviados ao servidor, e o stub do servidor sabe quais deles devem ser enviados de volta. Ao iniciar a execução do servidor, a chamada para inicialize exporta a interface do servidor. Isto significa que o servidor envia uma mensagem para um programa chamado ligador (binder) para que este tome conhecimento de sua existência. Esse processo é conhecido como registro do servidor. Para se registrar, o servidor informa ao ligador seu nome, o número de sua versão, um identificador que geralmente é um número de 32 bits, e um manipulador, utilizado para permitir sua localização, o qual é dependente do sistema podendo ser um endereço Ethernet, um endereço IP ou um endereço X.500. Um servidor também pode cancelar seu registro com o ligador quando não estiver mais preparado par prestar o serviço. Com essas informações, quando o cliente chamar um dos procedimentos remotos pela primeira vez, o stub do cliente verifica que ele ainda não esta ligado a um servidor, enviando uma mensagem para o ligador solicitando a importação da versão da interface do file-server. O ligador verifica se um ou mais servidores já exportaram uma interface com esse nome e número de versão Se não houver nenhum servidor disposto, rodando tal interface, a chamada falha. Gláucia Faria Vieira / Hima Carla Belloni Mourão 4

5 Por outro lado, se houver um servidor adequado, o ligador fornece seu manipulador e seu número de identificação ao stub do cliente, que por sua vez usa o manipulador como o endereço ao qual serão enviadas as mensagens solicitando serviços. Essas mensagens contem os parâmetros e o número de identificação, a partir dos quais o kernel do servidor dirige as mensagens entrantes na direção do servidor correto, considerando que mais de um servidor esteja rodando na máquina. Vantagens Este método de importação e exportação de interfaces é altamente flexível. Ele pode tratar de diversos servidores que suportem a mesma interface. Com este método pode se ter uma distribuição de carga, sendo que o ligador pode espalhar os clientes de forma randômica pelos servidores. Pode também melhorar o grau de tolerância a falhas checando os servidores periodicamente e caçando o registro de qualquer servidor que não responda. Além disso, pode ajudar na autenticação, utilizando-se especificações de listas de usuários que podem usar um determinado servidor, fazendo com que o ligador venha a recusar qualquer cliente fora da lista. Desvantagens Um problema encontrado é o overhead gerado pelos procedimentos de importação e exportação, sendo seu efeito significativo quando muitos processos de clientes têm vida curta e precisam ser repetidos várias vezes. Alem disso, o ligador acaba se tornado um gargalo na performance, de maneira que são necessários vários ligadores. Com isso, será necessária uma quantidade substancial de mensagens para manter todos os ligadores sincronizados e atualizados quando uma interface é registrada ou tem seu registro cancelado, gerando mais overhead. 5. Falhas em sistemas baseados em CPR O método de chamada a procedimento remoto faz perfeitamente seu trabalho enquanto tanto o cliente quanto o servidor estiverem funcionando corretamente. Porém, os problemas começam com a ocorrência eventual de erros, sendo por isso difícil de mascarar as diferenças entre chamadas locais e remotas. Abaixo falaremos sobre cinco possibilidades de erros. Gláucia Faria Vieira / Hima Carla Belloni Mourão 5

6 O cliente não é capaz de localizar o servidor Um dos motivos para que o cliente não consiga localizar o servidor, é que o servidor esteja fora do ar. Outra possibilidade, é quando o servidor evolui e o cliente está usando uma versão antiga de interface, sendo impossível de serem combinados pelo ligador, reportando então a falha. Uma possível solução é o mecanismo que faz com que o erro se torne uma exceção e cada linguagem trate dessas exceções. O problema é que nem toda linguagem suporta exceções. Alem de que escrever um procedimento para tratar exceções joga para o alto a transparência do sistema. Perda de mensagem do cliente solicitando serviço Este aspecto é o mais fácil de tratar. Basta fazer com que o kernel inicialize um temporizador quando do envio de uma mensagem de solicitação. Se o temporizador expirar antes da chegada de uma resposta ou de uma mensagem de reconhecimento, o kernel deve mandar a mensagem novamente. Se ela tiver realmente se perdido na rede, o servidor não será capaz de distinguir entre a mensagem retransmitida e a original. Pode ocorrer o caso da perda de uma serie de mensagens, fazendo com que o Kernel desista das transmissões, e conclua erradamente que o servidor saiu do ar. Perda de mensagem do servidor como resposta È mais difícil de se tratar. O uso do temporizador não funciona aqui. O cliente não sabe o motivo pelo qual a resposta não chegou. Se foi a solicitação que se perdeu pela rede, ou a resposta, ou se o servidor que é muito lento. Portanto, uma solução é a repetição da requisição, sendo que essa repetição não cause problemas para o sistema. Esse tipo de requisição é chamada de idempotente. Porem, em certas aplicações essa solução não é viável, tal como para um servidor de um banco comercial comandando a transferência de dinheiro. Outro método para a solução desse problema, é fazer com que cada kernel do cliente atribua a cada requisição um numero seqüencial. Se cada kernel de servidor passar a controlar esta numeração, mantendo o ultimo numero da seqüência de cada kernel de cliente, o kernel do servidor vai poder descobrir a diferença entre uma requisição original e uma retransmissão, podendo recusar-se a realizar uma dada requisição pela segunda vez. Alem disso pode ser mantido um bit no cabeçalho da mensagem para distinguir a mensagem original da retransmissão. Gláucia Faria Vieira / Hima Carla Belloni Mourão 6

7 Queda do servidor A ordem normal dos eventos em um servidor é: chega uma requisição, a seguir ela é executada, e finalmente uma resposta é enviada de volta. A queda do servidor pode ocorrer em dois pontos. Um, é quando o servidor sai do ar antes de enviar uma resposta da requisição executada. Outro, é quando o servidor pára de funcionar antes de processar a requisição. No primeiro caso, o sistema deve reportar a falha de volta ao cliente, provocando por exemplo, uma exceção, enquanto no segundo, ele pode simplesmente retransmitir a requisição. O problema é que o kernel não consegue distinguir isso. Ele só sabe que o tempo programado do temporizador já se esgotou. Existem três modos de tratamento para isso. Uma é a semântica de no mínimo uma vez, que diz que o kernel do cliente deve continuar tentando ate receber uma resposta. Outra é semântica de no máximo uma vez, que defende que o kernel deve desistir imediatamente e reportar o problema. A ultima é a de não garantir nada. Temos então, que no primeiro caso, se o servidor cair o cliente também cai, não havendo possibilidade de implementar procedimentos de recuperação. Já no segundo é possível e necessário tomar algum tipo de providencia. Queda do cliente Quando um cliente manda uma mensagem para um servidor solicitando algum trabalho, e sai do ar antes que o servidor tenha podido responder, ocorre a realização de um processamento sem que nenhum pai esteja esperando por ele. Tal processamento é denominado processamento órfão, que deve ser evitado, pois causam muitos problemas. No mínimo estes processos gastam tempo do processador. Podem também, bloquear arquivos ou ocupar recursos escassos e valiosos. O pior é quando o cliente se recupera e faz uma nova chamada remota, e a resposta do processamento órfão chega logo depois ao cliente. Algumas soluções para isso são comentadas a seguir. A primeira é chamada de Extermínio e diz que antes que o stub de cliente envie uma mensagem de chamada a procedimento remoto, ele deve gravar em um arquivo a informação do que pretende obter com a chamada, este é mantido em um disco ou em outro meio de armazenamento que sobreviva as eventuais quedas. Após um novo boot, o arquivo é repassado e os órfão são assassinados um a um. Uma desvantagem é o desperdício de disco. Outra, é que estes órfãos podem fazer outras chamadas remotas, criando outros órfãos dependentes e impossíveis de serem localizados. Alem disso, a rede pode ser dividida com a queda de um gateway, tornado impossível que os órfãos sejam exterminados mesmo sendo localizados. A segunda solução é denominada Reencarnação. Aqui, não há a necessidade de utilizar registros em discos. Ela divide o tempo em é poças numeradas seqüencialmente. Ao se recuperar Gláucia Faria Vieira / Hima Carla Belloni Mourão 7

8 de uma falha, o cliente envia uma mensagem em broadcast para todas as máquinas da rede, informando o inicio de uma nova época, assim todos os processamentos remotos anterior mente solicitados por este cliente, serão eliminados. Mesmo assim, poderão restar alguns processamentos órfãos se a rede for particionada com a falha de um gateway, mas ao receber seus resultados, o cliente observará o numero de uma época obsoleta, não os considerando. Uma variação da idéia acima, é a Reencarnação branda. Aqui, ao receberem a mensagem de broadcast, as maquinas verificam se existem algum processamento remoto solicitado, e se houver tenta localizar o seu proprietário, e somente se este não puder ser localizado é que o processamento é descartado. A ultima solução é chamada expiração, na qual é dada uma fatia de tempo T a cada chamada remota, para que elas possam realizar seu trabalho. Se neste tempo o trabalho não terminar, é preciso solicitar explicitamente um novo quantum de tempo. Por outro lado, se após uma queda o servidor esperar por um tempo T antes de entrar novamente no ar, terá a certeza de que todos os processamentos órfãos terão sido eliminados. O problema é a escolha de T, tarefa não muito fácil, em razão da natureza completamente diversa das chamadas a procedimento. 6. Aspectos relativos à implementação O sucesso ou fracasso de um sistema distribuído depende fundamentalmente de sua performance. Por sua vez, a performance do sistema depende da velocidade da comunicação entre suas partes componentes. O segredo de uma boa velocidade de comunicação esta muito mais ligado aos aspectos de implementação do que aos princípios abstratos. A seguir serão analisados estes aspectos. Protocolos para Chamadas a procedimentos remotos O primeiro ponto a ser analisado, é quanto ao uso de protocolo orientado a conexão ou que não requer conexão explicita entre as partes comunicantes. No primeiro caso, a partir do momento em que o cliente se liga ao servidor, fica estabelecida uma conexão explicita entre eles, e todo o trafego passa por ela, em ambas as direções. A vantagem da conexão é que ela torna a comunicação muito mais fácil. O kernel ao enviar uma mensagem, não precisa aguardar uma confirmação e nem se preocupar se ela se perdeu, pois isso é tratado pelo software que roda em baixo nível. Esta vantagem é muito importante para redes de longa distância. Porém, para uma rede local, a garantia de haver perda de pacotes, não é muito importante, sendo que a própria rede é confiável, é por isso o uso desse protocolo provoca uma queda de performance nesse tipo de rede, o que é uma desvantagem. Portanto, sistemas distribuídos locais, usam protocolos sem conexão. Gláucia Faria Vieira / Hima Carla Belloni Mourão 8

9 Outra questão é a escolha de um protocolo-padrão, ou um especialmente projetado para CPR. Para se tem um protocolo customizado, é necessário o desenvolvimento de seu próprio protocolo. Porém, alguns sistemas distribuídos utilizam o IP (e UDP) como protocolo básico, por ser um protocolo já desenvolvido, economizando trabalho, além de serem aceitos por sistemas UNIX e redes já existentes, como a Internet. Um último aspecto é o tamanho dos pacotes e das mensagens transferidas. Sendo que um sistema de CPR gera um overhead grande e fixo, é importante que tanto o protocolo quanto a rede permitam a transmissão de um grande volume de dados. Por exemplo, ler um arquivo de 64K em uma única chamada remota que transfira os 64K de uma vez, é muito mais eficiente que fazer 64 chamadas de 1k. Confirmação de Pacote Quanto à confirmação de pacotes, há duas estratégias conhecidas. Uma delas é a chamada Protocolo Pare-e-espere, faz com que o cliente envia um pacote e espera uma confirmação, e só após isso, envia outro pacote, sendo isso feito até o último ser enviado. Neste caso, se um pacote for danificado ou perdido, o cliente tem como saber qual é o pacote e retransmiti-lo, pois não irá receber a confirmação em tempo. Outra estratégia é o Protocolo em Rajadas que diz que o cliente deve enviar todos os pacote tão rápido quanto puder. Neste caso o servidor reconhece a mensagem inteira, quando todos os pacotes forem recebidos. Portanto, se um pacote 1 foi perdido, mas o pacote 2 chega sem problemas, o servidor pode aguardar que a temporização do cliente expire e que este retransmita toda mensagem. Uma outra alternativa, é que o servidor pode guardar os pacotes recebidos em buffer e então solicitar que o cliente retransmita apenas o pacote perdido, essa técnica é chamada de repetição seletiva. Um aspecto importante relacionado com a confirmação de pacotes é o fluxo de controle. Muitos chips de interface de rede são capazes de enviar pacotes consecutivamente sem quase nenhum intervalo entre eles, mas estes mesmos chips normalmente não têm como receber um numero ilimitado de pacotes, devido à sua capacidade de armazenamento ser finita. Quando um pacote chega e o receptor não esta preparado para aceitá-lo, vai haver a indicação de um erro especifico, denominado erro causado por excesso de pacotes, e o pacote é perdido. Com o protocolo pare-e-espere não há possibilidade de ocorrência deste erro, pois o segundo pacote não é enviado ate que o receptor tenha indicado explicitamente que ele está pronto par recebe-lo. Já com o protocolo em rajadas, esse erro é possível, porem pode ser lidado com a introdução de um retardo entre o envio de dois pacotes consecutivos. Se o retardo necessário for pequeno, o transmissor pode aguardar em um loop de espera ocupada, se for grande, ele pode setar um temporizador e ir fazer alguma outra coisa até que o temporizador o interrompa. Se o retardo for médio, a melhor opção é a espera ocupada. Gláucia Faria Vieira / Hima Carla Belloni Mourão 9

10 Caminho Crítico A seqüência de instruções que é executada a cada chamada remota é denominada de Caminho Crítico. Começa na chamada do cliente ao stub do cliente e termina no servidor que executa o trabalho solicitado e despacha a resposta através do caminho inverso. O principal interesse, é saber em que parte do caminho critico é consumido mais tempo. Portanto, vale ressaltar alguns pontos deste caminho. Um, por exemplo, é após a chamada ao stub do cliente, quando é adquirido um buffer para que o cliente possa montar a mensagem entrante. Em certos sistemas, o stub do cliente dispõe de um buffer fixo, utilizado em cada chamada. Porem um método mais interessante para economia de tempo, quando o formato do pacote tem um número substancial de campos que devem ser preenchidos, mas que não mudam de uma chamada para outra, é a presença de um pool de buffers que são alocados aos servidores quando necessário. Após o kernel do usuário ser interrompido por um trap, e este entregar a mensagem à interface de rede para que ela seja transmitida, termina o caminho critico do cliente. Nada que o kernel faça agora afeta o tempo necessário para o pacote chegar ao servidor. Portanto, após inicializar o temporizador de retransmissor, o kernel pode entrar num loop de espera ocupada para esperar pela resposta, ou chamar o escalonador de processos a fim de escolher um outro processo para rodar. A primeira escolha acelera o processamento da resposta, mas inibe qualquer possibilidade de multiprogramação. Uma análise feita para chamadas remotas nula e com parâmetros, mostra que na primeira os custos de tempo dominantes dizem respeito a troca de contexto para o stub do servidor quando o pacote chega, à rotina de tratamento de interrupção, e ao movimentos dos pacotes para a interface de rede. Já na chamada remota com parâmetro, o grande gasto de tempo é o de transmissão pela Ethernet, e com o tempo de movimentação de pacotes de/par a interface de rede vindo logo atrás. Cópia A questão das cópias é um aspecto que com freqüência domina os tempos gastos na execução das chamadas remotas. O numero de vezes que uma mensagem precisa ser copiada varia de uma a oito, dependendo do hardware, do software e dotipo de chamada. No melhor caso, o chip de interface de rede pode receber diretamente a mensagem do stub de cliente (cópia 1), usando a técnica DMA (Acesso direto a memória) e depois depositando-a na memória do kernel do servidor em tempo real, ou seja, a interrupção da chegada do pacote ocorre poucos microsegundos após o ultimo bit ser retirado por DMA da memória do stub do cliente. Então o kernel inspeciona o pacote e mapeia a pagina que o contem no espaço de endereçamento Gláucia Faria Vieira / Hima Carla Belloni Mourão 10

11 do servidor.e este tipo de mapeamento não for possível de ser realizado, o kernel copia o pacote para o stub do servidor (copia 2). No pior caso, o kernel copia a mensagem do stub do cliente para um buffer do kernel para posterior transmissão por não ser conveniente realizar a transmissão diretamente do espaço do usuário ou porque a rede esta ocupada no momento (cópia 1). Mais tarde o kernel copia a mensagem por software para um buffer em hardware na interface de rede (copia 2). Neste momento o hardware é inicializado, fazendo com que o pacote seja transferido através da rede para a place de interface de rede na maquina-destino (copia 3). Quando a interrupçao de chegada de pacote ocorrer na maquina servidora, o kernel deve copiar a mensagem para um buffer interno, provavelmente por ele não ter onde guardá-la para exame (copia 4). Finalmente a mensagem deve ser copiada para o stub do servidor (copia 5). Alem disso, se a chamada envolver um array deve ser copiado na pilha do cliente para chamar o stub, da pilha para o buffer de mensagens durante a ordenação dentro do stub do cliente, e da mensagem entrante para o stub do servidor, ou seja, mais três copias, perfazendo um total de oito. Uma característica do hardwre que ajuda muito na eliminação de copias desnecessárias, é chamado scatter-gather. A vantagem desse método reside em poder construir o cabeçalho do pacote no espaço do kernel, deixando os dados do usuário no stub do cliente, com o hardware sendo responsável por coloca-los juntos quando o pacote for enviado. Usando hardware apropriado, um cabeçalho de pacote reutilizável armazenado no kernel e um buffer de dados no espaço do usuário podem ser entregues a rede sem a necessidade de copias internas, no lado do transmissor. No entanto, ao chegar no receptor, nem mesmo um hardware inteligente será capaz de descobrir a qual servidor entregar este pacote, de maneira que o melhor a ser feito pelo hardware é colocar o pacote no buffer do kernel, e deixar que o kernel descubra o que deve ser feito com ele. Gerência do tempo A maioria dos protocolos inicializa um temporizador sempre que uma mensagem é expedida e uma resposta é esperada. Se a resposta não chegar em determinado tempo, o temporizador sinaliza, e a mensagem original é transmitida. A sinalização de um temporizador, requer a construção de uma estrutura de dados que especifica quando ao temporizador deve sinalizar. A estrutura de dados é então inserida em uma lista de todas as outras temporizações pendentes. Em geral a lista é mantida pelo tempo, com a próxima temporização a expirar ocupando a cabeça da lista, e mais distante no fim da lista. Quando chegam um reconhecimento ou uma resposta antes da temporização correspondente expirar, a entrada na lista referente a esta temporização deve ser localizada e removida. Gláucia Faria Vieira / Hima Carla Belloni Mourão 11

12 Valores muito baixos vão fazer com que os temporizadores expirem muito rapidamente, resultando em transmissões desnecessárias. Por outro lado, valores muito altos causam um retardo desnecessariamente grande quando o pacote for realmente perdido. Uma forma diferente e mais eficiente de tratar os temporizadores é utilizada por vários sistemas. Estes sistemas mantêm uma tabela de processos, onde cada entrada possui informações sobre cada um dos processos. Ao invés de armazenar temporizações em uma lista ordenada, cada entrada da tabela de processos tem um campo para armazenar suas temporizações. A inicialização de um temporizador para determinada chamada remote, agora consiste simplesmente em colocar no campo apropriado da tabela de processos, o valor do tempo escolhido. Para zerar um temporizador, basta armazenar o valor zero no campo correspondente. Desta forma, as operações de inicializar e zerar temporizadores ficam reduzidas a umas poucas instruções de maquina. O kernel deve periodicamente, uma vez por segundo, percorrer toda a tabela, verificando o estado de cada um dos temporizadores, e confrontando-os com o tempo real. Qualquer valor não nulo e menor ou igual ao tempo real corresponde a um temporizador expirado, que deve ser então processado e resetado. Algoritmos como este, são chamados de sweep algorithms. Gláucia Faria Vieira / Hima Carla Belloni Mourão 12

Prof. Marcelo Cunha Parte 6

Prof. Marcelo Cunha Parte 6 Prof. Marcelo Cunha Parte 6 www.marcelomachado.com ARP (Address Resolution Protocol) Protocolo responsável por fazer a conversão entre os endereços IPs e os endereços MAC da rede; Exemplo: Em uma rede

Leia mais

Sistemas Distribuídos Capítulo 8 - Aula 14

Sistemas Distribuídos Capítulo 8 - Aula 14 Sistemas Distribuídos Capítulo 8 - Aula 14 Aula Passada Tolerância a Falhas Conceitos básicos Modelos de falha Redundância Resiliência de Processo Aula de hoje Comunicação Confiável Cliente-Servidor Comunicação

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S Explicitar aos alunos os modelos de entrada e saída em um computador e quais barramentos se aplicam a cada componente: memória,

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Transporte Antonio Alfredo Ferreira Loureiro loureiro@dcc.ufmg.br Departamento de Ciência da Computação Universidade Federal de Minas Gerais UFMG/DCC Redes de Computadores

Leia mais

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim Redes TCP/IP alexandref@ifes.edu.br Camada de Transporte 2 Camada de Transporte Função: Fornecer comunicação lógica entre processos de aplicação em diferentes hospedeiros. Os protocolos de transporte são

Leia mais

Sistemas de Entrada e Saída

Sistemas de Entrada e Saída Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 31 Sumário 1 Interrupções 2 Camadas de Software de E/S 2 / 31 Interrupções

Leia mais

Nível de Enlace. Nível de Enlace. Serviços. Serviços oferecidos os nível de rede

Nível de Enlace. Nível de Enlace. Serviços. Serviços oferecidos os nível de rede Nível de Enlace Enlace: caminho lógico entre estações. Permite comunicação eficiente e confiável entre dois computadores. Funções: fornecer uma interface de serviço à camada de rede; determinar como os

Leia mais

Redes de Computadores. Prof. André Y. Kusumoto

Redes de Computadores. Prof. André Y. Kusumoto Redes de Computadores Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 2/16 Nível de Rede Comunicação entre dispositivos de uma mesma rede ocorrem de forma direta. Quando a origem e o destino estão

Leia mais

Nível de Rede. Funções do nível de rede GCAR

Nível de Rede. Funções do nível de rede GCAR Nível de Rede Funções do nível de rede Multiplexação Endereçamento Mapeamento entre endereços de rede e de enlace Roteamento Estabeleciment/Liberação conexões de rede Controle de Congestionamento 1 Funções

Leia mais

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Memória Cache Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Temporal Um item referenciado tende a

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar - Aula 1-1. A CAMADA DE ENLACE DE DADOS (Parte 1) Relembrando as aulas do semestre passado quando estudamos os modelos de referência, lembramos que a Camada de Enlace de Dados é a camada responsável pela

Leia mais

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede Nível de Enlace Enlace: caminho lógico entre estações. Permite comunicação eficiente e confiável entre dois computadores. Funções: fornecer uma interface de serviço à camada de rede; determinar como os

Leia mais

Camada de Enlace. OSI x IEEE. Arquitetura IEEE 802. Redes. Nível de Enlace: Controle de Erros e Fluxo Multiplexação

Camada de Enlace. OSI x IEEE. Arquitetura IEEE 802. Redes. Nível de Enlace: Controle de Erros e Fluxo Multiplexação Camada de Enlace Redes Nível de Enlace: Controle de Erros e Fluxo Multiplexação Aplicação Apresentação Sessão Transporte Rede Enlace Físico Delimitação e transmissão de quadros Detecção de erros Controle

Leia mais

Rede de computadores Protocolos UDP. Professor Carlos Muniz

Rede de computadores Protocolos UDP. Professor Carlos Muniz Rede de computadores Professor Carlos Muniz User Datagram Protocol O User Datagram Protocol (UDP) é um protocolo simples da camada de transporte. Ele é descrito na RFC 768 [1] e permite que a aplicação

Leia mais

Protocolo Request-Reply

Protocolo Request-Reply n n n n Protocolo Request-Reply Modelo de Objeto Remoto Semânticas de Invocação Remota Arquitetura de Invocação Remota Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Introdução Características de

Leia mais

Gerência de Entrada e Saída

Gerência de Entrada e Saída Gerência de Entrada e Saída Dispositivos de Entrada e Saída (1) Constituídos de 2 partes: Mecânica Eletrônica Controladora ou Adaptadora Controladora Placa ligada a um slot livre, ou inserida diretamente

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar - Aula 1-1. ENTRADAS E SAIDAS Uma das principais funções dos sistemas operacionais é controlar os dispositivos de entrada e saída (E/S ou I/O). O Sistema Operacional (SO) deve ser capaz de enviar comando

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.

Leia mais

Sistemas Distribuídos Capítulo 8 - Aula 15

Sistemas Distribuídos Capítulo 8 - Aula 15 Sistemas Distribuídos Capítulo 8 - Aula 15 Aula de hoje Aula Passada Comunicação Confiável Cliente-Servidor Comunicação Confiável de Grupo Comunicação Confiável de Grupo Multicast Atômico Sincronia Virtual

Leia mais

Problemas com Entrada e Saída

Problemas com Entrada e Saída Problemas com Entrada e Saída Periféricos possuem características diferentes Geram diferentes quantidades de dados Em velocidades diferentes Em formatos diferentes Periféricos são mais lentos que UCP e

Leia mais

Variáveis e Memória. Revisão. Conceitos. Operações sobre a memória

Variáveis e Memória. Revisão. Conceitos. Operações sobre a memória Variáveis e Memória Revisão Estudamos, na Introdução, que os programas de computador implementam algoritmos, os quais manipulam um conjunto de dados para produzir um resultado. O algoritmo é um conjunto

Leia mais

Sistemas de Entrada e Saída

Sistemas de Entrada e Saída Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2016 1 / 33 Sumário 1 Dispositivos de E/S 2 Interrupções 3 Software de E/S 2

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Entrada e Saída Slide 1 Entrada e Saída Dispositivos Externos E/S Programada Organização e Arquitetura de Computadores I Sumário E/S Dirigida por Interrupção

Leia mais

Dados em programas são estruturados, enquanto que mensagens carregam informação seqüencial: Linearização x Restauração de dados Requisição

Dados em programas são estruturados, enquanto que mensagens carregam informação seqüencial: Linearização x Restauração de dados Requisição 6LVWHPDV'LVWULEXtGV 0GHO&OLHQWH6HUYLGU &PXQLFDom 6XPiUL Introdução Elementos Básicos de Comunicação Comunicação Cliente-Servidor Comunicação em Grupo Chamada emota de Procedimento (PC) Prof a. Cristina

Leia mais

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Comunicação em Grupo Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 10.4 pág. 304-311 2 Comunicação em Grupo Suponha que se deseja um serviço de arquivos único

Leia mais

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos Infra Estruturas Computacionais Professor: André Ferreira andre.ferreira@ifba.edu.br Material baseado: Prof.ª Renata Vilas e outros Estados dos processos novo admissão condição satisfeita pronto carga

Leia mais

Gerência de Dispositivos. Adão de Melo Neto

Gerência de Dispositivos. Adão de Melo Neto Gerência de Dispositivos Adão de Melo Neto 1 Gerência de Dispositivos Introdução Acesso ao Subsistema de E/S Subsistema de E/S Device Drivers Controladores Dispositivos de E/S Discos Magnéticos Desempenho,

Leia mais

Periféricos possuem características diferentes. Periféricos são mais lentos que UCP e Memória Necessita-se de módulos de Entrada/Saída

Periféricos possuem características diferentes. Periféricos são mais lentos que UCP e Memória Necessita-se de módulos de Entrada/Saída Periféricos possuem características diferentes Geram diferentes quantidades de dados Em velocidades diferentes Em formatos diferentes Periféricos são mais lentos que UCP e Memória Necessita-se de módulos

Leia mais

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Notas da Aula 10 - Fundamentos de Sistemas Operacionais Notas da Aula 10 - Fundamentos de Sistemas Operacionais 1. Escalonadores preemptivos Escalonadores preemptivos são aqueles que têm a capacidade de interromper a execução de um processo para realizar alterações

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Ementa Introdução a Redes de

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Transporte - Parte II Prof. Thiago Dutra Agenda n Parte I n Introdução n Protocolos de Transporte Internet n Multiplexação e Demultiplexação n

Leia mais

Capítulo 3 Camada de transporte

Capítulo 3 Camada de transporte Capítulo 3 Camada de transporte slide 1 Introdução e serviços de camada de transporte A camada de transporte fornece comunicação lógica, e não física, entre processos de aplicações: slide 2 Relação entre

Leia mais

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

PCS-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 mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Slide 1 Memória Virtual os primeiros computadores (início dos anos 60) tinham memória principal muito reduzida O PDP-1 funcionava com uma memória de 4096 palavras

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Prof. Jó Ueyama Apresentação baseada nos slides da Profa. Kalinka Castelo Branco, do Prof. Dr. Antônio Carlos Sementille e da Profa. Dra. Luciana A. F. Martimiano e nas transparências

Leia mais

Sistemas de Troca de Mensagens

Sistemas de Troca de Mensagens Universidade Federal do Rio de Janeiro Programa de Pós-Graduação em Informática DCC/IM - NCE/UFRJ Arquitetura de Sistemas Paralelos Sistemas de Troca de Mensagens Sistemas de Comunicação O Sistema de Comunicação

Leia mais

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação. Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas

Leia mais

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução Introdução Gerência de Memória (Aula 18) Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será

Leia mais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO O SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO O SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ INTRODUÇÃO À TECNOLOGIA DA PROFESSOR CARLOS MUNIZ O QUE É UM SISTEMA OPERACIONAL? Há muitos tipos de Sistemas Operacionais, cuja complexidade varia e depende de que tipo de funções é provido, e para que

Leia mais

Camada de Enlace de Dados

Camada de Enlace de Dados Camada de Enlace de Dados Camada de Enlace de Dados aborda algoritmos que permitem uma comunicação eficiente e confiável entre dois computadores adjacentes em nível da camada de enlace de dados (adjacentes

Leia mais

Rede de computadores Cliente- servidor. Professor Carlos Muniz

Rede de computadores Cliente- servidor. Professor Carlos Muniz Rede de computadores Professor Carlos Muniz Definição Cliente-servidor é um modelo computacional que separa clientes e servidores, sendo interligados entre si geralmente utilizando-se uma rede de computadores.

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Resiliência de Processos

Sistemas Distribuídos: Conceitos e Projeto Resiliência de Processos Sistemas Distribuídos: Conceitos e Projeto Resiliência de Processos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 6ª Aula Entrada e Saída Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Estrutura da máquina de von Neumann Dispositivos Periféricos Interface com o mundo exterior

Leia mais

Relógio Lógico Algoritmo de Lamport. Relógio Lógico Algoritmo de Lamport. Relógio Físico Algoritmo Centralizado. Relógio Físico Algoritmo Centralizado

Relógio Lógico Algoritmo de Lamport. Relógio Lógico Algoritmo de Lamport. Relógio Físico Algoritmo Centralizado. Relógio Físico Algoritmo Centralizado Relógio Lógico Algoritmo de Lamport Objetivo: Sincronização de clocks lógicos Os tempos associados aos eventos não são necessariamente próximos ao tempo real. Os processos não precisam estar de acordo

Leia mais

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace Redes de Computadores II Módulo 1 Introdução e a camada de enlace 1 Comunicação de Dados e Redes de Computadores O problema fundamental da comunicação é reproduzir em um ponto exatamente ou aproximadamente

Leia mais

Modelo de Camadas. Redes de Computadores

Modelo de Camadas. Redes de Computadores Modelo de Camadas Redes de Computadores Sumário Visão Geral de uma Rede de Computadores Protocolos Modelo de Camadas Porque utilizar Tipos de Modelos de Referência Modelo de Referência ISO/OSI Histórico

Leia mais

Entrada e Saída e Dispositivos

Entrada e Saída e Dispositivos Entrada e Saída e Dispositivos Uma das funções do Sistema Operacional é: - Gerência de dispositivos de E/S. Operações: - Tratamento de interrupções - Tratamento erros - Interfaceamento entre os dispositivos

Leia mais

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado) Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado) Capítulo 3 Concorrência Agenda Introdução Interrupções e exceções Operações de Entrada/Saída Buffering

Leia mais

Trabalho do Curso de Redes de Computadores COS765/MAB /1

Trabalho do Curso de Redes de Computadores COS765/MAB /1 Trabalho do Curso de Redes de Computadores COS765/MAB731 2015/1 Universidade Federal do Rio de Janeiro Rosa M.M. Leão e Daniel Sadoc Menasché Primeiro Período de 2015 1 Introdução O objetivo deste trabalho

Leia mais

Processos ca 3 pítulo

Processos ca 3 pítulo Processos capítulo 3 Introdução: Threads Para executar um programa, o sistema operacional cria um determinado números de processos virtuais. O sistema operacional mantém uma tabela de processos que contém

Leia mais

Sistemas Operacionais

Sistemas Operacionais Brainstormig Sistemas Operacionais Processos e multiprogramação Aula 2 Quais são os componentes de um programa? Como podemos representar um programa em execução? Onde ele inicia a executar? Como se mapeia

Leia mais

Sistemas de Computação. Gerenciamento de memória

Sistemas de Computação. Gerenciamento de memória Gerenciamento de memória Localização de processos Um programa fica armazenado em disco como um arquivo executável binário e tem que ser colocado na memória para começar a ser executado Os processos podem

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 6 Gerenciamento de Memória Prof. Galvez Considerações Gerais Multiprogramação implica em manter-se vários processos em memória Memória necessita ser alocada de

Leia mais

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão Unidade 5 Camada de Transporte e Aplicação Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 5.1 Protocolo UDP 5.2 Protocolo TCP 5.3 Principias Protocolos de Aplicação 5.3.1 SMTP

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES Prof. Esp. Fabiano Taguchi fabianotaguchi@gmail.com http://fabianotaguchi.wordpress.com BENEFÍCIOS MODELO OSI Menor complexidade; Interfaces padronizadas; Interoperabilidade entre

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Comunicação Confiável de Grupo Capítulo 8 Comunicação Confiável de Grupo Camadas de Transporte oferecem comunicação ponto-a-ponto confiável (TCP)

Leia mais

Dispositivos de Entrada e Saída

Dispositivos de Entrada e Saída Departamento de Ciência da Computação - UFF Dispositivos de Entrada e Saída Prof. Marcos A. A. Guerine mguerine@ic.uff.br 1 Dipositivos periféricos ou simplesmente periféricos permitem a comunicação da

Leia mais

Redes de Computadores

Redes de Computadores s de Computadores Prof. Macêdo Firmino Modelo TCP/IP e OSI Macêdo Firmino (IFRN) s de Computadores Setembro de 2011 1 / 19 Modelo de Camadas Para que ocorra a transmissão de uma informação entre o transmissor

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Memória Memória virtual Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Slides baseados nas apresentações dos prof. Tiago Ferreto e Alexandra Aguiar

Leia mais

Prof. Samuel Henrique Bucke Brito

Prof. Samuel Henrique Bucke Brito RM-OSI: Modelo de Referência www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito Quando surgiram as redes de computadores havia um grande problema de compatibilidade entre

Leia mais

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto Matéria: Sistema Computacional - SC Prof.: Esp.: Patrícia Dias da Silva Peixoto SISTEMA OPERACIONAL E TIPOS DE SISTEMAS OPERACIONAIS O QUE É UM SISTEMA OPERACIONAL (S.O.). Por mais complexo que possa parecer,

Leia mais

Sistemas Operacionais. Entrada/Saída

Sistemas Operacionais. Entrada/Saída Sistemas Operacionais Entrada/Saída Atualizado em 28/02/2014 Como ocorre a comunicação de E/S Aplicação Operações de E/S Chamadas de Sistema S.O. Subsistema de E/S Núcleo (Kernel) Drivers HARDWARE Controladoras

Leia mais

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos Sistemas de arquivos distribuídos ECO036 - Sistemas Paralelos e Distribuídos Sistemas de arquivos distribuídos - Daniel Nogueira 20938 - Felipe Castro Simões 21525 Sumário 1. Introdução 2. Sistemas de

Leia mais

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 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

Leia mais

PROTOCOLOS DE COMUNICAÇÃO

PROTOCOLOS DE COMUNICAÇÃO PROTOCOLOS DE COMUNICAÇÃO 3º ANO / 2º SEMESTRE 2014 INFORMÁTICA avumo@up.ac.mz Ambrósio Patricio Vumo Computer Networks & Distribution System Group Serviços de Transporte na Internet Arquitectura TCP/IP

Leia mais

Camada de Transporte Protocolos TCP e UDP

Camada de Transporte Protocolos TCP e UDP Arquitetura de Redes de Computadores e Tecnologia de Implementação de Redes 2016.1 Camada de Transporte Protocolos TCP e UDP Curso Técnico Integrado em Informática Turma: INT.INF.3M Arquitetura de Redes

Leia mais

18/10/2010. Unidade de Controle Controle. UC Microprogramada

18/10/2010. Unidade de Controle Controle. UC Microprogramada Arquitetura de Computadores Unidade de Controle Controle Microprogramado Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO UC Microprogramada

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Transações atômicas Conteúdo O modelo transacional Armazenamento estável Primitivas transacionais Propriedades das transações Transações aninhadas Implementação Área de trabalho privada

Leia mais

EXERCÍCIOS DE REVISÃO REDES DE COMPUTADORES EDGARD JAMHOUR. Segundo Bimestre

EXERCÍCIOS DE REVISÃO REDES DE COMPUTADORES EDGARD JAMHOUR. Segundo Bimestre EXERCÍCIOS E REVISÃO REES E COMPUTAORES EGAR JAMHOUR Segundo Bimestre Exercício 1. Considere o cenário abaixo supondo que o switch 1 é o root 1 100M 4 4b 6a 6 1a 1b 100M 1G 2a 3a 2 3 2b 2c 3b 4a 1G 1G

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Recuperação Capítulo 8 Agenda Introdução Pontos de Verificação Registro de Mensagens Introdução Essência: Quando ocorre uma falha no sistema, é

Leia mais

Sistemas de Entrada e Saída

Sistemas de Entrada e Saída Sistemas de Entrada e Saída Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Junho, 2017 1 / 44 Sumário 1 Dispositivos de E/S 2 Interrupções 3 Camadas de Software

Leia mais

Dispositivos de Entrada e Saída

Dispositivos de Entrada e Saída Departamento de Ciência da Computação - UFF Dispositivos de Entrada e Saída Prof. Marcos A. Guerine mguerine@ic.uff.br 1 Dipositivos periféricos ou simplesmente periféricos permitem a comunicação da máquina

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Jordana Sarmenghi Salamon jssalamon@inf.ufes.br jordanasalamon@gmail.com http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda

Leia mais

Sistemas Operacionais. Interrupção e Exceção

Sistemas Operacionais. Interrupção e Exceção Sistemas Operacionais Interrupção e Exceção Interrupção e Exceção Durante a execução de um programa podem ocorrer alguns eventos inesperados, ocasionando um desvio forçado no seu fluxo de execução. Estes

Leia mais

SSC0641 Redes de Computadores

SSC0641 Redes de Computadores SSC0641 Redes de Computadores Capítulo 4 Camada de Rede 4.1 a 4.3 Prof. J ó Ueyama Abril/2011 SSC0641-2011 1 Objetivos do Capítulo 4 Camada de Rede Entender os princípios dos serviços da camada de rede:

Leia mais

Redes de Computadores I

Redes de Computadores I Redes de Computadores I Prof.ª Inara Santana Ortiz Aula 3 Protocolos de Comunicação Protocolos de Comunicação Protocolos de Comunicação Para que ocorra a transmissão de uma informação entre o transmissor

Leia mais

Prof. Adriano Maranhão

Prof. Adriano Maranhão Prof. Adriano Maranhão Memória Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será o compartilhamento

Leia mais

Canais de Comunicação

Canais 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 mais

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de I Organização e Arquitetura Básicas B de (Parte III)

Leia mais

INSTITUTO FEDERAL CATARINENSE Campus Ibirama

INSTITUTO FEDERAL CATARINENSE Campus Ibirama INSTITUTO FEDERAL CATARINENSE Campus Ibirama Arquitetura de Hardware Professor Eduardo Stahnke Arquiteturas Grande diversidade das arquiteturas de computadores Componentes básicos do computador Os Principais

Leia mais

Funções da Camada de

Funções da Camada de Camada de Transporte Funções da Camada de Transporte 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,

Leia mais

Técnicas de comutação

Técnicas de comutação Técnicas de comutação Abordagens para a montagem de um núcleo de rede [Kurose] Comutação Alocação de recursos da rede (meio de transmissão, nós intermediários etc.) para transmissão [Soares] Técnicas de

Leia mais

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa. Para monitorar

Leia mais

Gerência de Memória Introdução Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será o compartilhamento

Leia mais

Notas da Aula 14 - Fundamentos de Sistemas Operacionais

Notas da Aula 14 - Fundamentos de Sistemas Operacionais Notas da Aula 14 - Fundamentos de Sistemas Operacionais 1. Dispositivos de E/S Uma operação de entrada e saída é aquela que envolve a leitura ou escrita de dados a partir de dispositivos que estão fora

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Entrada e Saída Norton Trevisan Roman Marcelo Morandini Jó Ueyama Apostila baseada nos trabalhos de Kalinka Castelo Branco, Antônio Carlos Sementille, Luciana A. F. Martimiano e nas

Leia mais

Correção de Erros. Erros de memória de semicondutores podem ser:

Correção de Erros. Erros de memória de semicondutores podem ser: Correção de Erros Erros de memória de semicondutores podem ser: Erros graves que constitui um defeito físico permanente; Erros moderados, onde a(s) célula(s) não são capazes de armazenar os dados ou fazem

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Prof. Fabio Augusto Oliveira Processos O processador é projetado apenas para executar instruções, não sendo capaz de distinguir qual programa se encontra em execução. A gerência de

Leia mais

Sincronização em Sistemas Distribuídos

Sincronização em Sistemas Distribuídos Sincronização em Sistemas Distribuídos Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Sincronização Como as regiões críticas são implementadas em um SD? Como

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 14: Entrada e Saída: Dispositivos e Tipos de Acesso Diego Passos Dispositivos de E/S Operação de E/S É qualquer operação que mova dados do contexto do processador

Leia mais

Camada de Rede. Endereçamento de Rede Protocolo IP

Camada de Rede. Endereçamento de Rede Protocolo IP Camada de Rede Endereçamento de Rede Protocolo IP Camada de Rede Protocolo mais importante: IP IPv4 (mais utilizada) IPv6 (atender ao crescimento das redes e a necessidade de novos endereços). PDU: Pacote

Leia mais

Lista de Exercícios. Camada de Enlace de Dados

Lista de Exercícios. Camada de Enlace de Dados Lista de Exercícios Camada de Enlace de Dados 1. Um pacote de uma camada superior de redes é dividido em 10 quadros, e cada quadro tem 80% de chances de chegar sem danos. Se o protocolo de enlace de dados

Leia mais

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência de Dispositivos Subsistemas de E/S Device Driver Controlador de E/S

Leia mais

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual AULA Nº 11 SISTEMAS OPERACIONAIS Técnicas de Memória Virtual 1 Contextualizando Vimos Introdução ao Gerenciamento de Memória Agora Técnicas de Memória Virtual 2 O que é Memória Virtual (MV)? É uma técnica

Leia mais

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ   fevereiro, / 41 Thread Sistemas Operacionais Leonard B. Moreira UNIVERSIDADE ESTÁCIO DE SÁ e-mail: leonardbarreto@gmail.com.br fevereiro, 2013 1 / 41 Sumário 1 Introdução 2 Ambientes Monothread 3 Ambientes Multithread

Leia mais

Introdução. Considerações:

Introdução. Considerações: Gerência de Memória Introdução Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será o compartilhamento

Leia mais