

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
O parâmetro temperature em LLM regula a amplitude da diversidade e criatividade nas previsões produzidas pelo modelo.
Certo
Errado
Processos e threads são estruturas do sistema operacional que permitem compartilhar a capacidade de processamento entre múltiplas tarefas paralelas ou pseudo-paralelas. A principal diferença entre eles consiste no fato de que
processos podem ser escalonados pelo sistema operacional, enquanto threads necessitam passar o controle explicitamente.
cada processo possui seu próprio espaço de endereçamento, enquanto diferentes threads podem compartilhar o mesmo espaço de endereçamento.
processos são gerenciados pelo kernel do sistema operacional, enquanto threads devem ser gerenciados pelas aplicações.
threads contam com proteção de memória pelo sistema operacional, enquanto processos podem ter seus segmentos de memória acessados por outros processos.
Existem diversas razões para o emprego de threads em sistemas operacionais, dentre elas:
como threads são mais “leves” (simples) do que os processos, é mais rápido criá-las e destruí-las do que os processos.
computadores com mais de uma UCP ganham desempenho, pois computadores com uma única UCP não podem empregar threads.
quando se busca aumentar o desempenho de uma UCP, pois threads não permitem que as atividades da UCP e de entrada e saída se sobreponham.
a maior integridade operacional, pois threads não compartilham um espaço de endereçamento entre elas.
a maior segurança, pois threads não compartilham dados entre elas.
Tendo como base o tema processos e threads de um Sistema Operacional, analise as afirmativas abaixo e dê valores Verdadeiro (V) ou Falso (F).
( ) Um thread é a unidade básica para a qual um sistema operacional aloca tempo do processador.
( ) Apenas um thread pode ser executado no contexto de um processo.
( ) Cada thread tem uma prioridade de agendamento e mantém um conjunto de estruturas que o sistema usa para salvar o contexto do mesmo quando sua execução é colocada em pausa.
Assinale a alternativa que apresenta a sequência correta de cima para baixo.
V - F - V
V - V - F
F - V - V
V - V - V
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.
Threads podem compartilhar recursos e memória, enquanto processos têm seus próprios espaços de endereço separados.
Processos são mais eficientes em termos de comunicação e sincronização do que threads.
Threads podem ser distribuídas em diferentes computadores, enquanto processos estão limitados a um único computador.
Processos podem executar em paralelo em diferentes núcleos de CPU, enquanto threads são sempre executadas sequencialmente em um único núcleo.
Threads podem iniciar novos threads, enquanto processos não podem iniciar novos processos.
Nos sistemas operacionais tradicionais, cada processo é dotado de um espaço de endereçamento e uma única thread de controle. Dentro dessa estrutura, as threads são
unidades independentes de execução que não podem compartilhar recursos com outras threads dentro do mesmo processo.
exclusivas de linguagens de programação orientadas a objetos, como Java e C#.
úteis para melhorar o desempenho e a responsividade de aplicativos, permitindo que as tarefas sejam executadas simultaneamente em um único processo.
processos que sempre têm prioridade igual, independentemente da importância das tarefas realizadas.
A programação com múltiplos threads pode apresentar diversas características, dentre elas:
atualmente alocar memória e recursos para a criação de processos não é caro, de forma que o uso de threads permite o ganho de desempenho por não compartilhar recursos do processo aos quais eles pertencem, o que contribuiu para uma maior velocidade de processamento.
como os threads podem compartilhar a memória e os recursos do processo aos quais pertencem, o compartilhamento do código permite que uma aplicação tenha vários threads diferentes de atividade todos dentro do mesmo espaço de endereçamento.
em geral é muito mais demorado criar e gerenciar threads do que criar e gerenciar processos.
o multithreading permite que se economize recursos, como memória, mas torna aplicações interativas mais lentas, por não permitir que um programa continue executando quando uma parte dele estiver bloqueada ou executando uma operação demorada, diminuindo, assim, a capacidade de resposta para o usuário.
os benefícios do multithreading se manifestam em uma arquitetura com um único processador; já em arquitetura multiprocessador não é permitido o uso de threads, por não trazer benefícios.
Um projetista de sistema operacional pretende desenvolver um sistema multitarefa, no que concerne à criação de processos. Para isso, ele pretende que os seguintes requisitos sejam atendidos:
I - a comunicação interprocessos deve ser eficiente;
II - o processo de criação e destruição deve ser eficiente;
III - deve ser permitido que os processos compartilhem um mesmo espaço de endereçamento e dados.
Qual unidade de execução em sistemas operacionais atende aos requisitos apresentados?
build()
fork()
ioctl()
malloc()
thread()
No contexto de um sistema operacional que suporta execução paralela, o analista Léo é encarregado de otimizar um aplicativo que faz uso intensivo de threads. O aplicativo em questão tem experimentado tempos de resposta inconsistentes, suspeitando-se de uma ineficiência na forma como as threads são gerenciadas e escalonadas.
Considerando um ambiente com múltiplos núcleos de CPU, para melhorar o desempenho do aplicativo, o analista Léo deve:
incrementar o número de threads para igualar o número de núcleos de CPU disponíveis, partindo do princípio de que mais threads resultarão em melhor paralelismo e desempenho;
implementar um algoritmo de escalonamento de threads baseado em prioridades, onde threads que realizam operações críticas para o desempenho recebem maior prioridade;
forçar todas as threads a executarem em um único núcleo para evitar a sobrecarga associada à troca de contexto entre diferentes núcleos;
utilizar um modelo de programação baseado em eventos em vez de threads, eliminando a necessidade de gerenciamento de threads;
reduzir a prioridade do processo do aplicativo no gerenciador de tarefas do sistema operacional para que outros processos possam ser executados com maior eficiência, partindo do princípio de que isso indiretamente melhorará o desempenho do aplicativo multithreaded ao otimizar o uso geral de recursos do sistema.
Threads dentro de um mesmo processo compartilham o mesmo espaço de memória.
Certo
Errado
Os threads apresentam diversas características, dentre elas:
são entidades executadas em quase paralelo, que possuem a capacidade de compartilharem um espaço de endereçamento e todos os seus dados entre si.
são mais leves do que os processos e são de criação mais rápida e destruição mais lenta do que eles.
cada processo pode empregar um único thread.
eles não podem ser utilizados em sistemas com múltiplas CPUs, onde o paralelismo real é possível.
o ganho de desempenho quando threads são empregadas é de cerca de 95% em relação a aplicações que não as empregam.
Assinale a opção correta em relação ao estado de ciclo de vida da thread em Java, segundo Deitei (2016).
Uma thread pode passar do estado "executável" somente para os estados "espera", "espera cronometrada" ou "terminado".
Uma thread não pode passar do estado "bloqueado" para o estado "executável".
Uma thread pode passar do estado "terminado" para o estado "executável".
Uma thread pode passar do estado "espera" para o estado "executável".
Uma thread no estado "novo" pode passar para o estado "executável" ou "bloqueado".
São características de um processo monothread:
Paralelismo e chamadas de sistemas bloqueantes.
Não paralelismo e chamadas de sistemas não bloqueantes.
Paralelismo e chamadas de sistemas não bloqueantes.
Não paralelismo e chamadas de sistemas bloqueantes.
Assinale a alternativa correta relacionada com threads em sistemas operacionais.
O termo multithread é usado para descrever a situação na qual é permitido que um thread possa ser utilizado em mais de um processo.
Em um computador com uma única CPU, o uso de threads resulta em um ganho de desempenho significativo, da ordem de 80%.
Cada processo pode conter apenas um thread.
Cada thread é caracterizado por um código em execução e um contexto local, composto pelos registradores do processador e uma área de pilha em memória, para que o thread possa armazenar variáveis locais e efetuar chamadas de funções.
É mais demorada a criação e a destruição de threads do que a criação e a destruição de processos.
As Threads possuem papel importante na execução de processos nos sistemas operacionais, pois promovem melhorias na execução das instruções. Sobre esse tópico, avalie as asserções a seguir.
Uma das vantagens do uso das threads reside no fato de elas serem mais fáceis e rápidas de criar e destruir do que os processos.
PORQUE
As threads em um processo compartilham dos mesmos códigos, registradores e pilhas do processo, embora possuam alocações de memória e de arquivos exclusivas.
Acerca dessas asserções, assinale a alternativa CORRETA.
As duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta da primeira.
As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da primeira.
A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa.
A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira.
Tanto a primeira quanto a segunda asserções são proposições falsas.
Considerando um programa concorrente com múltiplas threads, analise as seguintes assertivas sobre o uso de travas, também conhecidas como mutex:
I. Uma trava pode ser usada para proteger a memória de acesso simultâneo por múltiplas threads, mas não pode impedir threads do mesmo processo de acessar o mesmo arquivo.
II. Usar uma trava evita que múltiplas threads leiam da e escrevam na mesma variável dentro do escopo da trava ao mesmo tempo, o que causaria resultados inconsistentes ou incorretos.
III. Caso o programador não use travas, o sistema operacional sincroniza as threads automaticamente, mas com uma perda de eficiência.
Quais estão corretas?
Apenas I.
Apenas II.
Apenas III.
Apenas I e II.
Apenas II e III.
Os threads presentes nos sistemas operacionais apresentam algumas características típicas.
Assinale a alternativa que apresenta uma afirmação verdadeira sobre essas características.
A destruição dos threads é mais lenta do que a destruição dos processos.
Ao se decompor uma aplicação em múltiplos threads sequenciais que são executados em quase paralelo, o modelo de programação torna-se mais complexo.
Os threads não possuem a capacidade de compartilhar um espaço de endereçamento e todos os seus dados entre si.
Os threads não são úteis em sistemas com múltiplas CPUs, nos quais o paralelismo real é possível.
Os threads são mais leves do que os processos, e a criação dos threads é mais rápida do que a criação dos processos.
Assinale CORRETAMENTE a função do método thread-yield:
Serve para terminar uma rotina e não ser mais escalonada.
Bloqueia o thread que executou a chamada até que um thread específico tenha terminado.
Permite que um thread abra mão voluntariamente da CPU para deixar outro thread ser executado.
Especifica o nome de uma rotina para o novo thread executar.
Processos e threads são unidades de execução de tarefas dentro do sistema operacional. Sobre as características das threads, é correto afirmar que
o escalonador do sistema operacional conhece e gerencia todas as threads de usuário.
as trocas de contexto das threads de usuário são executadas pelo sistema operacional sem o conhecimento do aplicativo.
as trocas de contexto das threads de núcleo são executadas por uma biblioteca de aplicativos, sem o conhecimento do sistema operacional.
as threads de um mesmo processo compartilham o mesmo espaço de endereçamento de memória, arquivos abertos e outros recursos que compõem o contexto global do processo.
as threads de um mesmo processo compartilham o mesmo contexto de execução, o qual inclui o identificador único da thread, o estado da pilha de execução e os valores no apontador de instrução e nos registradores de uso geral.
Presentes em diversos sistemas operacionias, os threads apresentam algumas características, tais como:
a troca de threads requer que o computador seja reiniciado.
não compartilham espaço de endereçamento e seus dados entre si, por questões de segurança.
não podem ser utilizados em sistemas com múltiplas UCPs, onde o paralelismo real é possível.
são criados com mais rapidez do que os processos.
são destruídos com menos rapidez do que os processos.