Você está na página 1de 3

Nome: Cássio Montenegro Marques

Jogos Digitais III

Sistemas Operacionais

Atividade – Questões

1. Defina e diferencie: programa, processo e thread.

R: um programa é um conjunto de instruções, um processo é uma


instância de um programa em execução e um thread é uma unidade
de processamento dentro de um processo.

2. Qual a diferença entre processos CPU-bound e I/O-bound? Quais


são os problemas que podem ocorrer caso o sistema tenha muitos
processos CPU-bound ou muitos processos I/O-bound.

R: A principal implicação dessas diferenças é que o desempenho de


cada tipo de processo pode ser afetado de forma diferente pelos
recursos disponíveis do sistema. Por exemplo, em um sistema com
pouca capacidade de processamento, processos CPU-bound podem
ficar mais lentos, enquanto processos I/O-bound podem continuar a
operar normalmente se houver recursos suficientes de entrada e
saída. Por outro lado, em um sistema com recursos de entrada e
saída limitados, processos I/O-bound podem ficar mais lentos ou
mesmo travar, enquanto processos CPU-bound continuam a
processar dados em memória normalmente.

3. Como o uso de threads pode melhorar o desempenho de aplicações


paralelas em ambientes com múltiplos processadores?

R: Em resumo, o uso de threads pode melhorar o desempenho de


aplicações paralelas em ambientes com múltiplos processadores.
Como melhor escalabilidade, maior responsividade, redução do
tempo de espera etc.
4. Quais as diferenças entre threads em nível de usuário e threads em
nível de kernel? Em quais circunstâncias um tipo é melhor do que o
outro?

R: As threads em nível de usuário têm um overhead menor e são


gerenciadas pela própria aplicação, enquanto as threads em nível
de kernel são gerenciadas pelo sistema operacional e podem ser
executadas em diferentes processadores, permitindo maior
concorrência. As threads em nível de usuário são mais adequadas
para aplicativos que criam muitas threads e não precisam
compartilhar recursos entre diferentes processos, enquanto as
threads em nível de kernel são mais adequadas para aplicativos que
precisam de alta concorrência e paralelismo e precisam
compartilhar recursos entre diferentes processos.

5. Explique por que a tarefa do escalonador de processos é importante


para o desempenho da CPU.

R: O escalonador de processos é um componente importante do


sistema operacional que gerencia a alocação de tempo da CPU para
cada processo em execução. O escalonador de processos é
responsável por decidir qual processo deve ser executado em um
determinado momento e por quanto tempo, de acordo com uma
política de escalonamento específica.

6. Quais são os principais objetivos dos escalonadores de longo termo,


médio termo e curto termo? A que tipo de gerência, mecanismo ou
conceitos de sistemas operacionais cada um deles está associado?

R:
Escalonador de longo termo: O objetivo é manter o número máximo
de processos possíveis em memória principal e garantir um
equilíbrio entre processos de usuário e de sistema. Este escalonador
está associado com a gestão de memória do sistema operacional.
Este tipo de escalonamento está relacionado principalmente com a
gestão de memória do sistema operacional.
Escalonador de médio termo: O objetivo é evitar a sobrecarga de
recursos e garantir a eficiência da memória principal. Este
escalonador está associado com a gestão de memória do sistema
operacional. Este tipo de escalonamento está relacionado com a
gestão de memória do sistema operacional, mas também pode ser
associado com a gestão de entrada/saída.

Escalonador de curto termo: O objetivo é maximizar a utilização da


CPU e reduzir o tempo de espera dos processos na fila de prontos.
Este escalonador está associado com a gestão de CPU do sistema
operacional. Este tipo de escalonamento está relacionado com a
gestão de CPU do sistema operacional.

Você também pode gostar