Arquitetura de Sistemas Operativos



Documentos relacionados
Arquitetura de Sistemas Operativos

Programação de Sistemas

Programação de Sistemas

Redes e Telecomunicações

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)

Manual de Infraestrutura para Alunos

O que farias? pretendem servir de apoio à dinamização de sessões de trabalho

OURO MODERNO Web Designer APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

Programação 2ºSemestre MEEC /2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Redes de Comunicações Capítulo 6.1

Redes de Computadores

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Engenharia de Software Sistemas Distribuídos

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Sistemas Operativos /2006. Trabalho Prático v1.0

Aplicações de Escritório Electrónico

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

Departamento de Sistemas e Informática. Licenciatura em Engenharia Informática Industrial EDP

O protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura.

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação?

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Introdução. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Março de 2006

Permite o acesso remoto a um computador;

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.

Protocolos de Redes Revisão para AV I

Introdução aos Sistemas Operativos

Departamento de Informática

Obrigatoriedade de Comunicação SAFT-PT Questões Mais Frequentes Lista de Questões neste documento

XDOC. Solução otimizada para armazenamento e recuperação de documentos

Introdução ao Modelos de Duas Camadas Cliente Servidor

Sistemas Distribuídos

2 Diagrama de Caso de Uso

MODELO CLIENTE SERVIDOR

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Novo Formato de Logins Manual de Consulta

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

FTP Protocolo de Transferência de Arquivos

MANUAL DE CONSULTA RÁPIDA DO MODEM OPTIONS FOR NOKIA Copyright 2002 Nokia. Todos os direitos reservados Issue 2

Solução de Telecontagem. Gestão de Contratos. Esta solução é indicada para sistemas de contagem de caudal usando um mínimo de recursos.

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

Protocolo. O que é um protocolo? Humano: que horas são? eu tenho uma pergunta

Documento de ajuda para utilizadores de Office 2010/2007

Rua Cidade Rabat, 29A/B LISBOA Portugal. Tel /4 Fax

UFG - Instituto de Informática

Guia de Estudo Folha de Cálculo Microsoft Excel

CONFIGURAÇÃO DO ACESSO REMOTO PARA HS-DHXX93 E HS-DHXX96

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

REDE DE COMPUTADORES

Sistemas Distribuídos

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?


Introdução aos Computadores

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

Diagrama lógico da rede da empresa Fácil Credito

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Redes de Comunicações. Redes de Comunicações

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

Subcamada MAC. O Controle de Acesso ao Meio

COMPETÊNCIAS BÁSICAS EM TIC NAS EB1

AGRUPAMENTO DE ESCOLAS DA PEDRULHA ESCOLA BÁSICA RAINHA SANTA ISABEL Curso de Educação e Formação (Despacho Conjunto Nº453/2004, de 27 de Julho)

Um e-business que trabalha...

Mobile Business. Your sales on the move.

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de o Teste A

RECOLHA DE INFORMAÇÃO DE REMUNERAÇÕES, SUPLEMENTOS E DOS PONTOS DECORRENTES DA AVALIAÇÃO DE DESEMPENHO

Objetivos: i) Verificar o impacto de loops em redes locais ii) Configurar o protocolo STP para remover loops da rede

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

Uma visão mais clara da UML Sumário

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Sistemas Multimédia. Arquitectura Protocolar Simples Modelo OSI TCP/IP. Francisco Maia Redes e Comunicações

ICORLI INSTALAÇÃO, CONFIGURAÇÃO E OPERAÇÃO EM REDES LOCAIS E INTERNET

Sistemas Distribuídos

RELATÓRIO SOBRE OS POCEDIMENTOS UTILIZADOS PARA O PLANEAMENTO E INSTALAÇÃO DE UMA REDE EM TOPLOGIA ESTRELA

GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1)

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Linux Network Servers

Nós fazemos fácil o difícil

Manual do Utilizador. Impressoras de Rede / Sistemas Operativos Windows. Versão 1.3, Novembro de 2013

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

World Wide Web. Disciplina de Informática PEUS, U.Porto. Disciplina de Informática, PEUS 2006 Universidade do Porto

Profs. Deja e Andrei

Noções de. Microsoft SQL Server. Microsoft SQL Server

MANUAL UTILIZADOR SERVIÇO FTP

3 SCS: Sistema de Componentes de Software

Sistemas distribuídos:comunicação

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

REDES DE COMPUTADORES I 2007/2008 LEIC - Tagus-Park TPC Nº 2. Avaliação sumária da matéria do Capítulo 2

Evolução na Comunicação de

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Transcrição:

Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012

1 Modelos de Interacção entre Processos Produtor e Consumidor

