Baixe o app para aproveitar ainda mais
Prévia do material em texto
Threads e processo de sistemas distribuídos Maceió-AL 2020 Threads e processo de sistemas distribuídos Trabalho para disciplina de sistemas distribuídos ministrado pelo professor ramon tenório. Alunos:Janaina Alves De Lima, Fellip Andrew Ramos maceió-AL 2020 sumário Introdução………………………………………………………………………………….1 O Que é uma Thread……………………………………………………………………...2 Categorias de Thread…………………………………………………………………….3 Modelos de Thread………………………………………………………………………..4 Processo em sistemas distribuídos…………………………………………………...5 maceió-AL 2020 introdução Hoje é notável a capacidade fenomenal que conseguimos chegar na computação, o avanço que tivemos e o poder colocado em nossas mãos como nunca havia se pensado, principalmente a alguns anos atrás, a expansão foi deveras especial principalmente hoje tendo com tanta facilidade computadores capazes de fazer tantas operações e tarefas em paralelo, tudo isso em parte por causa do avanço obtido com as threads, mas como ela nos ajuda com tarefas das mais simples até as mais pesada, o'que faz delas tão importantes para nosso uso na era dos sistemas escalonados e o'que veremos aqui. 1 O'Que é uma Thread Uma thread nada mais é que um pequeno programa que trabalha como um subsistema, sendo uma forma de um processo se auto dividir em duas ou mais tarefas. Essas tarefas múltiplas podem ser executadas simultaneamente para rodar mais rápido do que um programa em um único bloco ou praticamente juntas, mas que são tão rápidas que parecem estar trabalhando em conjunto ao mesmo tempo.Os diversos threads que existem em um programa podem trocar dados e informações entre si e compartilhar os mesmos recursos do sistema, incluindo o mesmo espaço de memória. Assim, um usuário pode utilizar uma funcionalidade do sistema enquanto outras linhas de execução estão trabalhando e realizando outros cálculos e operações. É como se um usuário virtual estivesse trabalhando de forma oculta no mesmo computador que você ao mesmo tempo.Devido à maneira rápida que a mudança de uma thread e outra acontece, aparentemente é como se elas estivessem sendo executadas paralelamente de maneira simultânea em hardwares equipados com apenas uma cpu. 2 Categorias de Thread Threads também possuem categorias, são os monothread e multithread, no monothread uma aplicação é composta por códigos que são executados sequencialmente, de acordo com repetições, desvios, funções e procedimentos, onde a utilização de concorrência é efetuada através da implementação de processos independentes e subprocessos, caso exista essa necessidade, causando um maior consumo de recursos do sistema, uma vez que cada processo detém seu próprio espaço de endereçamento e a comunicação entre os diversos processos envolvidos normalmente é mais lenta que no outro modo, já no multithread, o conceito de thread é amplamente explorado e aplicado, onde técnicas permitem que as mesmas sejam executadas de maneira simultânea. Através da utilização deste recurso, os softwares podem efetuar diversas tarefas de maneira paralela, possibilitando assim que as threads exerçam suas funções de maneira independente umas das outras. Vale à pena falar que os sistemas operacionais evoluíram para possibilitar a execução de diversos processos e threads, implementando mecanismos para que os softwares pudessem fazer uso de tal recurso de concorrência. A utilização de várias threads é mais rápida que a utilização de vários subprocessos, pois as threads de um determinado processo compartilham o mesmo intervalo de endereço (address space), permitindo assim a troca de diversas informações entre ambas, não havendo a necessidade da utilização de outros mecanismos para a intercomunicação, como é o caso dos processos. 3 Modelos de Thread Os modelos podem ser: ● Muitos para um - onde o processo é executado por apenas uma abordagem, deve ser utilizada com cautela pois dependendo do processo a ser executado, caso ele utilize muito dos recursos da máquina, pode ocorrer o travamento do mesmo durante o processo. ● Muitos para muitos - aqui é onde a tarefa foi dividida para várias threads , com isso tendo uma economia e segurança ,maior pois com o processo dividido praticamente como 1 para 1 a possibilidade de problemas torna-se quase zero. ● Um para muitos - A maneira mais rápida encontrada para um processador de alta complexidade e dividir o processo de uma tarefa complexa para várias threads, com a mesma corretamente escalonada permitindo assim o trabalho com outras tarefas sem a necessidade de espera pelo término de alguma outra. 4 PROCESSOS EM SISTEMAS DISTRIBUÍDOS Um processo pode ser definido como um programa que está sendo executado em um dos processadores virtuais do sistema operacional no momento em questão. As threads são consideradas pequenas partes de um processo. Fragmentando um processo em partes é uma maneira de solucionar um problema de uma forma mais rápida e precisa. Um Sistema distribuído é composto por vários processos o que o torna mais complexo. Seu comportamento e estado podem ser descritos por um algoritmo distribuído - uma definição dos passos a serem executados por cada um dos processos que compõem o sistema, incluindo a transmissão de mensagens entre eles. As mensagens são enviadas para transferir informações entre processos e para coordenar suas atividades. Nos Sistemas distribuídos podem ocorrer ocasionalmente falhas. O modelo de falhas define como uma falha pode se manifestar em um sistema, de forma a proporcionar um entendimento dos seus efeitos e consequências. Hadzilacos e Toueg [1994] fornecem uma taxonomia que distingue as falhas de processos e as falhas de comunicação. Isso é apresentado sob os títulos falhas de omissão, falhas arbitrárias e falhas de sincronização. 5
Compartilhar