apostila s.o 2

Upload: max-mendes

Post on 28-Feb-2018

243 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Apostila S.O 2

    1/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    1

    Prof. Maringela Loureiro Silva

  • 7/25/2019 Apostila S.O 2

    2/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    2

    CONTEUDO PROGRAMATICO

    I - Introduo a Sistema Distribudo (S.D)

    I.1 - Objetivos;I.2 - Evoluo;I.3 - Conceitos de hardware;I.4 - Conceitos de software;I.5Ambiente de computao distribuda

    II - Sistemas Distribudos

    II.1Modelos distribudos;II.2Comunicao em S.D.;II.3Sincronizao e processos em S.D.;

    III - Sistemas de arquivos distribudos

    III.1Projeto de sistemas de arquivos distribudos (S.A.D);III.2Implementao de S.A.D.;III.3Gerenciamento de dados distribudos;

    Livros textos:1Sistemas Operacionais ModernosTanenbaum2Client / Server ArchitectureAlex BersonEditora Mac Graw Hill3Operating System ConceptsSilberschatz GalvinAddison Weslez

    I

  • 7/25/2019 Apostila S.O 2

    3/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    3

    INTRODUO

    Sistema Operacional.Serve como intermedirio entre o hardware e aplicativos.Exemplos de aplicativoscompiladores, editores de texto, banco de dados.Um Sistema OperacionalPode ser visto como:

    a)Alocador de recursosTais como CPU, memria, disco, E/S.Gerncia estesrecursos e os aloca para os programas.

    b)Programa de controleControla a execuo dos programas.

    1 - Sistema Operacional de 1agerao:

    - programador operava o computador atravs do console (chaves, botes, luzes, etc.).- Mais tarde apareceram dispositivos de E/S tais como: leitoras de cartes, impressoras,

    fitas magnticas e softwares tais como: assemblers, loaders, linkers.

    2 - Sistema Operacional em Batch:

    - CPU ficava ociosa enquanto programador operava console. Para resolver tal problemaforam usados:

    a) Computador operado por profissionais ;b) programa monitor residente que executava o sequenciamento de tarefas;c) melhorar a velocidade dos dispositivos de sada;d) troca dos dispositivos de E/S sequenciais pelo disco cujo acesso randmico.

    Processamento spooling utiliza o disco como buffer para ler de dispositivos deentrada e para guardar arquivos de sada at que os dispositivos de sadaestejam prontos .

    3 - Sistema Operacional em Batch multiprogramado:

    - a estrutura em disco pool de tarefas, permite que o sistema operacional selecione qualtarefa vai ser a proxima a ser executada mais importante caracterstica oescalonamento de tarefasaumento da utilizao da CPU.

    Caractersticas:a) Escalonamento de tarefaspara decidir e escolher entre vrias tarefas do

    disco, qual ser trazida p/ memria.b) Gerenciamento de memrianecessrio porque existem vrios programas

    na memria ao mesmo tempo.c) Escalonamento de C.P.U.para decidir e escolher entre vrias tarefas

    prontas que esto na memria qual tarefa ocupar a C.P.U.

  • 7/25/2019 Apostila S.O 2

    4/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    4

    4 - Sistemas Time-sharing ou Multitarefas

    - extenso lgica de multiprogramao- chaveamento freqente entre tarefas, de tal forma que o usurio no perceba- cada tarefa recebe uma pequena poro do tempo da C.P.U.- permite que vrios usurios compartilhem o computador simultneamente.- O usurio tem impresso que o computador executa seu aplicativo exclusivamente.

    Caractersticas:

    a) Gerenciamento de memria e proteoporque vrias tarefas podem estarna memria simultneamente.

    b) Memria Virtualporque uma tarefa pode no estar completamente namemria e sim no disco.

    Programa 1

    Pro rama n

    Programa 1

    S.O.

    Prog

    Entrada Memria CPU

    Monoprogram

    Programa1

    Programa n

    S.O .

    Memria C.P.U 1

    Multiprogramao

    Programa 1

    Programa 2

    Programa n

    ..................

    S.O.

    Memria

    Multiprocessamento a multiprogramaoem vrias C.P.U.s

    C.P.U 1

    C.P.U 2

  • 7/25/2019 Apostila S.O 2

    5/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    5

    c) Gerenciamento de discod) Escalonamento de C.P.U. -execuo concorrentee) Sincronizao e comunicao de tarefas para garantir a execuo

    ordenada das tarefas.f) Preveno de diadlock

    5 - Computadores Pessoais :S.O.no multiusurio e nem multitarefaEx.: MS-DOS e Apple MacintoshOS/2S.O. multitarefa da IBMWindows 3.11no S.O. um sistema de janelas do MS-DOSWindows 95S.O. da Microsoft que multitarefaWindows NTS.O. da Microsoft que permite multiprocessamento

    6 - Sistemas Paralelo :- Possuem mais de um processador- Processadores se comunicam intensamente, dividem o bus, relgio, memria e

    dispositivos- Fortemente acoplados

    a) Vantagens:-Aumento processadoresmenor tempo de execuo-Aumento de seguranafunes podem ser distribudas pelos processadores

    falha de um processador no para o sistema, s degenera.

    b) Desvantagens:- Algoritmos paralelos so complicados- Software para implementar sistemas paralelos so primitivos- Hardware caro

    7 - Sistemas Distribudos

    - Mais de um processador- No dividem memria, nem relgio- Processadores se comunicam via linhas de comunicaes tais como: buses de alta

    velocidade ou linha telefnica.

  • 7/25/2019 Apostila S.O 2

    6/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    6

    - Processadores variados so referenciados como: ns sites, computadores.

    a) Vantagens:- Compartilhamento de recursos

    - Aumento da velocidade de computao

    atravs da distribuio de tarefas.- Seguranase um computador falha o resto do sistema opera normalmente. Seexiste redundncia o sistema continua a operar mesmo com falha de um doscomponentes

    - Comunicaousurios se comunicam entre si e podem dividir arquivos, trocarmensagens, etc.

    8 - Sistemas de Tempo Real- Quando existem requisitos de tempo rgidos na operao de um processador ou do

    fluxo de dados.

    - Pode ser distribudo ou centralizado- Exemplos so: controle industrial, controle de armas, controle de sensores, etc.- Processamento deve executar dentro de limites de tempo bem definidos seno o

    sistema falha.- S funciona corretamente se retorna resultado dentro do limite do tempo estabelecido

    9 - Vantagens dos Sistemas Distribudos em relao aos Sistemas Centralizados- Economia- Velocidadepoder computacional- Distribuio inerente

    - Confiabilidade- Crescimento incremental

    10 - Vantagens dos Sistemas Distribudos em relao aos PCs independentes- Compartilhamento de dados.- Compartilhamento de dispositivos.- Comunicao- Flexibilidadeaplicaes podem ser executadas em outras mquinas.

    11 - Desvantagens dos Sistemas Distribudos em relao aos Sistemas Centralizados

    - Software complexos- Rede de comunicao pode saturar ou falhar- Seguranafacilidade de acesso a dados secretos

  • 7/25/2019 Apostila S.O 2

    7/71

  • 7/25/2019 Apostila S.O 2

    8/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    8

    3) PROCESSAMENTO DE COMPARTILHAMENTO DE RECURSOSPCs so ligados ao sistema atravs de uma LAN para permitir compartilhamento derecursos comuns tais como: arquivos em disco, impressora, scanner, etc. Estesrecursos compartilhados so denominados SERVIDORES.Estes servidores podem ser dos seguintes tipos:

    Servidor de arquivospermite compartilhamento de arquivosServidor de impressopermite compartilhamento de impressoO Processamento da aplicao executado nos clientes e somente funes de E/Sso distribudas.Exemplos de LANs que so dedicadas a este tipo de processamento: NovellsNetware e Microsofts LAN Manager.

    3) PROCESSAMENTO CLIENTE SERVIDORExtenso do processamento de compartilhamento de arquivos. Com o aumento donmero de workstations suportados e da capacidade e poder destas mquinas, oprocessamento foi dividido entre cliente e servidor, mas no no modo mestre-escravo.Exemplos de ambientes deste tipo de processamento: servidor de banco de dadoscomo Sybase ou Microsoft SQL Server.

    LAN

    dados

    ClienteCliente

    AplicaoAplicao

    Servidor

    LAN

    cliente

    Aplicao

    cliente

    Aplicao

    Servidor de recursos

    dado

  • 7/25/2019 Apostila S.O 2

    9/71

  • 7/25/2019 Apostila S.O 2

    10/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    10

    d)Permite o uso de plataformas de hardware e software diferentes entre clientes eservidores liberando os usurios de arquiteturas proprietrias.

    3.3) DESVANTAGENS DO PROCESSAMENTO CLIENTESERVIDOR

    a) Poro significante da lgica da aplicao movida para um servidor, que podese tornar um gargalo do sistema do mesmo jeito que um mainframe o gargalonuma arquitetura mestre-escravo;

    b)Desenvolvimento de aplicaes distribudas complexoc)Depurao e manuteno de aplicaes distribudas so complexas

    3.4) EXEMPLOS DE PROCESSAMENTO CLIENTESERVIDOR

    IPX/SPX - protocolo Novell

    Sistema operacional. do servidor Novell, e o Sistema Operacional do cliente pode serqualquer um

    Microsoft LAN manager

    aplicao

    cliente Servidor Novell

    IPX/SPX

    a licao

    cliente

    SO

    aplicao

    cliente

    SO

    aplicao

    SO Novell

    SO

    a licao

    cliente

    SO

    aplicao

    cliente

    SO

    a licao

    cliente

    SO

    Novell

  • 7/25/2019 Apostila S.O 2

    11/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    11

    - Windows workgroup e windows 95 : no h servidor, so mono-usurios emultitarefassem segurana

    TCP/IP ou Microsoft com protocolo NETBEUI

    Windows NT multi-usurio , multitarefaWindows NT Server multiprocessamento, tem vrias CPUs internas, projetadop/executar banco de dados cliente-servidor tais como SQL Server, Sybase, Informix,

    Oracle.

    3.5) EXEMPLO DE BANCO DE DADOS CLIENTESERVIDOR

    3.6) EXEMPLO DE SERVIDOR DE ARQUIVOS

    Todo processamento feito no cliente que executa lock p/acessar arquivo e um unlockp/liber-lo.Ex.: Access em rede ou Q&A no so servidores de banco de dados

    Windows NTCPU 1.

    S.O.

    Aplicao AplicaoWindows NT Server

    CPU n.

    cliente Servidor

    clientecliente cliente

    Banco dadosL arquivosGrava arquivos

    Cliente solicita dadoscomandos

    dados

    Servidor processa dadosrespostas

  • 7/25/2019 Apostila S.O 2

    12/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    12

    4) PROCESSAMENTO PEERTO - PEER

    - Todos os participantes do sistema so iguais e podem requisitar e fornecer serviosentre si

    - Processamento distribudo de fato porque o processamento executado onde os

    recursos computacionais esto disponveis, incluindo CPU e memria.- Possibilita o uso de banco de dados em rede, onde os usurios DBMS estaro aptospara movimentar-se entre mltiplos bancos de dados heterogneos, assim este seriaum sistema distribudo real.

    aplicaodados dados

    aplicao

    aplicaoaplicaodados

    dados

  • 7/25/2019 Apostila S.O 2

    13/71

  • 7/25/2019 Apostila S.O 2

    14/71

  • 7/25/2019 Apostila S.O 2

    15/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    15

    Exemplo de leitura:

    a) CPU coloca endereo da palavra da memria na linha de endereob) CPU coloca um sinal de leitura na linha de controlec) Memria responde colocando o valor da palavra nas linhas de dados para a CPU

    solicitante

    Como s existe 1 memria, se a CPU A escreve uma palavra na memria e a CPU B l apalavra microsegundos mais tarde, B ir obter o valor escrito por ltimo. Uma memriaque tem esta propriedade dita coerente.Quando o sistema composto de mais de 4 CPUs o bus fica sobrecarregado e odesempenho cai drasticamente. Para resolver este problema, foi colocada uma memriade alta velocidade denominada memria cache entre a CPU e o bus.A cache guarda as palavras mais recentemente acessadas e todos os pedidos de memriafluem via a cache.Se a palavra requisitada est na cache, ela responde CPU e nenhum pedido ao bus

    realizado.Se a cache grande o suficiente a probabilidade de sucesso ir ser alto e a quantidade dotrafego no bus por CPU ir diminuir drasticamente, permitindo muito mais CPUs nosistema.Tamanhos de cache variam de 64K a 1M, que oferecem uma taxa de velocidade de 90%.

    Memria coerentequando garantido a leitura do ultimo valor atualizadoMemria cachememria de alta velocidade para melhorar o desempenho tamanho

    64K a 1M, taxa de velocidade 90%.

    2)

    Multiprocessadores chaveados

    C

    C

    MM

    Memrias

    CPUs

  • 7/25/2019 Apostila S.O 2

    16/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    16

    Quando uma CPU quer acessar uma memria, o barramento conecta-osinstantaneamente. Vrias CPU`S podem acessar memrias ao mesmo tempo, embora se 2CPU`S tentarem acessar a mesma memria ao mesmo tempo, uma delas ter que esperar.Com este tipo de arquitetura com nCPUs e nmemrias , so necessrios n x npontosde chaveamento. Para grandes nmeros de nrodarem esse clculo se torna quase que

    proibitivo. Para resolver este problema temos uma arquitetura chaveada como mostradaabaixo, que requer poucos pontos de chaveamento. Exemplo de rede omega.

    Esta rede contem 4 chaves 2 x 2, onde cada chave tem 2 entradas e 2 sadas. No casogeral com nCPU`S e nmemrias a rede omega requer log2nestgios de chaveamento,cada estgio contendo n/2 chaves para um total de n log2 n/2 chaves.

    3) Multicomputadores baseados em bus

    Cada CPU tem uma comunicao direta com sua prpria memria. Como a comunicao somente entre CPU`S o volume de trafego muitssimo menor do que quando a rede deinterconexo tambm usada para o trafego entre CPU memria.Sua topologia similar ao multiprocessador baseado em bus com muito menor trafego.Pode ter uma LAN com baixa velocidade de 10100 Mbps.

    exemplo de um multicomputador com vrias workstation numa LAN

    C

    C

    C

    C

    M

    M

    M

    MemriaLocal

    CPU

    workstation

    M

    rede

    C

    PUs

    Memrias

    MemriaLocal

    CPU

    workstation

    MemriaLocal

    CPU

    workstation

  • 7/25/2019 Apostila S.O 2

    17/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    17

    4) Multicomputadores chaveados

    a) Exemplo : grids tem sua prpria memria bem ajustada para problemas que tem umanatureza bidimensional , tal como a troca de grafos ou viso (ex. olhos de um rob)

    a) Um hipercubo um cubo ndimensional. Para um hipercubo ndimensional, cadaCPU tem nconexes para outras CPUs. Assim a complexidade da fiao aumentasomente logaritmamente com o tamanho. Como somente vizinhos esto conectadosmuitas mensagens tem que executar vrios hops para chegar a seu destino.

    Hipercubos com 1024 CPU`S tem sido comercializados por vrios anos e atualmentechegam a 16.384 CPU`S. Cada vrtice uma CPU e cada arco conecta 2 CPUs.

    MemriaLocal

    MemriaLocal

    MemriaLocal

    MemriaLocal

    MemriaLocal

    MemriaLocal

    CPU CPU CPU

    CPU CPU CPU

  • 7/25/2019 Apostila S.O 2

    18/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    18

    Conceitos de Software

    Existem 2 tipos de Sistemas Operacionais para sistemas com mltiplas \ CPU sfortemente acoplados ou fracamente acoplados.Software fracamente acoplados permite que maquinas e usurios de um Sistema

    distribudo sejam independentes um do outro, mas interajam quando necessrio .Exemplo:Grupo de PCs com sua prpria CPU, memria, disco e sistema operacional, mascompartilhando recursos tais como impressora numa LAN.

    1) Sistemas Operacionais de Rede - NOS ( Network Operational SystemSistemas de Arquivos em RedeNFS ( Network File Service)

    Para fornecer um sistema de arquivos global e compartilhado entre vrios clientes temos1 ou mais maquinas chamadas servidores de arquivos, que l e escrevem arquivos apedido dos clientes.

    Servidores de arquivo mantm sistemas de arquivos hierrquicos, cada um com umdiretrio raiz, contendo subdiretorios e arquivos. Workstations podem importar oumontar estes sistemas de arquivos aumentando seus sistemas de arquivos locais comaqueles nos servidores. Exemplo de diretrios de 2 clientes usando 2 servidores.

    Cliente 1

    Jogo1Jo o2

    Programa1Pro rama2

    JogosProg

    Cliente 1

    Jogo1Jogo2

    Programa1Programa2

    Cliente 2

    Jogos

    Jogo1Jogo2

    Prog

    Programa1

    Programa2

    Cliente 2Servidor 1Jogos

    Servidor 2Prog

    /Jogos/Prog/Programa1/Prog/Programa1

  • 7/25/2019 Apostila S.O 2

    19/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    19

    1 NFSO NFS um sistema operacional de rede da SUN que visualiza um conjunto de

    workstations interconectadas como um conjunto de mquinas independentes. Oobjetivo permitir algum grau de compartilhamento entre estes sistemas de arquivosde uma forma transparente. O compartilhamento permitido entre qualquer par de

    mquinas, independentemente de serem mquinas servidoras dedicadas.Para que um diretrio remoto possa ser acessado de forma transparente a partir deuma mquina, o cliente desta mquina deve executar uma operao de mountprimeiro. A semntica desta operao funciona da seguinte forma:

    diretrio remoto montado sobre um diretrio do sistema de arquivos local; diretrio montado parece como uma sub-rvore do sistema de arquivos

    local; especificao do diretrio remoto como um argumento para a operao de

    mount no feita de uma maneira transparente, a localizao do diretrioremoto deve ser fornecido, mas aps montado os usurios acessam odiretrio remoto de maneira transparente.

    Para ilustrar a montagem de arquivos, ser apresentado o seguinte exemplo:A figura 1.1 mostra 3 sistemas de arquivos independentes de mquinas distintasonde os tringulos representam sub-arvores de diretrios.

    Aps a montagem, apresentada na figura 1.2, qualquer um deles pode acessar qualquerarquivo dentro do diretrio dir1, usando o prefixo /usr/local/dir1, na mquina U.

  • 7/25/2019 Apostila S.O 2

    20/71

  • 7/25/2019 Apostila S.O 2

    21/71

  • 7/25/2019 Apostila S.O 2

    22/71

  • 7/25/2019 Apostila S.O 2

    23/71

  • 7/25/2019 Apostila S.O 2

    24/71

  • 7/25/2019 Apostila S.O 2

    25/71

  • 7/25/2019 Apostila S.O 2

    26/71

  • 7/25/2019 Apostila S.O 2

    27/71

  • 7/25/2019 Apostila S.O 2

    28/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    28

    II.1) - Modelos Distribudos

    O desenvolvimento de uma arquitetura de computao distribuda tem sido afetado porduas foras opostas:

    - Uma fora considera como prioritrios os usurios finais com autonomia local e

    aumento da produtividade do usurio com o uso de GUIs .- A Segunda fora oposta tem suas raiz na necessidade do usurio acessar dadoscorporativos. Esta necessidade afeta os requisitos de integrao de sistemas e resultana centralizao de aplicaes em grande e poderosos mainframes. Esta Segundafora aumenta a necessidade de nveis de integridade mais altas, desempenho edisponibilidade. Para resolver estes requisitos utiliza-se o enfoque multitiered ouMulticamada, um das mais populares configuraes de ambiente de computaodistribuda.

    Mainframe Host

    Camada1 ou Tier1

    Preo / desempenhoFuncionalidade

    Autonomia local

    Servidor

    Lan

    Lan

    Necessidade deIntegridade de altonvel

    Camada2 ou Tier2

    Camada3 ou Tier3

  • 7/25/2019 Apostila S.O 2

    29/71

  • 7/25/2019 Apostila S.O 2

    30/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    30

    1)Processamento Cooperativo Cliente / Servidor

    A caracterstica mais importante de uma aplicao com processamento cooperativo oalto grau de interao entre vrios componentes da aplicao. Numa arquitetura cliente/ servidor, estas interaes so as interaes entre os pedidos dos clientes e as reaes

    dos servidores a este pedidos..Uma aplicao tpica consiste dos seguintes componentes:

    a) Lgica do processamento de apresentao

    Parte da aplicao que interage com um dispositivo tal qual o terminal de usurio ouworkstation.

    Executa as seguintes tarefas:- Formao de tela, leitura e escuta da informao na tela.- Gerncia de janela, teclado e mouse.Exemplos:

    - Para ambiente centralizado mainframe :IBMs, CICS, IMS/DC e ISSO- Para GUI em ambiente PC DOS.OS/2 Presentation Manager, Microsoft Windows

    - Para GUI em ambiente UNIXX Windows, OSFs Motif, SUNs Open Look

    b)Lgica de processamento do negocio:

    Parte da aplicao que usa os dados de entrada para executar as tarefas do negocio. Estecdigo escrito numa linguagem de programao.

    c) Lgica de processamento do banco de dados:

    Parte da aplicao que manipula dados dentro da aplicao. O dado gerenciado por umsistema de gerncia de Banco de Dados (SGBD).A manipulao de dados em SGBD relacionados feito usando algum dialeto deStructure Query Language (SQL).

    d) Processamento de Banco de Dados:

    o real processamento dos dados do Banco de Dados que executado pelo SGBD.Idealmente o processamento SGBD transparente lgica de negcios da aplicao.

  • 7/25/2019 Apostila S.O 2

    31/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    31

    2 -Componentes tpicos de uma aplicao

    Quando somente dados so distribudos entre varias localizaes, vrios benefcios como( dados processando prximos fonte, alta disponibilidade etc.) so obtidos destadistribuio. Porm pode-se criar um gargalo, um fator limitante na busca de mais altos

    desempenhos, portabilidade e escalabilidade.Se alm dos dados parte da aplicao for tambm distribuda, os recursos sero melhorutilizados.

    A arquitetura cliente / servidor emprega processamento cooperativo distribudo para:

    a) Distribuir componentes de processamento da aplicao entre cliente(apresentao e parte da lgica do negcio) e servidores (parte da lgica denegcio, lgica do BD e SGBD).

    b) Suportar interaes entre cliente e servidores de uma forma cooperativa.

    Se uma aplicao requer leitura e escuta freqentes a um grande BD corporativo, o BD esua lgica de processamento colocado na camada de topo.Se o acesso infreqente ou mais s de leitura, pode ser importante colocar cpias dodado na 2 camada do servidor.Na Segunda camada, coloca-se o servidor, lgica do processamento de dados, e partescomuns da lgica do negcio. Neste caso todas as camadas contem seu prprio BD.

    Tela

    Aplicao

    S G B D

    Lgica Banco deDados

    Lgica Negocio

    LgicaApresentao

    SQL

  • 7/25/2019 Apostila S.O 2

    32/71

  • 7/25/2019 Apostila S.O 2

    33/71

  • 7/25/2019 Apostila S.O 2

    34/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    34

    6 - Exemplo : Arquitetura de 3 camadas com acesso a dados heterogneos

    DB 2SGBD DB2relacional

    Host

    IBM 3090

    SGBD SybaseUNIXO/S

    Camada 1Conector SNA

    Servidor SUN

    Camada 2

    Dbase IIIBD Dbase III

    Aplicao

    Windows 3.0

    PS/2

    Cliente

    ClienteCamada 3

    SybaseBD

  • 7/25/2019 Apostila S.O 2

    35/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    35

    7 - Tcnicas de processamento Cooperativo

    Para que todos os componentes da arquitetura multicamada coopere, certas tcnicas decomunicao entre componentes deve ser empregado. Existem 3 tcnicas bascas: Pipes

    Remote Procedure Calls Interaes SQL cliente / servidor

    a) PipesMecanismo orientado a conexo que passa dado de um processo para outro. Muito usadoem sistemas UNIX. Exemplo de mecanismo pipes: IBMs SNA e Suns NFS.

    b) Remote Procedure Call (RPC)

    um mecanismo pelo qual um processo pode executar outro processo que reside numsistema diferente e remoto executando um diferente S.O. O mecanismo de transporte

    ocultado do usurio RPC. Exemplos: OSFs RPC, Suns Netwise, IBMs OS/2 Remote,Program Link (RPL) e Sybases RPC.

    c) Interao Cliente / Servidor SQL

    um mecanismo para passar os pedidos SQL e dados associados de um processo(geralmente cliente) para outro processo (servidor) SQL cliente / servidor um casoespecial de interaes aplicvel a aplicaes BD relacional distribudo.

  • 7/25/2019 Apostila S.O 2

    36/71

  • 7/25/2019 Apostila S.O 2

    37/71

  • 7/25/2019 Apostila S.O 2

    38/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    38

    A arquitetura cliente / servidor envolve processamento de compartilhamento dedispositivo um dos seus principais objetivos foi permitir que uma aplicao baseada nocliente acesse dado remoto eficientemente. O acesso fornecido por um servidor de BD.Um servidor de BD contem o software SGBD e o dado propriamente dito. SGBD um software compartilhado.

    No ambiente cliente / servidor todos os pedidos do cliente so para o servidor. Num ambiente de grupo, a maioria dos dados a serem processados necessitam ser

    compartilhados entre clientes. Colocar dados e o SGBD juntos num servidor de BD facilita a implementao da

    facilidade que fornece integridade de dados e disponibilidade.

    Com tudo isto, a deciso apropriada colocar o software SGBD e todos os dadoscompartilhados num servidor de banco de dados.Existem dois modos que uma aplicao poderia ser conectada a um servidor executandoum SGBD.

    a) Uma conexo direta aplicaoSGBD

    Onde a aplicao do cliente usa protocolos de comunicao e alguma espcie deprocessamento de transao remota para pedir a um servidor que possui SGBD acesso aodado.

    Lgica BD

    Lgica Negocio

    Apresentao

    Cliente

    S G B D

    SGBD

    Conexo direta

  • 7/25/2019 Apostila S.O 2

    39/71

  • 7/25/2019 Apostila S.O 2

    40/71

  • 7/25/2019 Apostila S.O 2

    41/71

  • 7/25/2019 Apostila S.O 2

    42/71

  • 7/25/2019 Apostila S.O 2

    43/71

  • 7/25/2019 Apostila S.O 2

    44/71

  • 7/25/2019 Apostila S.O 2

    45/71

  • 7/25/2019 Apostila S.O 2

    46/71

  • 7/25/2019 Apostila S.O 2

    47/71

  • 7/25/2019 Apostila S.O 2

    48/71

  • 7/25/2019 Apostila S.O 2

    49/71

  • 7/25/2019 Apostila S.O 2

    50/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    50

    Exemplos:S = socket (AF_INET,SOCK_STREAM, ); cria um socket stream no domnio Internetcom protocolo TCP

    S = socket (AF_UNIX, SOCKT_DGRAM, ) ; cria um socket datagrama no domnio

    UNIX com protocolo datagrama

    2.2 - Ligao a Nomes locaisUm socket criado sem nome. Ele no pode ser referenciado at que um endereo sejaassociado a ele. A comunicao entre processos feita atravs da conexo de endereos.

    No domnio Internet a conexo composta de .

    No domnio UNIX, uma conexo composta de .

    Sintaxe da rotina bind: Bind (S, nome, tam_nome) onde:S handle (descritor) do socket;Nome string que interpretado pelo protocolo. Nomes no domnio Internet

    contem : endereo Internet e numero porta, nomes no domnio UNIXcontem um path name e uma famlia .

    Tam_nome: tamanho do string que especifica o parmetro nome

    2.2.1 - Exemplo: Bind o nome tmp/foo a um socket domnio UNIX# include

    struct sockaddr_un addr;

    strcpy (addr.sun_path, tmp/foo);addr.sun_family = AF_UNIX;bind (S, (struct sockaddr*) & addr, strlen (addr.sun_path) + sizeof (addr.sun_foo)

    O nome de arquivo referenciado no addr.sun_path deve ser criado como um socket nosistema de arquivos e o chamador deve ter permisso de escrita no diretrio em que eleser criado. O arquivo dever ser deletado pelo chamador quando no mais necessrio.

    2.2.2 - Exemplo: bind um nome a um socket no domnio Interne;# include # include ...struct sockaddr_in sin;bind (S, (struct sockaddr*) & sin, sizeof sin);

  • 7/25/2019 Apostila S.O 2

    51/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    51

    2.3 - Estabelecimento de Conexo

    Estabelecimento assimtricaum processo como cliente e outro como servidor.O servidor une um socket a um endereo bem conhecido associado com o servio, e sebloqueia neste socket esperando um pedido de conexo.

    No lado do cliente a chamada connect ( ) inicializa uma conexo

    2.3.1 - Exemplos: No domnio UNIXStruct sockaddr_un server;Server.sun.family = AF_UNIX;...connect (S, (struct sockaddr *) & server,strlen (server.sun_path) + sizeof (server.sun_family)

    2.3.2 - Exemplos: No domnio InternetStruct sockaddr_in server;

    connect (S, (struct sockaddr *) & server, sizeof (server)

    2.3.3 - Para receber uma conexo do cliente, um servidor deve executar 2 passosaps o binding.

    1) Indicar quantas conexes podem ser enfileiradas.2) Aceitar a conexo

    Exemplo:Struct sockaddr_in from;...

    listen (S,5) ; /* permite enfileiras 5 conexes */fromlen = sizeof (from);newsock = accept (S, struct sockaddr*) & from ,& fromlen);onde:

    Sendereo para o qual o pedido de conexo enviado.Listenespecifica o nmero mximo de conexes que podem ser enfileiradas.Fromestrutura que preenchida com endereos dos clientes.Fromlentamanho da estruturaAcceptnormalmente bloqueia, ele retorna um novo descritor de socket que

    conectado ao cliente. O valor de from mudado para o real tamanho doendereo.

  • 7/25/2019 Apostila S.O 2

    52/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    52

    2.3.4 - A figura abaixo mostra uma transferencia orientada a conexo

    Protocolo Com Conexo

    socket ( )

    bind ( )

    listen ( )

    accept ( )

    read ( )

    write ( )

    connect ( )

    socket ( )

    write ( )

    CLIENTESERVIDOR

    ica bloqueado at aconexo com o cliente

    stabelecimento de conexo

    ados (reply)

    ados ( pedidos)

    edido de processo

    read ( )

  • 7/25/2019 Apostila S.O 2

    53/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    53

    2.3.5 - A figura abaixo mostra uma transferencia de dados sem estabelecimento deconexo:

    Protocolo Sem Conexo

    2.4 - Transferencia de Dados via socket

    2.4.1 - Enviando dados atravs de um socket

    Aps o estabelecimento do socket, temos 3 chamadas do sistema para a transmisso dedados:a ) - Write s usado para sockets conectados e tem o seguinte formato:

    Write (descritor, buffer, tamanho) onde:Descritor descritor do socketBuffer ponteiro para o buffer de dados a serem enviadosTamanho tamanho dos dados

    b ) - Send tem o seguinte formato : Send (descritor, buffer, tamanho, flags) onde :Descritor descritor do socketBuffer ponteiro para seqncia de bytes a serem enviadosTamanho nmero de bytes a serem enviados

    Flags controla a transmisso de dados. Elas so:msgoobenvia / recebe dados out-of-bandmsgpeekolha os dadosmsg-dontrouteenvia dados sem roteamento de pacotes.

    socket ( )

    bind ( )

    recvfrom ()

    CLIENTESERVIDOR

    socket ( )

    bind ( )

    ca bloqueado at que dados sejamrecebidos de algum cliente

    sendto( )

    sendto ( )

    ados (reply)

    ados ( pedidos)

    edido de processo

    recvfrom (

  • 7/25/2019 Apostila S.O 2

    54/71

  • 7/25/2019 Apostila S.O 2

    55/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    55

    Sincronizao e Deadlock em Sistemas Distribudos

    1 - Sincronizao de relgios

    Sincronizao em S.D. mais complicado do que em sistemas centralizados, devido a

    necessidade de usar algoritmos distribudos, em geral estes algoritmos tem as seguintespropriedades: As informaes relevantes esto distribudas em vrias mquinas; Processos tomam decises baseados somente em informaes locais; Um simples ponto de falha deve ser evitado; No existe nenhum relgio geral ou outro tempo global

    1.1 - Relgio Lgico

    Sincronizao de relgio no necessita ser absoluto, se 2 processos no interagem, noexiste a necessidade que seus relgios estejam sincronizados. Para muitos propsitos

    suficiente que todas as mquinas concordem com o mesmo tempo. No essencial que otempo coincida com o tempo real, por isto podemos definir este relgio como relgiolgico e relgios fsicos so relgios que acompanham o tempo real.

    Lamport apresentou o seguinte algoritmo para sincronizar os relgios lgicos;Exemplo de trs processos que enviam mensagem entre si, cada um com seu prpriorelgioMensagens C e D enviam para outros processos que tem relgio com temposinferiores ao processo de origem. Esta situao deve ser evitada.

    1 2

    6 8 1012 16 2018 24 3024 32 4030 40 5036 48 6042 56 7048 64 8054 72 9060 80 100

    O algoritmo de Lamport sincroniza estes relgios resolvendo o problema atravs daalterao do relgio destino com o valor do relgio origem mais tempo gasto para enviara mensagem.

    A

    B

    C

    D

  • 7/25/2019 Apostila S.O 2

    56/71

  • 7/25/2019 Apostila S.O 2

    57/71

  • 7/25/2019 Apostila S.O 2

    58/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    58

    1.2.3 - Algoritmo Token Ring

    Para resolver o problema da excluso mutua utilizamos este algoritmo que funciona daseguinte maneira: Atravs de software um anel lgico construdo onde a cada processo atribudo

    um nmero no anel, onde cada processo conhece que o processo sucessor. Quando a rede inicializada, o processo recebe um token (ficha). Este token

    circula a rede, ele passado de um processo para outro em mensagens ponto a ponto. Quando um processo recebe um token ele verifica se est querendo acessar alguma

    regio critica. Se ele necessita, ele acessa a regio e depois libera o token para oprocesso vizinho.

    Um processo que detm o token s pode entrar em uma regio critica de cada vez, eledeve liberar o token aps acessar uma regio critica e s na prxima rodada esteprocesso acessar a outra regio critica.

    Se um processo recebe um token mas ele no deseja acessar nenhuma regio critica,ele o libera imediatamente para o processo vizinho.

    2 - Dealdlock em Sistemas Distribudos

    So difceis de impedir, prevenir ou mesmo detectar porque as informaes estodistribudas em varias mquinas. Em alguns sistemas como sistema de banco de dadosdistribudo, eles podem ser extremamente srios.Dois tipos de deadlock em sistemas distribudos podem existir: deadlock de comunicaoocorre por exemplo quando um processo A est

    tentando uma mensagem para o processo B que est tentando uma mensagem parao processo C que est tentando uma mensagem para o processo .;

    deadlock de recursosocorre quando processos esto lutando para uso exclusivo de

    dispositivos de I/O, arquivos ou outros recursos

    2.1 - Deteco de Deadlock Centralizado

    Como primeira tentativa ns podemos usar um algoritmo centralizado e tentar imitar oalgoritmo no distribudo.Cada mquina mantm o grafo de recursos dos seus processos e recursos e umcoordenador centralmantm o grafo de recursos para todo o sistema ( a unio de todosos grafos individuais).Quando o coordenador detecta um ciclo, ele mata um processo para quebrar o deadlock.Diferentemente do caso centralizado onde todas as informaes esto automaticamente

    disponveis, no caso distribudo quando um arco do grafo local adicionado oucancelado do grafo de recursos, uma mensagem pode ser enviada para o coordenadorprovidenciar a atualizao.Ou periodicamente todo processo pode enviar uma lista de arcos adicionados oucancelados desde a ultima atualizao.

  • 7/25/2019 Apostila S.O 2

    59/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    59

    Exemplo: A , B e C so processos e T , R e S usurios.

    Maquina Maquina 1 Viso doCoordenador

    Quando o processo B terminar e libera R que acessado por A que quando terminar

    libera S para o processo C.2.2 - Deteco de Deadlock DistribudoUm algoritmo tpico que executa esta funo, funciona da seguinte maneira.Neste algoritmo processos podem requisitar mltiplos recursos ao mesmo tempo, aoinvs de um por vez. Um processo pode esperar em 2 ou mais recursos simultaneamente.

    Como visto na figura acima temos: Processo 1 espera por um recurso local Processo 2 espera por recursos que esto localizados em outra maquina.

    O algoritmo acionado quando um processo tem que esperar por algum recurso, porexemplo; o processo bloqueado no ,processo 1. Neste ponto uma mensagem especial gerada para enviar ao processo que mantm os recursos. Esta mensagem contem 3nmeros:

    nmero do processo bloqueado ;nmero do processo que est enviando a mensagem ;nmero do processo destino;

    A primeira mensagem de para 1 contm (0,0,1). Quando a mensagem chega no destino.

    A

    R

    S

    B

    segura

    segura

    espera

    S

    C

    T

    segura

    esperaA S

    C

    T

    R

    B

    0 1 3

    4

    5

    6

    7

    8

    (0,8,0)

    (0,2,3)

    (0,4,6)

    Mquina 0Mquina 1 Mquina 2

    (0,5,7)

    2

  • 7/25/2019 Apostila S.O 2

    60/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    60

    Sistemas de Arquivos DistribudosNum sistema Distribudo importante distinguir entre os conceitos de servio de arquivoe servidor de arquivo.

    O servio de arquivo a especificao do que o sistema de arquivos oferece aos seus

    clientes. Ele descreve as primitivas disponveis, os seus parmetros e as aes que elesexecutam. Ele especifica a interface do sistema de arquivos para os clientes.

    Um servidor de arquivos um processo que executa em alguma maquina o servio dearquivos.

    Um sistema de arquivos pode ter 1 ou vrios servidores mais os clientes no devem sabercomo estes so implementados, no devem conhecer quantos eles so e onde eles selocalizam.Um servidor de arquivo normalmente um processo de usurio executando em algumamquina.

    Uum sistema pode conter mltiplos servidores de arquivo, cada um oferecendo umservio de arquivo diferente. Por exemplo 2 servidores oferecendo servio de arquivoUNIX e um servio de arquivo MS-DOS.

    1 - Projeto de sistemas de Arquivos DistribudosUm sistema de arquivos distribudos tem 2 componentes distintos: Servio de arquivo - responsvel pelas operaes nos arquivos individuais, tais

    como : leitura, escrita. Servio de diretrioresponsvel pela criao e gerenciamento de diretrios,

    adicionando e deletando arquivos dos diretrios.

    1.1 - Interface do Servio de ArquivoA questo fundamental para um servio de arquivo saber o que um arquivo ? Emsistemas como UNIX e MS-DOS um arquivo uma seqncia de bytes no interpretada.Em mainframe arquivo pode ser estruturado como uma seqncia de registros.A maior parte dos servidores de arquivos consideram um arquivo uma seqncia debytes.Um arquivo pode Ter atributos que so informaes sobre ele mas no so parte delepropriamente dito.Ex. atributos so: proprietrio, tamanho, data criao e permisso deacesso.

    Um importante aspecto do modelo de arquivo se o arquivo pode ser modificadoaps criado. Arquivos que no podem ser modificados so chamados imutveis.

    Proteo em sistemas de arquivos distribudos usam as tcnicas: capacidadee listas decontrole de acesso.

    a) capacidadeespecifica que tipos de acessos so permitidos ao usurio operarsobre o arquivo.

  • 7/25/2019 Apostila S.O 2

    61/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    61

    b) Listas de controle de acessoassocia a cada arquivo uma lista de usurios quepodem acessa-lo e que tipos de acesso so permitidos a cada um.

    Os servios de arquivos podem ser divididos em 2 tipos de acordo com o modelo upload/ download ou modelo de acesso remoto.

    a) No modelo upload / downloadas operaes de escrita ou leitura de um arquivo sorealizadas transferindo o arquivo desejado do servidor para o cliente solicitante queexecuta a operao desejada e retorna para o servidor:

    vantagem : modelo conceitualmente simples desvantagem : cliente deve ter disponvel memria para armazenar os arquivos

    desejados.

    b) No modelo de acesso remoto- o servio de arquivo oferece vrios servios como:

    abrir e fechar arquivos, leitura, escrita, mudana de atributos, etc. Neste modelo osistema de arquivo executa no servidor e no no cliente. Tem a vantagem de noocupar espao nos clientes.

    1.2 - Interface do Servidor de Diretrio

    O servio de diretrios fornece as seguintes operaes : criar e deletar diretrios

    Arquivo antigo

    Arquivo novo

    Acessos so realizados no clientearquivo retornado ao servidor quando o clientetermina

    ClienteServidor

    Pedidos do cliente para acessararquivo remoto arquivo fica no servidor

    ClienteServidor

  • 7/25/2019 Apostila S.O 2

    62/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    62

    nomear e renomear arquivos mover arquivos de 1 diretrio para outro

    Ele define algum alfabeto e sintaxe para compor nome de arquivo

    Geralmente nomes de arquivos podem ter de 1 a um mximo de letras, nmeros e algunscaracteres especiais. Nomes so formados por 2 partes separadas por um ponto, asegunda parte chamada de extenso do arquivo e identifica o tipo do arquivo. Ex.:prog.C , relatorio.doc, relatorio.txt

    Todos os sistemas permitem que diretrios contenham subdiretrios para permitir aousurio grupar arquivos relacionados

    Um Sistema de Arquivo Hierrquico aquele que possui uma rvore de diretrios, comsubdiretrios dentro de subdiretrios.

    Ex.:

    Em alguns sistemas possvel criar links ou ponteiros para um diretrio arbitrriopossibilitando a criao de grafos de diretrios arbitrrios que so muito maispoderosos do que diretrios em arvore. Ex.:

    B

    A

    D E

    C

    A 0

    B 2 C 1

    D 1 E 1

    Quantidade de diretrios queapontam para este diretrio

    Mquina 01

    Mquina 02

  • 7/25/2019 Apostila S.O 2

    63/71

  • 7/25/2019 Apostila S.O 2

    64/71

  • 7/25/2019 Apostila S.O 2

    65/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    65

    d) - Transaes AtmicasPara acessar um arquivo ou um grupo de arquivos, um processo primeiro executa algumtipo de primitiva BEGIN TRANSACTIONque sinaliza que o que se segue indivisvel,o sistema ento l e/ou escreve em arquivos. Quando o trabalho esta completado umaprimitiva END TRANSACTION executada.

    A propriedade principal deste mtodo a garantia do sistema que todas as chamadascontendo transaes so executadas em ordem sem qualquer interferncia de outrastransaes concorrentes.

    Um exemplo clssico onde transaes so usadas o sistema bancrio.

    A figura abaixo apresenta um resumo dos quatro mtodos acima:

    Mtodo SignificadoSemntica UNIX Toda operao num arquivo imediatamente visvel para todosos processos

    Semntica Sesso Nenhuma mudana visvel paraoutros processos at que o arquivo fechado

    Arquivos Inumveis Nenhuma atualizao possvel,simplifica compartilhamento ereplicao

    Transaes Todas as mudanas tem a

    propriedade de tudo-ou-nada

  • 7/25/2019 Apostila S.O 2

    66/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    66

    Implementao de Sistemas de Arquivos Distribudos

    1Utilizao de Arquivos

    Propriedades observadas do sistema de arquivos :

    Muitos arquivos so pequenos o que facilita a transferncia de arquivos entre servidore clientes. Leitura muito mais comum do que a escrita. Leitura e escrita so seqnciais. Acesso randmico raro. Muitos arquivos tem um tempo de vida pequeno, por este motivo uma boa idia

    criar o arquivo no cliente, e guard-lo at seu cancelamento, evitando assim o trafegodesnecessrio entre servidor-cliente.

    Compartilhamento de arquivo no comum, por isto o uso de caching no cliente e asconseqncias da semntica de sesso tem bom desempenho.

    Em mdia, processo usa somente poucos arquivos.

    2 - Estrutura do SistemaEm alguns sistemas (NFS) no existe distino entre um cliente e um servidor. Todas asmquinas executam o mesmo software bsico, assim qualquer mquina pode oferecerservio de arquivo.Em outros sistemas os servidores de arquivo e de diretrio so apenas programas deusurios de tal forma que o sistema pode ser configurado para executar software cliente eservidor na mesma mquina ou no.Por ltimo existem sistemas que clientes e servidores tem hardware e software distintos.Uma 2 implementao aquela em que sistemas diferem de como os servios de arquivoe diretrio esto estruturados.

    Uma organizao combina os dois servios em um nico servidor.Outra organizao manter os dois servios separados. Abrir um arquivo requer que oservidor de diretrio mapea seu nome simblico em seu nome binrio (mquina + i_node) para ento ser enviado ao servidor de arquivo que com este nome binrio executaa leitura ou escrita do arquivo.Considere como exemplo servidores de arquivo e diretrio separados. O cliente envia onome simblico para o servidor de diretrio que ento retorna o nome binrio que oservidor de arquivo reconhece, mas a hierarquia de diretrio pode estar em vriosservidores, como desenho abaixo :

    a / b / c onde a entrada a est no servidor 1, b no servidor 2 e c no servidor 3,

    sendo que c tem o arquivo com seu nome binrio.

  • 7/25/2019 Apostila S.O 2

    67/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    67

    Existem 2 formas de acessar o arquivo procurado: no primeiro o cliente envia para oservidor 1 que encontra a entrada a e devolve ao cliente informando que o restante docaminho est no servidor 2. Este cliente envia o pedido para o servidor 2 que encontra osub-diretrio b e responde ao cliente que o restante do caminho est no servidor 3. Porltimo o cliente envia o pedido ao servidor3 que retorna o arquivo pedido.

    A outra forma mais simples e automtica, os servidores vo automaticamente passandoo caminho para os outros que no final retornam ao cliente o arquivo desejado.

    cliente

    a

    b

    c

    arquivo

    DIRservidor 1

    DIR servidor2

    DIRservidor 3

    Procura a/b/c

    Procura b/c

    Procura c

    cliente

    a

    b

    c

    Procura b/c

    Procura c

    Resposta com c

    arquivo

    Procura a/b/c DIRservidor 1

    DIRservidor 2

    DIRservidor 3

  • 7/25/2019 Apostila S.O 2

    68/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    68

    Servidores statelessquando um cliente envia um pedido para o servidor, este respondee remove todas as informaes sobre este pedido.

    Servidores statefulguardam em tabelas internas informaes sobre todos os pedidosexecutados pelos clientes.

    Em servidores statelessos pedidos dos clientes devem ser completos e assim caso oservidor falhe nenhuma informao pedida, mas as mensagens so maiores.

    A tabela abaixo resume as vantagem e desvantagem dos dois tipos de servidores.

    Vantagens dos servidores stateless Vantagens dos servidores statefulTolerante a falhas Pedido de mensagens mais curtasNo necessita OPEN / CLOSE Melhor performanceNenhum espao ocioso nas tabelas do servidor Blocos podem ser lidos para frente para reduz

    atrasosNenhum limite no nmero de arquivos abertos

    3 - CachingCaching no servidor quando os arquivos mais usados so guardados na memria doservidor para evitar a transferncia do disco para a memria. Este tipo de caching evita atransferncia disco-memria mas no evita a transferncia via rede por isto umaalternativa para melhorar o desempenho utilizar caching no cliente.Pode-se ter 3 opes de caching : colocar cache dentro de cada processo ;

    colocar cache dentro do ncleo ; colocar um gerente de cache como um processo do usurio.

    O nmero de RPC sempre maior quando se usa caching. Nas situaes em que RPCsso rpidos e rede so lentas (CPU rpida e rede lenta) , existe um ganho de desempenhogrande. Se a transferncia de rede rpida, o tempo de transferncia ser bem menor maso tempo gasto em executar RPCs reduz o desempenho global.

    3.1 - Consistncia de CacheCaching no cliente introduz inconsistncia dentro do sistema. Se dois clientessimultneamente lem o mesmo arquivo e ento ambos o modificam, vrios problemas

    podem ocorrer. Se um terceiro l do servidor o arquivo ele vai estar desatualizado masestar cumprindo a semntica de sesso. Se o usurio espera a semntica UNIX o sistemano funciona.Quando os dois clientes retornam os arquivos para o servidor, o ltimo sobrepe oprimeiro.

  • 7/25/2019 Apostila S.O 2

    69/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    69

    Para resolver o problema de caching temos as seguintes solues :

    algoritmo write through - quando uma entrada de cache modificada, o novo valor guardado na cache mas tambm imediatamente enviado para o servidor, assim quandooutro processo l o arquivo ele obtm o valor mais recente.

    Problemas: na mquina 1 um processo A l o arquivo e guarda na sua cache, namquina 2 um processo B l o arquivo modifica e retorna ao servidor o arquivoatualizado. Quando um processo C na mquina 1 quer ler o mesmo arquivo como estej est na sua memria cache ele usa-o sem pedir ao servidorarquivo desatualizado.

    algoritmo write-on-close - somente escreve no arquivo e o envia ao servidor apsele ser fechado.

    algoritmo escrita atrasada - ao invs de enviar ao servidor aps uma escrita o clienteavisa que est atualizando o arquivo e o envia uma vez a cada 30 segundos, por exemplo.

    algoritmo controle centralizado - quando um arquivo aberto o servidor de arquivo avisado. O servidor de arquivo guarda a informao de quem abriu o arquivo e se asoperaes sobre ele so de leitura ou escrita.Se a operao de leitura o servidor permite que os outros processos abram o mesmoarquivo para leitura, mas se a operao de escrita os outros processos so impedidos deabrir o mesmo arquivo at que a escrita esteja terminada.

    4 - ReplicaoSistema de arquivos distribudos fornecem replicao de arquivo como um servio paraseus clientes.

    Mltiplas cpias so mantidas, com cada cpia num servidor de arquivo separado.Motivos de tal servio so: Aumentar a confiabilidade tendo backups independentes de cada arquivo. Se um

    servidor cae, nenhum dado perdido. Permitir que acesso a arquivo ocorra mesmo se um servidor esteje danificado. Um

    crash de um servidor no afeta o sistema como um todo. Dividir a carga em mltiplos servidores. Quando o sistema cresce em tamanho, um

    servidor s pode se tornar o gargalo do sistema. O uso de mltiplos servidoresexecuta o balanceamento de carga.

    Quando o sistema executa a replicao sem o conhecimento do usurio dito que existe

    transparncia de replicao.

  • 7/25/2019 Apostila S.O 2

    70/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    70

    Existem 3 formas de se executar replicao:

    a) O programador controla o processo inteiro. Quando ele deseja varias cpias, oendereo de rede de todas as cpias so associados com o nome do arquivo.

    Ex.:

    b) Replicao lazyaqui somente uma cpia de cada arquivo criada em algumservidor. Mais tarde o servidor faz ele prprio replicas em outros servidores sem oconhecimento do programador.

    c) Replicao de arquivo usando comunicao em grupo neste esquema todos oswrites so simultaneamente transmitidos para todos os servidores de uma s vez,assim todas as cpias so atualizadas ao mesmo tempo que o arquivo original.

    C

    S1

    S2

    S3

    cliente

    Servidores

    Prog.c 1.21 2.43 3.41

    nome simblico endereos binrios para asmquinas S1, S2, S3

    1

    2

    3

    C S2 S1

    S3

    AgoraMais tarde

    Mais tarde

  • 7/25/2019 Apostila S.O 2

    71/71

    Sistemas OperacionaisSistemas Distribudos Prof. Maringela Loureiro Silva

    4.1 - Protocolos Atualizados

    Algoritmos para atualizar cpias de arquivos so mostrados abaixo:

    a) replicao de cpia principalum servidor escolhido como o principal todos os

    outros so secundrios. Quando um arquivo replicado atualizado a mudana enviada para o servidor principal que faz a mudana e envia aos secundrios.

    b) Votaoa idia bsica forar o cliente a pedir permisso a mltiplos servidoresantes de ler ou escrever num arquivo replicado.Ex.: existem N servidores, o cliente deve contactar ao menos N/2 + 1 servidorese pedir autorizao para executar a alterao, uma vez que eles concordem o clienteexecuta a alterao e atribui um nmero de verso ao arquivo. Para ler um arquivoo cliente pede a pelo menos N/2 + 1 servidores que enviem o nmero da verso doarquivo e ele escolhe o mais recente.