Os dados transmitidos entre as aplicações são geralmente opacos para o sistema operativo, na medida em que este apenas se encarrega de os recolher do produtor (emissor) e entregá-los ao consumidor (recetor), ignorando a sua organização e estrutura internas (que podem ir desde simples sequências de caracteres ou valores numéricos até documentos estruturados, ou grafos de objetos serializados, quer em XML quer em codificação binária).

Cabe aos processos acordar o formato que os dados devem respeitar, bem como o protocolo a que obedece a troca dos mesmos. Estas operações são efetuadas recorrendo aos mecanismos de comunicação entre processos que são disponibilizados pelo sistema operativo.

A comunicação entre processos é também necessária para a própria sincronização entre tarefas e processos que se executam em máquinas diferentes, uma vez que não é possível, na ausência de uma memória comum, a dois processos em execução em computadores distintos, sincronizar-se, sem que haja transmissão física de informação entre eles.

Desta forma, os mecanismos de comunicação entre processos permitem elevar o nível de abstracção com que é programada a cooperação entre processos, uma vez que integram tanto os aspetos da sincronização como os da transferência de dados.

O modelo computacional da comunicação entre processos será descrito recorrendo à abstração de um objeto canal. A partir deste objeto conceptual são apresentadas as formas típicas de interação entre processos através de canais de comunicação, seguidas da explicação das características mais relevantes dos mesmos (por exemplo, estrutura das mensagens, sincronização), das técnicas de implementação e da sua integração no modelo computacional.

Estas vertentes vão permitir categorizar os mecanismos de comunicação reais integrados nos sistemas operativos Linux e Windows. Modelo de comunicação como generalização do modelo de cooperação entre processos através da abstração de um objeto canal:

Canal conceptual.

Na cooperação entre processos, existe um conjunto de algoritmos mais utilizados em problemas reais (por exemplo, produtor-consumidor, leitores e escritores). No modelo de comunicação entre processos existem também modelos de interação que são mais usuais e, por isso, importantes para compreender a maior parte das situações de comunicação entre processos.

A possibilidade de seguir um determinado modelo de interação entre processos determina muitas vezes qual ou quais os mecanismos de comunicação efetivamente utilizados por uma aplicação. A exploração destas características permite também otimizar a implementação dos mecanismos de transferência da informação.

Assim os modelos de interação entre processos envolvidos na comunicação, de modo a realizarem a comunicação entre si, são definidos por dois aspetos principais: o número de processos interlocutores envolvidos, i.e., associados ao canal, e o papel desempenhado por cada um deles.

Os modelos de interacção mais relevantes são apresentados de seguida indicando o número de processos com acesso a cada uma das extremidades do canal conceptual, referido na Figura anterior, juntamente com o nome porque são tradicionalmente conhecidos: Um-para-Um (Mestre-Escravo); Muitos-para-Um (Correio ou canal sem ligação); Um-para-Um de Vários (Diálogo ou canal com ligação); Um-para-Muitos (Difusão); Muitos-para-Muitos.

Um-Para-Um (Mestre-Escravo) Este modelo de interação baseia-se na associação estrita entre dois processos, sendo estabelecida uma ligação entre ambos. Pressupõe que o processo escravo tem a sua atividade totalmente controlada por um processo mestre. O canal de comunicação entre os dois processos é fixo e a associação destes ao canal é preestabelecida, o que implica que cada um conheça previamente a identificação do outro.

Um-Para-Um (Mestre-Escravo) Este modelo corresponde a estabelecer um canal com ligação entre os dois processos. O processo mestre age principalmente como produtor enquanto o escravo age principalmente como consumidor das mensagens enviadas pelo produtor, embora exista a possibilidade de transmissão de mensagens nos dois sentidos para envio de resultados da tarefa executada (pelo processo escravo).

Um-Para-Um (Mestre-Escravo) Este modelo de interação representa a alternativa mais simples de comunicação; todavia, impõe uma rigidez que limita fortemente o seu uso.

Um-Para-Um (Mestre-Escravo) É normalmente utilizado em situações em que existe um processo escravo encarregue de realizar tarefas específicas como controlar sensores, braços-robot, gravadores CD/DVD, cuja atividade é completamente controlada por um processo gestor (o mestre).

Um-Para-Um (Mestre-Escravo) O diagrama da figura seguinte descreve o decurso do modelo de interação mestre/escravo.

Um-Para-Um (Mestre-Escravo) O mestre não tem de pedir permissão para utilizar o escravo (enviando uma mensagem passo 1). O processo escravo processa a informação recebida (passo 2), podendo em sequência notificar o mestre de que completou o processamento. O principal aspecto deste modelo de interação reside na natureza estática e predefinida da associação entre processo mestre e escravo.

