Questões de Threads (Sistemas Operacionais)

Limpar Busca

A função CreateThread do Windows inicia um thread paralelo em relação a um thread em execução. Um programa principal roda:

Imagem relacionada à questão do Questões Estratégicas
O número total de threads descendentes do programa principal (incluindo ele) é igual a

  • A 5.
  • B 10.
  • C 8.
  • D 4.
  • E 7.

Um programador está desenvolvendo um sistema de controle de estoque no qual múltiplos threads precisam atualizar a quantidade de produtos simultaneamente. Para garantir que a quantidade de produtos seja atualizada corretamente sem causar inconsistências, ele precisa utilizar uma primitiva de sincronização específica.

Considerando-se esse contexto, qual é a propriedade que caracteriza unicamente a primitiva de sincronização chamada ‘mutex’ e que a qualifica para garantir a condição desejada?

  • A Bloquear threads até que uma condição específica seja verdadeira. 
  • B Combinar exclusão mútua e variáveis de condição para gerenciar o acesso a recursos compartilhados. 
  • C Garantir que apenas um thread possa acessar o recurso de cada vez. 
  • D Permitir múltiplos threads acessarem o recurso até um limite definido.
  • E Sincronizar a execução de múltiplos threads em pontos específicos do código.

As threads e os processos são conceitos fundamentais em sistemas operacionais e programação concorrente. 

Assinale a opção que descreve uma diferença importante no conceito entre processos e threads, incluindo aspectos de comunicação e sincronização. 

  • A Threads podem compartilhar recursos e memória, enquanto processos têm seus próprios espaços de endereço separados.
  • B Processos são mais eficientes em termos de comunicação e sincronização do que threads.
  • C Threads podem ser distribuídas em diferentes computadores, enquanto processos estão limitados a um único computador.
  • D Processos podem executar em paralelo em diferentes núcleos de CPU, enquanto threads são sempre executadas sequencialmente em um único núcleo.
  • E Threads podem iniciar novos threads, enquanto processos não podem iniciar novos processos.

Um conceito fundamental para o melhor aproveitamento de recursos por um sistema operacional é o de multithreading.
Para o emprego eficaz de multithreading em um sistema operacional, é fundamental a existência de mecanismos de sincronização eficientes. Nesse contexto, analise as afirmativas a seguir.

I. Por definição, semáforos possuem um contador, cujos valores podem ser 0,1 ou 2.
II. Mutexes são projetados para garantir que apenas uma thread possa acessar um recurso compartilhado por vez.
III. Mutexes podem ser considerados uma generalização de semáforos, por conta da maior flexibilidade do contador de um mutex.

Está correto o que se afirma em

  • A I, apenas.
  • B II, apenas.
  • C III, apenas.
  • D II e III, apenas.
  • E I, II e III.
Multithreading é um conceito fundamental para o melhor aproveitamento de recursos por um sistema operacional.
Para o emprego eficaz desse conceito, é fundamental a existência de mecanismos de sincronização eficientes.

Nesse contexto, analise as afirmativas a seguir.

I. Por definição, semáforos possuem um contador, cujos valores podem ser 0,1 ou 2.
II. Mutexes são projetados para garantir que apenas uma thread possa acessar um recurso compartilhado por vez.
III. Mutexes podem ser considerados uma generalização de semáforos, por conta da maior flexibilidade do contador de um mutex.

Está correto o que se afirma em
  • A I, apenas.
  • B II, apenas.
  • C III, apenas.
  • D II e III, apenas.
  • E I, II e III.