TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Sistemas Distribuídos

Por:   •  20/9/2015  •  Trabalho acadêmico  •  1.168 Palavras (5 Páginas)  •  914 Visualizações

Página 1 de 5

Capitulo 3 – Processos

No capitulo 3, os autores afirmam o quão importante é a utilização de multithreading para criação de sistemas distribuídos, onde sua principal contribuição é permissão de criação de client-server com eficiência e que sua comunicação e processamento local possam se sobrepor, resultando num alto nível de desempenho. Os threads são linhas de ou encadeamento de comandos que dividem um processo em duas ou mais tarefas para serem executadas concorrentemente, fazendo assim um processamento mais rápido, o que aumenta o desempenho.

A utilização de threads em sistemas não distribuídos tradicionais possui vantagens e desvantagens, um dos benefícios mais importantes com um processo monothread, é que sempre que for executada uma chamada bloqueadora, todo o processo será bloqueado. Outra vantagem é a possibilidade de exploração de paralelismo quando é executado em um sistema com  multiprocessadores. Também é muito útil a aplicação de multithreading em grandes aplicações. Para se implantar uma thread, precisamos entender que, normalmente elas são fornecidas como um pacote de threads, esse pacote pode ser pode conter operações para criar ou finalizar as threads, ou também podem conter variáveis de sincronização como exclusão mutua e variáveis de condição, para implementar um desses pacotes , tem que ser observados duas abordagens ,  a primeira é construir uma biblioteca que é utilizada inteiramente em modo usuário, algumas vantagens são: suporte a threads em sistemas operacionais que não as suportam nativamente, criação e destruição de threads custa pouco, alocação de memória e criação de pilha no espaço do usuário, porem temos algumas desvantagens, como dificuldade na implementação de chamadas bloqueantes ao Kernel, dificuldade na implementação de preempção. A segunda é fazer com o núcleo fique ciente dos threads e os escalone, o que também tem suas desvantagens, tais como cada operação com threads: criação, destruição, sincronização, etc... Envolve o Kernel, o que requer uma chamada ao sistema que é cara. Mas também existe uma solução hibrida conhecido como LWP (Lghtweight Processes), LWPs são criadas por processos a nível de usuário através de uma chamada ao Kernel; Sincronização e troca de contexto entre threads do usuário são realizadas a nível do usuário.

Já as threads em sistemas distribuídos, tem uma importante propriedade, elas podem propiciar um meio conveniente de permitir chamadas bloqueadoras de sistema sem bloquear o processo inteiro no qual o thread esta executando. Threads são particularmente atraentes para utilização em sistemas distribuídos, facilitam muito expressar comunicação na forma de manter múltiplas conexões lógicas ao mesmo tempo.  Clientes Multithreads Sistemas distribuídos que operam em redes de longa distância que precisam escondem longos tempos de propagação de mensagens entre processos. A maneira de ocultar latências de comunicação é iniciar a comunicação e imediatamente prosseguir com outra atividade. Apesar dos grandes benefícios que os clientes multithreads oferecem, é nos servidores multithread que a utilização é de maior relevância, pois a prática mostra não somente simplifica consideravelmente o código do servidor, mas também facilita o desenvolvimento de servidores que exploram paralelismo para obter alto desempenho até mesmo em sistemas monoprocessadores. O funcionamento de servidores multithreads pode ser entendido segundo o modelo despachante/operário.

– requisições são enviadas por clientes para uma porta no servidor

– Thread despachante lê requisições que entram para uma operação de arquivo

– Servidor escolhe um thread operário

– Se o thread escolhido estiver suspenso, outro thread é selecionado para ser executado: p.ex., o thread despachante pode ser selecionado para adquirir mais trabalho.

A existência de uma única CPU implica que somente uma instrução de um único thread ou processo será executada por vez, para isso foi criado a virtualização de recursos, ou seja, “fingir” que um determinado recurso esta replicado no sistema. Podemos tomar como exemplo uma aplicação que deve ser executada em um sistema operacional em um determinado hardware. Com a virtualização da aplicação ou apresentação, estas aplicações podem rodar em um servidor ou ambiente centralizado e ser portada para outros sistemas operacionais e hardwares.

As arquiteturas de máquinas virtuais podem ser divididas da seguinte maneira:

Instruções gerais que são uma interface entre o hardware e o software, o qual consiste em instruções de máquina que possam ser invocadas por qualquer programa.

Instruções privilegiadas que são uma interface entre hardware e o software, o qual consiste em instruções de máquina que possam ser invocadas somente por programas privilegiados, como um sistema operacional.

Chamadas de sistema, uma interface que consiste em chamadas de sistema como oferecidas por um sistema operacional.

...

Baixar como (para membros premium)  txt (7.9 Kb)   pdf (53.3 Kb)   docx (13.1 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com