diff --git "a/Introdu\303\247\303\243o SD" "b/Introdu\303\247\303\243o SD" new file mode 100644 index 0000000..f82636d --- /dev/null +++ "b/Introdu\303\247\303\243o SD" @@ -0,0 +1,26 @@ +Sistemas Distribuídos + +Introdução (definição, objetivos, tipos) +Definição: + SD é um grupo de computadores independentes, apresentados como um só sistema para o usuário. Então, por mais que + Vantagens: Escalabilidade e compartilhamento dos recursos. + +Objetivos/ metas: + Acesso a recursos: facilitar acesso e compartilhamento dos recursos aos usuários de maneira eficiente. Com isso, economizamos dinheiro e facilitamos a troca de informações. + O que é um recurso, afinal? Impressoras, PCs, Pgs web, redes, facilidades de armazenamento. + Groupware: software colaborativo + + Transparência: se apresenta para o usuário como apenas um. Então, de forma oculta, o sistema distribuído se mostra único, mesmo que seus processos estejam separados por vários computadores + Transparência de acesso, localização, migração, relocação, replicação, concorrência, falha + + Abertura: Um SD aberto oferece serviços apenas de acordo com as regras padrões (protocolos). Em redes, por ex, temos regras para formato, significado da troca de mensagens, e conteúdo. Em SDs no geral, temos a Interface Definition Languade – IDL, que costumam descrever as interfaces. Essas interfaces são responsáveis pela especificação dos serviços. + + Escalabilidade: De acordo com Neuman (1994), escalabilidade é referente a tamanho, termos geográficos e termos administrativos. Porém, um sistema escalado nesses âmbitos todos pode perder em performance. + Escalabilidade em tamanho: é fácil alocar recursos e usuários no sistema + Escalabilidade em termo geográfico: não há problema em usuários e recursos estarem geograficamente distantes + Escalabilidade em termo administrativo: é fácil de organizar/gerenciar esse sistema. + + Problemas de escalabilidade podem surgir por conta de: + Serviços centralizados (ex um único servidor pra vários users) + Dados centralizados (ex uma única lista telefônica online) + Algoritmos centralizados (ex um roteamento com base em informações completas) diff --git a/Processos SD b/Processos SD new file mode 100644 index 0000000..d0223c5 --- /dev/null +++ b/Processos SD @@ -0,0 +1,40 @@ +Processos + +Objetivo: apresentar os diferentes processos e seus papéis em SD + +Obs: O que é um processo? + Um processo é um programa em execução. Em outras palavras, um programa sendo executado em um dos processadores virtuais do SO naquele momento. + +Threads + +Para executar um programa, um SO cria vários processadores, cada um para uma execução de programa diferente. + +Pra monitorar esses processadores virtuais, o SO tem uma tabla de processos (processo = programa em execução), com entradas para guardar valores da CPU, mapas de memória, arquivos abertos, informações de contabilidade, privilégios, etc. + +Threads e processos são formas de fazer mais coisas ao mesmo tempo + + +O desempenho multithread não necessariamente é pior que o monothread. Na verdade, o multithreading ganha em desempenho no geral +Threads não são automaticamente protegidas umas das outras, então uma implementação multithread requer intelecto adicional + + +Virtualização + +Threads e processos nos permitem construir programas que parecem ser executados ao mesmo tempo. Se temos um computador de um processador, realmente é uma instrução por vez. Aí, o chaveamento rápido entre threads e processos que dá a ilusão de paralelismo. + +Então, aí entra a virtualização de recursos: temos uma CPU só, apesar de se dar a ilusão de múltiplas ações simultâneas. Isso pode ser feito para outros recursos também. + +Todo SD tem sua interface de alto nível + +Programa - Interface X - Hardware/Software sistema X + + +Resumo + +Processos desempenham um papel fundamental para formar uma base de comunicação entre diferentes bases. É importante entender a organização interna dos processos, e se suportam vários threads de controle ou não. + +"A organização de uma aplicação distribuída em termos de clientes e servidores se mostrou útil". O software cliente foca em transparência de distribuição, ocultando detalhes de comunicação e localização dos servidores. Também oculta questões de falhas + +Servidores podem envolver um ou mais serviços. Geralmente são mais complicados do que clientes. Podem ser iterativos (uma conexão por vez) ou concorrentes (várias por vez) + +Ref - Sistemas Distribuídos - Princípios e Paradigmas (2a edição). Andrew S. Tanenbaum, Maarten Van Steen