-
Multithread
Multithreading é a capacidade que o sistema operacional possui de executar várias threads simultaneamente sem que uma interfira na outra. Estas threads compartilham os recursos do processo, mas são capazes de ser executadas de forma independente. Para possuir processamento multithread “real”, os processadores precisam ser capazes de atender duas ou mais threads ao mesmo tempo e não simular este efeito, atendendo-as uma por vez em um curto período de tempo.
A maior vantagem trazida com a execução multithread é permitir que os computadores com múltiplos núcleos de processamento possam aproveitar todo o seu potencial e operar de forma mais rápida. Apenas para ilustrar, nos computadores sem este tipo de suporte, quando o processo principal toma muito tempo, a aplicação inteira parece travar.
Fonte: tecmundo.
-
As arquiteturas multithreading procuram reduzir o “overhead” na troca de contexto entre threads, escondendo ou reduzindo o efeito negativo da latência de certas operações demoradas realizadas pelo processador.
Os múltiplos contextos de threads nos processadores são criados através da replicação dos elementos de “hardware” que caracterizam cada contexto, tipicamente: o banco de registradores, o contador de programas e a palavra de status do processador.
• Granulosidade Fina – Uma instrução de cada thread ativa é buscada e enviada para o pipeline a cada ciclo.
• Granulosidade Grossa – As instruções de uma thread são executadas sucessivamente até que um evento de grande latência ocorra. Este evento provoca uma troca de contexto.
• Multithreading Simultâneo – Instruções são despachadas simultâneamente para as unidades funcionais de um processador superescalar. – Combina um processador superescalar com multithreading.
Fonte: http://www.dcc.ufrj.br/~gabriel/microarq/Multithreading.pdf
-
Os coneitos de I e IV estão perfeitos...
Grão FIno - cada Instrução;
Grão GroSso - evento Sgnificativo.
Threads Compartilham:
�Área de código;
Área de dados�;
Áreas da pilha de execução (de todos os threads);
Fonte: https://edisciplinas.usp.br/pluginfile.php/2945126/mod_resource/content/1/22-threads-v8.pdf]
go @head!!!
-
Threads Compartilham:
-Espaço de endereçamento;
-Variáveis Globais;
-Arquivos abertos;
-Processos filhos;
-Alarmes pendentes;
-Sinais e rotinas de tratamento de sinais;
-informações de contabilização
Threads não Compartilham;
-Contador de programa;
-Registradores;
-Pilha;
-Estado.