Buscar

TEMP2_EP2_Conceitos de threads

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1. As threads podem ter seu estado de execução alterado entre pronto, bloqueado, em execução e finalizado, em decorrência de diversos eventos.Considerando que uma thread foi implementada utilizando a linguagem de programação Java, quando uma thread chama o método yield(), qual transição de estado acontece​​​​​​​?
D. O estado passa de “em execução” para “pronto”.
Uma thread somente está ativa, ou seja, pode executar instruções e realizar chamadas, quando está no estado “em execução”. A chamada do método yield() tem como propósito desistir voluntariamente do uso da unidade de processamento para outra thread. Desse modo, a primeira thread deixa o estado de “em execução” e, como não há nada que impeça uma próxima execução sua, passa para o estado “pronto”.
2. Uma ferramenta de edição de texto provê algumas funcionalidades para auxiliar no trabalho dos seus usuários. Após a inicialização da ferramenta, esta inicia a:
1. ler a entrada do teclado e representar o texto em tela;
2. verificar a ortografia do texto conforme um conjunto de normas;
3. verificar e atualizar a estilização do texto;
4. executar salvamentos periódicos como backup.
Considerando que cada funcionalidade descrita acima é executa por uma thread exclusiva, quantas threads são necessárias para a execução descrita da ferramenta?
C. 5 threads.
Cada funcionalidade está sob responsabilidade exclusiva de uma thread; como não existe nenhum fato descrito que essas threads criem outras threads, tem-se que 4 funcionalidades x 1 thread cada = 4 threads. Contudo, não se deve esquecer que todo programa tem um ponto inicial, ou seja, ao executar um programa, é criado um processo que contém uma thread inicial, a qual é responsável pela criação das outras threads. Assim, na situação descrita há um total de 5 threads.
3. João e Matheus estão desenvolvendo uma ferramenta para um trabalho de faculdade. Ambos concordam que o desempenho é um fator muito importante e, para isso, pretendem adotar alguma estratégia que permita executar tarefas simultaneamente. Existem duas propostas atualmente:
1. Implementar a ferramenta utilizando três processos separados com uma thread cada.
2. Implementar a ferramenta utilizando um processo com três threads.
A dupla está dividida nas opiniões, Matheus é favorável à segunda proposta, contudo, João ainda não concorda.
Qual argumento Matheus poderia apresentar para tornar a segunda proposta vencedora?
C. A aplicação tem muitas operações de entrada/saída de dados.
Para que a proposta de um processo com três threads saia vencedora, é necessário destacar um aspecto que favoreça a utilização de threads. As aplicações com muito processamento (CPU-bound) tendem a não melhorar com threads, pois o principal recurso, a unidade de processamento, sempre estará ocupada. Desse modo, as threads são muito mais úteis no sentido de cooperação mútua, em que os recursos são compartilhados de modo organizado. Em aplicação com muitas operações de entrada/saída, a thread que está com controle da CPU é bloqueada até que a operação de entrada/saída seja concluída; nesse tempo, o controle da CPU é repassado para outra thread ser executada.
4 A implementação de threads no espaço do usuário é uma das estratégias de implementação existentes para utilização de threads em sistemas operacionais. Como qualquer estratégia, pode ter pontos positivos e negativos.
Assinale uma vantagem dessa estratégia.
D.Permite a implementação de threads no espaço do usuário (de modo interno ao processo)​​​​​​​, mesmo em sistemas monoprogramados cujo núcleo não tem suporte a ​​​​​​​threads.
Na implementação de threads no espaço do usuário, o núcleo do sistema desconhece a existência de threads; as tabelas de threads ficam dentro dos processos, e somente os processos podem controlá-las. Nesse modelo, quando o núcleo interrompe a execução de um processo, a thread dele que estava em execução é parada. A vantagem desse modelo é que na maioria dos sistemas antigos — monoprogramados —, não havia suporte para execução simultânea; ao implementar a utilização de threads​​​​​​​ dentro dos processos, isso se tornou possível.
5. Uma das principais vantagens do uso threads em relação aos processos consiste na possibilidade de compartilhamento de recursos entre diferentes linhas de execução. Contudo, as threads devem armazenar informações que sejam somente suas.Assinale a alternativa na qual as informações listadas somente pertençam às threads.
A. Contador de programa e estado de execução.
As threads somente armazenam as informações necessárias para a sua execução exclusiva: o contador de programa, o estado de execução, a pilha e os registrados. Os demais elementos são compartilhados entre todas as threads, não sendo exclusivos.

Continue navegando