-
Sim, é uma forma mais barata de se promover paralelismo de atividades pois os processos têm endereçamentos e recursos distintos, o que torna caro ao sistema operacional realizar a troca de contexto dos processos, isto é, pegar a pilha, ponteiro de pilha e contador de programa da memória e trazer para os registradores, para executar as instruções do processo e depois, no escalonamento de um novo processo, copiar tudo isso novamente para a memória e dessa forma salvar o estado de execução desse processo.
Já as threads compartilham esse espaço de endereçamento e são mais fáceis de multiplexar.
De fato, nas threads executadas no espaço de usuário, o sistema operacional nem mesmo enxerga que elas existem, todo o escalonamento é relaizado pela biblioteca de threads.
-
Fiquei confuso nessa!!!
"Threads em diversas aplicações", não teríamos uma thread para cada aplicação, ou seja , não teríamos vários processos? E caso tenhamos vários processos, os endereçamentos são exclusivos para cada um, tornando o item errado.
Suponho que para uma mesma aplicação a questão estaria certa.
me ajudem aí!!!!
-
Essa questão deveria ser considerada ERRADA, pois ela afirma que "As threads auxiliam o sistema operacional no paralelismo de atividade", sendo que, na verdade, não é no paralelismo, mas sim na concorrência, os quais são conceitos diferentes. No paralelismo ocorre simultaneidade, enquanto na concorrência ocorre chaveamento. A possibilidade de haver paralelismo é quando há multiplos núcleos de processamento, o que não vem ao caso. As instruções em threads são feitas de forma concorrente (chaveamento) e não simultaneamente como fala a questão.
Um bom texto para entender melhor o assunto: https://chaosonrails.wordpress.com/2010/09/05/concorrencia-versus-paralelismo/
-
Na ótica de escalonamento em ambientes com mais processadores não é possível que múltiplos threads de um processo possam ser executados em diferentes processadores simultaneamente, porque o sistema operacional executa apenas processos e não threads. Com isso existe um limite com relação ao grau de paralelismo da aplicação, pois as threads de um mesmo processo podem ser executadas em somente um processador por vez.
-
c-
EMm sistemas multithreading, a implementacao de thread é nivel kernel e permite que os processos, os quais sao programas em execucao, tenham acesso a recursos criados pelo SO em 3 tipos: contexto de software (limite aos recursos), de hardware (program stack, counter, registradores etc) e espaco de enderecamento (onde as instrucoes q o processo fara ficam). Uma instrucaoo do processo pode ser dividida em threads, cada thread se diferenciando pela tarefa que executa e divindindo a mesma area de dados do programa principale mesmo contexto de software