Your SlideShare is downloading. ×

Threads e Hiper-threading

304

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
304
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. UniRV Campus - Rio Verde Curso: Engenharia de Software 4º Período Disciplina: Sistemas Operacionais Docente: Fabian Cardoso Acadêmico: Brendo Rocha Marçal Threads e Hiper-Threadings Rio Verde - GO Data 13/09/2013
  • 2. Sumário Introdução.............................................................................................................................. 3 Threads e Hiper-threading ...................................................................................................... 4 Threads .............................................................................................................................. 4 Hiper-threading .................................................................................................................. 6 Conclusão .............................................................................................................................. 8 Bibliografia ............................................................................................................................ 9 2
  • 3. Introdução O conceito de threads surgiu na década de 60, sendo introduzido pelo projeto Multics. Os threads são módulos do processo criadas para realizar uma tarefa especifica. Por meio delas consegue se executar diversos aplicativos sem perda considerável de velocidade. A palavra “Thread” refere-se a uma sequência de instruções, um fluxo de dados que são executados linha por linha. Quando se tem mais de um thread em um processo, tem se uma multithreading, ou seja, diversos threads executando em um único processo. Com o conceito de threads, a empresa Intel desenvolveu uma forma de threads melhorados, os hiper-threadings. Esta tecnologia consegue simular em um único processador físico dois processadores lógicos. Fazendo com que o “paralelismo” seja cada vez mais real. Este artigo objetiva a comparação no uso e no avanço dos processadores com threads para os que possuem hiper-threadings. As pessoas tendem a confundir os processadores que usam threads com os que possuem a hiper-threadings, desconhecendo assim suas vantagens. Este artigo vem informar e apresentar estes fatos a todos. Crê-se que a eficiência da hiper-threading supera imensamente os threads. Tendo isso em vista busca-se provar que os threads “comuns” estão sendo e serão substituídos por esse novo tipo de thread, o hiper-threading 3
  • 4. Threads e Hiper-threading Threads Threads são módulos que cada processo do sistema operacional possui, é uma parte do processo principal que foi criada para realizar um serviço. Devido à complexidade das novas aplicações os threads se tornaram a forma mais rápida de se atender ao usuário, pois, em uma única aplicação podem existir diversos módulos de processos necessários para se usar a aplicação, e para que estes sejam executados em tempo real, foi necessário um módulo que cuidasse de realizar estes subprocessos das aplicações, com este conceito surgiram os threads. Os processos tradicionais são formados por diversos tipos de dados, mas possuem um único thread. Por exemplo, em um formigueiro há quatro classes distintas, formigas operárias, sentinelas, enfermeiras e a rainha, elas trabalham em conjunto cada uma realizando sua tarefa especifica para o bem do formigueiro, este seria o processo com os threads. Agora imagine o mesmo formigueiro com apenas uma das classes tentando realizar todas as atividades, assim seria o processo sem threads. As principais vantagens na utilização do thread é sua velocidade de criação e destruição, pois, não existe nenhum tipo de dado adjunto a eles. Cada thread possui itens específicos, que são: contador de programa, que controla qual será a próxima instrução a ser executada, registradores, onde estão guardadas as variáveis que 4
  • 5. estão sendo utilizadas, pilha, que apresenta tudo o que foi executado por ela, e estado, que representa o estado de como ela se encontra, bloqueada e executando. Cada thread possui sua pilha de dados, distinta das outras, esta contem uma estrutura para cada método executado. Contendo as variáveis locais do método e o caminho de retorno, se assemelhando a uma estrutura encadeada com ponteiros. Na multithread pode haver diversos threads em um único processo. Os processos comumente iniciam com um único thread, a execução de múltiplos threads ocorre, pois, a thread principal cria outras threads em seu próprio endereçamento para que estas realizem determinadas tarefas referentes ao processo. Os threads muitas vezes são confundidos com os processos, pois, eles possuem algumas de suas propriedades, sendo assim conhecidos por muitos como “processos leves” (lightweight). Os threads tendem a obedecer a filas até serem executados. Seu tempo de espera até a execução é de nanosegundos, ficando imperceptível ao usuário, o que da uma falsa impressão de paralelismo. Isso acontece, pois, a CPU realiza uma alteração ente os threads em velocidade quase que imperceptível. Como já foi dito, os threads dividem o mesmo endereçamento na memória, sendo assim compartilham também suas variáveis globais. Mas isso se torna uma grande desvantagem, já que os threads também poderão ler, gravar e apagar qualquer informação de outro thread. Essa falta de segurança é algo impossível de corrigir. O melhoramento dos sistemas operacionais após o uso de threads é notável, eles passaram a executar diversos aplicativos com o maior aproveitamento possível dos threads. Fazendo com que o usuário pense que todos os processos no computador executem ao mesmo tempo, e tornando o computador popular como forma de lazer. 5
  • 6. Hiper-threading Sabendo o conceito de threads e como são utilizados, podemos seguir para os hiperthreadings. Criados pela empresa Intel (famosa por seus processadores de qualidade, se tornou referencia na fabricação destes), a tecnologia dos hiper-threadings seria como ter dois processadores trabalhando em uma única máquina. Ela simula em um único processador físico dois processadores lógicos. Fazendo com que cada processador lógico receba suas instruções específicas, ou seja, cada um tem seu controlador, registradores, cache de memória, unidade de execução, unidade lógica e aritmética, unidade de ponto flutuante e barramentos. A hiper-threading permite a execução de multithreadins em cada núcleo do seu processador físico. Eles não dividem o mesmo espaço de endereçamento entre si, mesmo obedecendo a um processador pai que foi quem os criou. Para a utilização deste, alem do suporte que o hardware deve ter, também é necessário que o software suporte o uso de múltiplos processadores para melhor usabilidade da tecnologia HT. O software trata as hiper-threadings como algo comum, ele manda os dados normalmente como se estivesse enviando os dados para o processador físico. A organização e ordenação dos dados a serem executados pelos processadores lógicos é feita pelo processador físico. Ele realiza a divisão das tarefas entre esses threads e cria o que há de mais próximo do paralelismo. Pois, ainda quando um thread está em execução o outro começa a executar outro dado, e desta forma seguem o fluxo de dados. A empresa fabricante da HT, diz que, “A Tecnologia Intel HT está disponível nos processadores Intel® Core™ de geração anterior, 4ª geração da família de processadores Intel® Core™ e família de processadores Intel® Xeon®. Ao combinar um desses processadores e chipsets Intel® com um SO e BIOS compatíveis com a Tecnologia Intel HT, é possível.” As principais vantagens do usa das Hiper threadings são: 6
  • 7. A execução de vários aplicativos sofisticados, como o pacote CSS6 e o CorelDraw, ao mesmo tempo sem perda de desempenho. O aumento da velocidade total do sistema operacional e de todos os seus aplicativos. Os gráficos que por muitas vezes são prejudicados e distorcidos, passam a ser fiéis aos originais e pode-se executá-los junto a demais sistemas sem perda de qualidade. A tecnologia HT possui a capacidade de aperfeiçoar a velocidade do processador em 30%, sendo assim recomendada para empresas e serviços cujo tempo de resposta de um aplicativo pode salvar a vida de pessoas, por exemplo, em uma empresa de controle de voos, a velocidade com que a resposta do controlador chega ao piloto pode evitar acidentes. Ao comparar o uso dos threads tradicionais ou mesmo das multithreads com as HT vemos que, o conceito entre elas não se altera durante o decorrer de todo o processo do sistema. Os threads ou as multithreads são mais acessíveis ao público em geral, pois estão hoje em todo hardware ou software, e mesmo com o desconhecimento da maioria da população dos threads, estes facilitam o uso da máquina e a tornam popular. A tecnologia HT possui um custo mais elevado, pois é necessário um conjunto de outros componentes, como Chipset e Bios, para que se consiga seu verdadeiro aperfeiçoamento. E talvez ainda não seja tão utilizada e conhecida pelas pessoas, sendo realmente utilizada por empresas com necessidades reais do sistema. A hiper-threading é mais veloz, e eficiente que as threads, pois ela é o que mais se aproxima do que chamamos de paralelismo. Para o melhor entendimento da tecnologia HT a empresa Intel disponibiliza um pequeno vídeo descrevendo o uso destes. http://www.intel.com/content/www/br/pt/architecture-and-technology/hyperthreading/hyper-threading-technology-video.html 7
  • 8. Conclusão Por meio de todos os dados apresentados e comparados, foi conclusivo que os threads influenciaram muito no avanço da velocidade e da qualidade dos aplicativos. Mas com a tecnologia das hiper-threadings elas se tornam apenas auxiliares importantes a essa nova tecnologia. As hipóteses criadas por este foram preenchidas ao decorre do texto, pois comparada com a HT as threads são necessárias, pois seu trabalho ainda e insubstituível, em curto prazo, mas são personagens secundários quando comparadas as hiper-threadings. Novas tecnologias e meios de tornar cada vez mais rápido o processamento dos dados tendem a surgir nostalgicamente. Futuramente espera-se que haja um modo de processar os dados ainda mais rápido. 8
  • 9. Bibliografia Sistemas operacionais modernos / Andrew S. Tanenbaum; tradução Ronaldo A.L.Gonçalves, Luís A. Consularo, Luciana do Amaral Teixeira; revisão técnica Raphael Y. de Camargo. --3.ed.--São Paulo: Pearson Prentice Hall, 2010. Sistemas operacionais / Rômulo Silva de Oliveira, Alexandre da Silva Carissimi e Simão Sirineo Toscani. – 2ª edição – Porto Alegre: Instituto de Informática da UFRGS: Sagra Luzzatto, 2001. http://www.intel.com/content/www/br/pt/architecture-and-technology/hyperthreading/hyper-threading-technology.html http://www.tecmundo.com.br/9669-o-que-sao-threads-em-um-processador-.htm http://www.techterms.com/definition/hyperthreading http://www.clubedohardware.com.br/artigos/163 http://professor.unisinos.br/barbosa/grefe/atividades/at3/leonardo_3.pdf 9

×