SóProvas


ID
238252
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2010
Provas
Disciplina
Sistemas Operacionais
Assuntos

Julgue os seguintes itens, a respeito da relação entre arquitetura de
computadores e sistemas operacionais.

A programação com o uso de múltiplas threads permite reduzir o tempo de execução de um aplicativo, no entanto, a utilização de threads somente é possível se o processador tiver um único núcleo (single-core).

Alternativas
Comentários
  • O uso de multiplas threads realmente permite reduzir o tempo de execução, visto que podem ser executadas em paralelo. O erro da questão está em dizer que somente se o processador tiver um único núcleo, o que não é verdade. Seria como se ao inves de evoluir, adicionando mais nucleos em processadores, estivessemos regredindo. Questão ERRADA.
  • O uso de multiplas threads só permite reduzir o tempo de excução se os dois requisitos abaixo forem cumpridos:

    1) O problema tratado pelo algortimo executado pelas threads deve ser paralelizavel. Ou seja deve ser possível dividir o problema em tantas partes quanto threads para haver ganho de eficiência. Se o problema só admitir solução sequencial, o uso de threads apenas reduz eficiência (devido ao overhead de sincronização entre threads).

    2) A arquitetura deve permitir a execução de mais que uma thread simultaneamente. Seja atravéz de pipeline Multithread (Ex. HiperThread da intel) ou multiplos cores (Ex. processadores Duo-core da intel)
  • A meu ver a questao esta totalmente errada. A programação com o uso de múltiplas threads não permite reduzir o tempo de execução de um aplicativo. Repare q um aplicativo(word, excel, IE) podem ter vários processos associados, e estes, várias threads. O uso de multiplas threads torna as atividades mais rápidas, pois elas compartilham muitos dos recursos de um mesmo processo. Mas não significa q o tempo de execução de um processo seja menor. Grosseiramente falando, o tempo de execução de um aplicativo vai depender do tempo q o usuario vai usa-lo. Agora, certamente, multiplas threads reduzem o tempo q um processo leva para executar uma tarefa, porque as mesmas threads, no mesmo processo, como dito, compartilham alguns dos recursos deste. E eu trago como fonte a alteração do gabarito para E da questão Q79418. Ela afirmava q "Um aplicativo pode ser instanciado em vários processos, que compartilham o mesmo código, mas cada um deles é uma atividade diferente, com seus dados e valores de entradas e saída. Por sua vez, um programa pode possuir várias threads, que compartilham a mesma área de dados, e cada uma dessas threads representa uma linha de execução de uma tarefa específica dentro do programa". 

    O gabarito foi atualizado para "E", após recursos, conforme edital divulgado pela banca e publicado no site.

    Justificativa da banca: Devido ao uso incorreto da palavra “programa” no lugar de “processo”, opta-se pela alteração do item.

    Ou seja, se a questao trocasse a palavra aplicativo por processo, ai, sim, a primeira parte da questao estaria correta.


    O outro erro: a utilização de threads somente é possível se o processador tiver um único núcleo (single-core). Mas aí nem precisa explicar.

  • Prezados,

    O comando da questão está flagrantemente errado. a tecnologia de múltiplas threads ( hiper thread , HT ) , pode e é usada amplamente em processadores com mais de um núcleo.

    Portanto a questão está errada.


  • Segundo Tanenbaum(2010,p.57),"Finalmente, os threads são úteis em sistemas com múltiplas CPUs, para os quais o paralelismo real é possível.

     

    - SISTEMAS OPERACIONAIS MODERNOS-TANENBAUM-3 EDIÇÃO-2010"

  • usada amplamente em processadores com mais de um núcleo.