Um-Para-Um (Mestre-Escravo) Este modelo de interação é utilizado, por exemplo, em Linux quando o processo que executa a shell de interacção com o utilizador (mestre) cria processos-filho (escravos para executar os comandos digitados por este, e também quando a saída de um processo (mestre) é utilizada como entrada para outro processo (escravo) através do mecanismo de pipes.

Muitos-Para-Um (Correio) O correio baseia-se na possibilidade de transferência assíncrona de informação sob a forma de mensagens. As mensagens são enviadas individualmente por um conjunto de processos produtores a um processo consumidor que está preparado para recebê-las. O canal é criado previamente pelo processo consumidor e o seu nome é conhecido por todos os processos produtores, sendo por isso estático.

Muitos-Para-Um (Correio) Cada processo consumidor pode, desta forma, ser visto como um servidor que atende pedidos de vários clientes (os processos produtores). Este modelo de interação é mais flexível que o anterior. O produtor pode enviar mensagens sem que as anteriores tenham sido recebidas e processadas pelo consumidor. O produtor não tem qualquer controlo sobre o consumidor.

Muitos-Para-Um (Correio) O consumidor não é escravo uma vez que não trabalha para um produtor em particular, mas para o conjunto de processos a quem oferece um serviço. Este modelo de interacção é utilizado tradicionalmente pelos serviços de impressão (spooling) em que o processo consumidor recebe mensagem enviadas através do canal pelos processos produtores contendo pedidos de impressão de documentos.

Muitos-Para-Um (Correio) É também utilizado no âmbito das grids computacionais em que um computador de grande porte (consumidor) recebe mensagens de computadores pessoais (produtores) contendo pedidos de execução de cálculos científicos complexos. Numa analogia com o mundo real, este modelo de interacção é ainda exemplificado pelo envio de telegramas, mensagens telefónicas e o correio postal tradicional que lhe dá o nome.

Muitos-Para-Um (Correio) O diagrama da figura seguinte descreve o decurso do modelo de interação correio.

Muitos-Para-Um (Correio) O canal de comunicação deve memorizar as mensagens durante o intervalo de tempo que decorre entre a sua produção e o seu consumo, podendo um produtor ficar bloqueado se a capacidade de memorização do canal ti ver sido excedida. O mesmo pode ocorrer com o consumidor quando não há mensagens para serem recebidas ficando este bloqueado. O canal com capacidade de memorização das mensagens, utilizado neste âmbito, é vulgarmente designado por caixa de mensagens.

Um-Para-Um de Vários (Diálogo) O diálogo é um modelo de comunicação que se pode considerar como apresentando características híbridas dos dois modelos anteriores. Tal como na interacção mestre/escravo, também se estabelece um canal fixo entre dois processos. Contudo, este é criado de uma forma dinâmica.

Um-Para-Um de Vários (Diálogo) Um dos processos, designado normalmente como cliente, deve requisitar o estabelecimento da ligação enviando uma mensagem para um canal previamente criado pelo servidor exclusivamente para esse fim. Como resultado é criado um novo canal ao qual o cliente e o novo processo (ou tarefa) servidor dedicado ficam automaticamente associados.

Um-Para-Um de Vários (Diálogo) A associação é temporária e durará apenas o tempo da interação. Portanto, ao terminar esta ligação entre os dois processos, o novo canal é eliminado. Existe ainda uma variante desta forma de interação para o caso em que não é possível, ou desejável, criar um novo processo ou tarefa como servidor dedicado a cada cliente.

Um-Para-Um de Vários (Diálogo) Neste caso, cada um dos processos ou tarefas do servidor pode servir um número, desejavelmente reduzido, de clientes. Esta situação, também híbrida, tem um pendor adicional na solução do tipo correio.

Um-Para-Um de Vários (Diálogo) A justificação principal para este modelo de comunicação advém da maior eficácia que se pode obter da utilização de um canal dedicado quando os processos vão interactuar longamente ou transferir um grande volume de dados. A arquitetura e os protocolos de transferência de dados podem ser otimizados no sentido de obter melhor desempenho que utilizando duas caixas de mensagens.

Um-Para-Um de Vários (Diálogo) Este modelo de interação é utilizado no estabelecimento de uma sessão remota com um outro computador (por exemplo, telnet, ssh), na transferência de ficheiros e na utilização de remote desktop connection em Windows. Este modelo de interacção é tipicamente exemplificado pelas ligações telefónicas que consistem num canal dedicado entre dois telefones criado pela rede de centrais telefónicas.

Um-Para-Um de Vários (Diálogo) O diagrama da figura seguinte descreve o decurso do modelo de interacção diálogo.

Um-Para-Um de Vários (Diálogo) O processo cliente executa-se numa máquina e começa por estabelecer a comunicação com um servidor principal, encarregue do serviço em causa, que se executa num outro computador, utilizando para isso um canal predeterminado. Uma vez estabelecido o contacto, o servidor principal cria um novo processo (ou tarefa) e um novo canal dedicados apenas interação posterior com o cliente. Desta forma, o servidor principal apenas recebe pedidos de comunicação e, dinamicamente, cria a infra-estrutura específica que vai atender cada cliente.

Um-Para-Muitos (Difusão) Neste modelo de interacção, um processo produtor pretende enviar a mesma informação a um conjunto de processos consumidores, elencados em extensão, ou reunidos num grupo com identificação própria. Este modelo distingue-se do correio no seguinte aspecto: cada mensagem não é apenas recebida por um processo.

Um-Para-Muitos (Difusão) O motivo mais imediato para utilizara difusão relaciona-se com a necessidade de enviar a vários processos a mesma mensagem, tipicamente com informação de uso geral. Por exemplo, notificar que um serviço está disponível ou ficou indisponível. A difusão pode também ser realizada como um desdobramento do modelo de correio, obrigando o produtor a repetir a mensagem um número de vezes idêntico ao cardinal do conjunto de consumidores.

Um-Para-Muitos (Difusão) Contudo, esta realização é ineficiente e pouco flexível, dado que obriga a conhecer os nomes dos canais associados a todos os processos consumidores. Esta dificuldade é particularmente relevante no âmbito da comunicação em sistemas distribuídos sendo por isso utilizadas soluções como multicast IP e comunicação em grupo

Um-Para-Muitos (Difusão) O diagrama da figura seguinte ilustra este modelo de interação, de que um exemplo é o comportamento dos gestores de janelas quando se pretende desligar o computador, realizado através da difusão de uma mensagem de terminação/fecho a todas as janelas de aplicações em execução.

Um-Para-Muitos (Difusão)

Um-Para-Muitos (Difusão) Analogamente, quando se pretende minimizar todas as janelas, ocorre a difusão de uma mensagem específica, pelo gestor de janelas, a todas as janelas de aplicações em execução. Outros exemplos incluem a selecção de processos (por exemplo, selecção do gestor de periférico que controla uma impressora laser difundindo uma mensagem de detecção de gestores), detecção de recursos e serviços nas arquitecturas Jini e UPnP, e para aumento da fiabilidade (difusão das operações de um sistema de ficheiros a dois ou mais processos controladores de modo a manter duas cópias actualizadas e tolerar faltas).

Um-Para-Muitos (Difusão) Estabelecendo novamente a analogia com a comunicação no mundo real, este modelo é também exemplificado pelas transmissões rádio e TV com um único produtor (estação emissora) e muitos consumidores (aparelhos de receção).

Muitos-Para-Muitos Neste modelo de interação generalizado, todos os processos podem ser produtores e consumidores de mensagens e alternarem esses papéis durante a sua execução. Todos os processos podem ser produtores e as mensagens ficam disponíveis à totalidade dos processos que também podem agir como consumidores. Esta forma de interação é normalmente exclusiva para ambientes em que todos os processos interlocutores podem ler e escrever para memória partilhada entre eles.

Muitos-Para-Muitos Um exemplo deste modelo de interação é a utilização do clipboard no Windows onde todas as janelas de aplicações, instruídas pelo utilizador, podem produzir e consumir informação. Como exemplo de um sistema distribuído, a Wikipedia segue também este modelo de interação, onde todos os utilizadores podem consultar e inserir texto em cada artigo wiki. Fora do âmbito da informática, este modelo de interação pode ser exemplificado pela utilização de um quadro numa sala de reuniões através do qual todos os participantes podem produzir e consumir informação. Os modelos de interação apresentados constituem as formas

Muitos-Para-Muitos Na tabela seguinte são apresentados exemplos adicionais de correspondência com situações no mundo real. Modelo de Interação Situação no Mundo Real Um-para-um Muitos-para-um Um-para-um de vários Um-para-um Muitos-para-muitos Comunicação com par de walkie-talkies Correio postal, SMS entre telemóveis. Serviço telefónico. Televisão, rádio, painéis publicitários. Youtube, Clipboard.

Avaliação - Trabalho Teórico-Prático 4 Descreva um dos seguintes conceitos: Um-para-Um (Mestre-Escravo); Muitos-para-Um (Correio ou canal sem ligação); Um-para-Um de Vários (Diálogo ou canal com ligação); Um-para-Muitos (Difusão). O texto deverá: ser elaborado em grupo; enviado por email ao professor no final da aula; e deverá conter entre 250 a 500 palavras.