Buscar

Sobre 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

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

17/10/2020 Sobre threads: Revisão da tentativa
www.classes.sead.ufpb.br/mod/quiz/review.php?attempt=72892&cmid=53187 1/2
Página inicial / Meus cursos / SO - 20.1 - 273045 / Threads / Sobre threads
Questão 1
Correto
Atingiu 2,00 de
2,00
Questão 2
Parcialmente
correto
Atingiu 1,33 de
2,00
Iniciado em domingo, 4 out 2020, 15:30
Estado Finalizada
Concluída em domingo, 4 out 2020, 15:48
Tempo
empregado
18 minutos 10 segundos
Avaliar 9,33 de um máximo de 10,00(93%)
Muitas  podem estar associadas a um  . Elas parecem
processos separados, mas compartilham o mesmo  , dados e os 
  alocados ao processo. Assim, a troca de informações entre elas é rápida, pois podem
acessar as mesmas variáveis. Para que essas linhas de execução possam ser  é preciso
manter para cada uma delas, informações de contexto/estado, tais como  , endereço da
pilha de execução e cópias dos registradores.
threads processo
espaço de endereçamento
recursos
escalonadas
contador de programa
Sua resposta está correta.
Quando uma thread cria outra thread, ambas ficam associadas ao mesmo processo, e compartilham o mesmo espaço de
endereçamento/dados e recursos alocados aos processos. Ao contrário, quando um processo cria outro processo, eles não
compartilham o mesmo espaço de endereçamento. As threads passam a ser as unidades escalonáveis do processo, assim, é
preciso manter para cada uma, toda a informação de contexto que possibilite a alternância delas no uso da CPU.
Sobre threads, marque as opções verdadeiras.
Escolha uma ou mais:
a. Uma tabela de threads é mantida pelo sistema operacional para que as threads de usuário possam ser alternadas no uso
da CPU.
b. Uma alternativa interessante é de um modelo de threads híbrido, em que N threads de usuário estão associadas a M
threads de núcleo, assim, consegue-se usufruir do bom desempenho das threads de usuário e de não perder a CPU por
conta de uma chamada de sistema bloqueante.
c. Mesmo quando threads de usuário são usadas, o sistema operacional escalona o processo e não as threads, pois elas
não são conhecidas pelo sistema operacional. Se uma delas faz uma chamada de sistema bloqueante, o processo associado
é bloqueado e perde a CPU. 
d. As threads de núcleo são raramente usadas porque precisam do suporte do sistema operacional e quase nenhum
sistema operacional moderno (atual) dá suporte a isso.
e. Threads de núcleo são conhecidas pelo sistema operacional e por isso resolvem o problema de um processo de não
perder necessariamente a CPU quando faz uma chamada de sistema bloqueante. 
Sua resposta está parcialmente correta.
Você selecionou corretamente 2.
Mudar o contexto da CPU de uma thread de usuário para outra é muito rápido, As threads de usuário são implementadas no
nível de biblioteca de programas de usuários. Assim, o sistema operacional não tem conhecimento delas e escalona o processo,
não as threads. A própria runtime da linguagem de programação que deve manter uma tabela de threads. Já as threads de
núcleo só funcionam quando o SO dá suporte a elas, pois nesse caso, o SO escalona as threads e é o SO que mantém uma
tabela de threads. Como o SO está envolvido, é mais demorado mudar o contexto da CPU de uma thread para outra, mesmo
quando elas fazem parte do mesmo processo.
http://www.classes.sead.ufpb.br/
http://www.classes.sead.ufpb.br/course/view.php?id=1044
http://www.classes.sead.ufpb.br/mod/quiz/view.php?id=53187
17/10/2020 Sobre threads: Revisão da tentativa
www.classes.sead.ufpb.br/mod/quiz/review.php?attempt=72892&cmid=53187 2/2
Questão 3
Correto
Atingiu 2,00 de
2,00
Questão 4
Correto
Atingiu 2,00 de
2,00
Questão 5
Correto
Atingiu 2,00 de
2,00
Só faz sentido usar threads se o computador onde o programa for executar for multiprocessado. Caso contrário, não há ganho
algum em usar threads.
Escolha uma opção:
Verdadeiro
Falso 
O uso de threads é muito recomendado para as aplicações que tem computação substancial a ser realizada e também
operações de entrada/saída quando essas atividades puderem ser realizadas de forma independente. Se um programa é
monothread e faz uma chamada de sistema bloqueante (como um read, por exemplo), ele vai ser bloqueado e vai perder o
processador para outro processo. Se esse programa tem algum processamento que pode ser realizado independente do
resultado dessa chamada de sistema, ele se beneficiaria do uso de threads.
As threads são entidades que cooperam entre si. Elas fazem parte do mesmo processo, e portanto operam em nome do
mesmo usuário. Por conta disso, o sistema operacional não precisa se preocupar de proteger uma thread de outra se elas são
de um mesmo processo.
Escolha uma opção:
Verdadeiro 
Falso
Se as threads de um mesmo processo se prejudicarem umas às outras então é bug na aplicação. Elas devem cooperar.
Em cada instante de tempo, cada thread está em um estado. Os estados possíveis para as threads  os
mesmos estados possíveis dos  . Apenas as threads no estado  podem ser
escolhidas para rodar. Threads  podem passar para o estado  se fizerem uma
chamada de sistema  . 
são
processos pronto
em execução bloqueado
bloqueante
Sua resposta está correta.
◄ Vídeo-aula sobre threads Seguir para... Questionário aberto sobre threads ►
http://www.classes.sead.ufpb.br/mod/page/view.php?id=53188&forceview=1
http://www.classes.sead.ufpb.br/mod/assign/view.php?id=54911&forceview=1

Continue navegando