1As threads modo usuario são suportadas pela aplicação, sem conhecimento do Kernel e geralmente são implementadas por pacotes de rotinas (códigos para criação, término, escalonamento e armazenagem de contexto) fornecidas por uma determinada biblioteca de uma linguagem, como é o caso da thread.h (biblioteca padrão da linguagem C). Estas thread suportam as mesmas operações que as thread KLT (criação, juntar, duplicar e desistir). Possuem como vantagens a possibilidade de implementação em sistemas operacionais que não suportam nativamente este recurso, geralmente são mais rápidas e eficientes pois dispensam o acesso ao kernel, evitando assim mudança no modo de acesso e sua estrutura de dados fica no espaço do usuário, levando a uma significativa queda de overhead, além de poder escolher entre as diversas formas de escalonamento em que melhor se adequa. O gerenciamento de thread (KLT) não é realizado através do código do próprio programa; todo o processo é subsidiado pelo Sistema Operacional. Esse modelo tem a vantagem de permitir o suporte a multiprocessamento e o fato do bloqueio de uma thread não acarretar bloqueio de todo processo, não obstante, temos a desvantagem de ter que mudar o tipo de acesso sempre que o escalonamento for necessário aumentando assim o tão temido overhead.
3É um sistema que permite exibir varios filmes ou sequencias de videos simultaneamente em um mesmo cliente ou em um mesmo computador. É um sistema de monitoramento em empresa ou residência, com várias câmeras posicionadas em pontos estratégicos, que se pode visualizar as imagens de todas estas câmeras ao mesmo tempo em um único computador. Outro exemplo simples pode ser expressado através de um jogo onde o mesmo pode ser modelado com linhas de execução diferentes, sendo uma para desenho de imagem e outra para áudio; Neste caso, há um thread para tratar rotinas de desenho e outro thread para tratar áudio; No ponto de vista do usuário, a imagem é desenhada ao mesmo tempo em que o áudio é emitido pelos auto-falantes;
4- threads em sistemas distribuidos sao Processo com entidade própria, com próprio contexto de escalonamento, mas que compartilha a estrutura de dados com seu pai. Onde possuem apontador de instruções, conjunto de registradores e espaço de
pilhas. Uma thread compartilha com threads irmãs: a área do código, a área de dados e recursos do sistema operacional. Em uma tarefa dotada de múltiplos fluxos de execução, enquanto um fluxo está bloqueado esperando, um outro fluxo na mesma tarefa pode continuar rodando. Quando uma thread solicita uma leitura, ela fica bloqueada até que os dados fiquem disponíveis. Em único processo com única thread não pode executar nada de útil enquanto o disco está sendo acessado Com threads múltiplas, uma thread pode continuar a executar enquanto a outra espera pelo I/O, compartilham memória, arquivos abertos e variáveis globais. mantém cópias privadas de pilhas, contador de programa e estado de processador. As Variáveis locais da thread são alocadas em memória estática própria, todas Todas as threads de um processo compartilham a memória e os recursos desse processo. quando uma thread bloqueia, outrada mesma task pode ser executada, não são independentes umas das outras, podendo invadir o espaço de outra a invalidando, não são protegidas umas das outras.
Em sistema multiprocessados diferentes threads podem executar em diferentes processadores. múltiplas threads oferecem uma maneira eficiente para se explorar o paralelismo de hardware. atribui uma thread pronta para executar para o próximo processador disponível. Para isso é feito um gerenciamento onde Um arranjo de blocos de threads é executado na GPU escalonando-se os blocos para execução nos multiprocessadores. Cada multiprocessador processa bateladas de blocos, uma batelada de cada vez. Todas as threads de um mesmo bloco são processadas em um mesmo processador vetorial, de maneira que o espaço de memória copartilhado resida na memória compartilhada do chip, resultando assim em acessos à memória muito rápidos.