Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

<p>Sistemas Operacionais</p><p>Eliane Esteca Pereira</p><p>1 - Defina o que é uma thread dentro de um processo. Quais as informações básicas que uma thread armazena internamente?</p><p>Em um processo, a thread se refere a uma única atividade sequencial sendo executada.</p><p>É a menor unidade de processamento.</p><p>Thread é o que efetivamente é executada dentro do processo.</p><p>As principais informações armazenadas internamente em uma thread são:</p><p>Contador de Programa: Indica a próxima instrução que a thread deve executar. É como um marcador de página em um livro, mostrando onde a thread está no seu código.</p><p>Pilha: Uma área de memória utilizada para armazenar dados locais, parâmetros de função e o endereço de retorno de cada chamada de função. É como uma pilha de pratos, onde o último prato colocado é o primeiro a ser retirado.</p><p>Registradores: Pequenas áreas de memória muito rápidas usadas para armazenar dados que a CPU precisa acessar com frequência. São como pequenos cadernos onde a thread anota informações importantes para suas operações.</p><p>ID da Thread: Um número único que identifica a thread dentro do processo. É como um número de identificação pessoal, que distingue uma thread das outras.</p><p>2 - O que são Sistemas Multiprocessados? O que é um Sistema Multicore?</p><p>Sistemas multiprocessados são aqueles que possuem múltiplos processadores trabalhando em conjunto para executar tarefas. Em vez de um único processador realizando todas as operações, esses sistemas distribuem o trabalho entre vários processadores, o que pode levar a um aumento significativo no desempenho, especialmente para tarefas que exigem alto poder computacional.</p><p>Um sistema multicore é um tipo de processador que possui múltiplos núcleos de processamento em um único chip. Cada núcleo é essencialmente um processador independente, capaz de executar instruções de forma simultânea.</p><p>3 - Quais as vantagens da programação multicore?</p><p>Aumento de desempenho:</p><p>Paralelização de tarefas: Tarefas podem ser divididas e executadas simultaneamente em diferentes núcleos, reduzindo significativamente o tempo de execução.</p><p>Melhor aproveitamento dos recursos: Os núcleos podem ser utilizados de forma mais eficiente, evitando gargalos e otimizando o uso do hardware.</p><p>Maior responsividade:</p><p>Tarefas em segundo plano: Tarefas menos críticas podem ser executadas em paralelo, mantendo a interface do usuário responsiva.</p><p>Melhoria da experiência do usuário: Aplicações com interfaces mais fluidas e rápidas proporcionam uma melhor experiência para o usuário.</p><p>Escalabilidade:</p><p>Adaptação a diferentes cargas de trabalho: Aplicações multicore podem se adaptar a diferentes cargas de trabalho, ajustando a quantidade de recursos utilizados de acordo com a necessidade.</p><p>Eficiência energética:</p><p>Gerenciamento de energia: Ao distribuir a carga de trabalho entre os núcleos, é possível otimizar o consumo de energia, desligando núcleos ociosos.</p><p>4 - Qual a diferença entre paralelismo e concorrência?</p><p>Paralelismo</p><p>Execução simultânea real: No paralelismo, múltiplas tarefas são executadas ao mesmo tempo em diferentes processadores ou núcleos. Isso significa que, em um dado instante, as instruções de múltiplas tarefas estão sendo processadas simultaneamente.</p><p>Hardware: Requer hardware específico, como sistemas multiprocessados ou multicore, para que o paralelismo seja possível.</p><p>Exemplo: Um supercomputador realizando cálculos complexos, distribuindo as tarefas entre seus milhares de núcleos.</p><p>Concorrência</p><p>Ilusão de simultaneidade: A concorrência se refere à capacidade de um sistema lidar com múltiplas tarefas de forma que pareçam estar acontecendo ao mesmo tempo, mas na prática, a execução pode ser intercalada.</p><p>Software: Pode ser implementada em software, utilizando mecanismos como threads ou processos.</p><p>Exemplo: Um sistema operacional que permite que múltiplos programas sejam executados ao mesmo tempo, alternando entre eles rapidamente.</p><p>5 - Qual a diferença entre paralelismo de dados e paralelismo de tarefas?</p><p>Paralelismo de Dados</p><p>Foco: Dividir um conjunto de dados em partes menores e processar cada parte em paralelo.</p><p>Operação: A mesma operação é aplicada a diferentes partes dos dados simultaneamente.</p><p>Exemplo:</p><p>Processamento de imagens: Cada pixel de uma imagem pode ser processado independentemente por um núcleo diferente.</p><p>Cálculos científicos: Um grande conjunto de números pode ser dividido em blocos menores e cada bloco pode ser processado em paralelo.</p><p>Quando usar: Ideal para algoritmos que envolvem a aplicação da mesma operação a grandes conjuntos de dados.</p><p>Paralelismo de Tarefas</p><p>Foco: Dividir um programa em tarefas independentes e executar cada tarefa em um núcleo diferente.</p><p>Operações: Diferentes tarefas podem realizar operações distintas.</p><p>Exemplo:</p><p>Um servidor web: Uma tarefa pode lidar com solicitações HTTP, outra pode gerenciar o banco de dados e uma terceira pode gerar relatórios.</p><p>Um jogo: Uma tarefa pode renderizar os gráficos, outra pode simular a física e uma terceira pode processar a entrada do usuário.</p><p>Quando usar: Ideal para programas que podem ser decompostos em tarefas independentes e que exigem diferentes tipos de processamento.</p><p>image1.png</p>

Mais conteúdos dessa disciplina