Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introdução SD #5

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions Introdução SD
Original file line number Diff line number Diff line change
@@ -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)
40 changes: 40 additions & 0 deletions Processos SD
Original file line number Diff line number Diff line change
@@ -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