Assinale a alternativa que apresenta a diferença entre um p...

Próximas questões
Com base no mesmo assunto
Q1393651 Sistemas Operacionais
Assinale a alternativa que apresenta a diferença entre um processo e um thread em um sistema operacional.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C

Para entender a diferença entre processos e threads em um sistema operacional, é importante conhecer alguns conceitos fundamentais sobre como os sistemas gerenciam a execução de tarefas.

Um processo pode ser definido como uma instância de um programa em execução. Ele possui seu próprio espaço de endereçamento na memória, contendo o código do programa, dados, pilha, entre outros recursos. Cada processo é isolado dos demais, o que significa que um processo não pode acessar diretamente a memória de outro processo.

Uma thread, por outro lado, é a menor unidade de execução que pode ser gerenciada de forma independente pelo escalonador de um sistema operacional. As threads compartilham o mesmo espaço de endereçamento e os dados entre si dentro do mesmo processo. Isso significa que múltiplas threads dentro do mesmo processo podem se comunicar e compartilhar dados mais facilmente do que processos distintos.

Explicação da alternativa C:

A alternativa C está correta porque descreve que threads compartilham o mesmo espaço de endereçamento e dados entre si, enquanto os processos possuem espaços de endereçamento separados. Essa é uma das principais distinções entre processos e threads. Como as threads de um mesmo processo compartilham os recursos, elas podem se comunicar de maneira mais eficiente, tornando a troca de informações mais rápida e a utilização de memória mais eficiente.

Vamos analisar brevemente as outras alternativas para entender por que estão incorretas:

Alternativa A: Está incorreta porque são os processos que possuem recursos associados a eles, como memória e arquivos abertos. Threads dentro do mesmo processo compartilham esses recursos.

Alternativa B: Está incorreta pois criar e destruir threads é geralmente mais rápido e fácil do que criar e destruir processos, devido ao compartilhamento do espaço de endereçamento e recursos.

Alternativa D: Está incorreta porque são justamente as threads que permitem a sobreposição de operações de I/O e processamento, aproveitando a execução concorrente dentro do mesmo processo.

Alternativa E: Está incorreta pois threads são adequadas para sistemas com múltiplos processadores, permitindo que múltiplas threads de um mesmo processo sejam executadas em paralelo, aproveitando melhor os recursos do sistema.

Espero que esta explicação tenha ajudado a clarificar a diferença entre processos e threads e a razão pela qual a alternativa C é a correta. Se tiver mais dúvidas, estou à disposição para ajudar!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

GAB C.

A alternativa A - O processo possui recurso associado, inclusive quando você tem a questão da reentrância / criação de processos filhos.

A alternativa B - Na teoria está errada mas no dia a dia você percebe que não é bem assim, um Processo dependendo do ambiente é mais fácil de se criar / controlar e terminar do que uma ou várias thread(s) que sem controle pode causar uma enorme dor de cabeça...

A alternativa D- Processo fica travado até sair do IO, o sistema com várias threads não vai travar todas as threads enquanto 1 está em IO

A alternativa E-

o uso de thread é mais adequeado em sistema com múltiplos processores porém isso não é um fato para não usar processo, pelo contrário o processo também é muito utilizado .

Todos os threads têm exatamente o mesmo espaço de endereçamento, o que significa que eles também compartilham as mesmas variáveis globais. Tendo em vista que todo thread pode acessar todo espaço de endereçamento de memória dentro do espaço de endereçamento do processo, um thread pode ler, escrever, ou mesmo apagar a pilha de outro thread. Não há proteção entre threads, porque (1) é impossível e (2) não seria necessário.

Andrews Tanembaum Sistemas operacionais modernos.

Gabarito C

Seção de dados e de código, e recursos do SO.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo