Threads e Escalonamento de CPU: Resumo com Tipos e Algoritmos

ComputaçãoAtualizado em 3,39 KB

Resumo

O documento apresenta os conceitos de threads, suas vantagens e os tipos existentes (espaço usuário e espaço núcleo). Em seguida, trata do escalonamento de CPU, incluindo o papel do escalonador e do dispatcher, os critérios de escalonamento e os principais algoritmos, como SJF, prioridade, Round Robin e filas múltiplas.

Pontos-chave

  • Threads são miniprocessos que compartilham o espaço de endereçamento, são mais rápidos de criar e destruir e permitem comunicação por memória compartilhada.
  • Threads no espaço usuário são rápidas e não exigem o núcleo, mas o bloqueio de uma thread bloqueia todo o processo.
  • Threads no espaço núcleo permitem multiprocessamento real e o bloqueio de uma thread não bloqueia o processo, porém têm maior overhead por mudança de modo.
  • O escalonador de CPU seleciona um processo pronto para execução e decide quando ocorrem as trocas entre estados de execução, espera, pronto e término.
  • Escalonamento preemptivo permite interromper o processo, enquanto o não-preemptivo não o interrompe.
  • O algoritmo SJF escalona o processo com menor tempo de surto; a prioridade pode causar starvation, resolvido com aging.
  • Round Robin atribui um time quantum a cada processo e, ao fim dele, o processo vai para o fim da fila.

Teste-se

Threads

  • Divisão dos processos em partes menores.
  • Execução concorrente.
  • Estruturas de dados similares ao bloco de controle do processo.
  • Miniprocessos menos complexos.
  • Podem ser definidos no código do programa.

Uso dos Threads

  • Compartilhamento de espaço de endereçamento.
  • Ideia de processos paralelos.
  • Maior exploração do paralelismo por máquinas multiprocessadores.
  • Mais fáceis e rápidos de serem criados e executados:
    • Aumento do número de atividades executadas.
    • Diminuição do tempo de resposta.
    • Associação de threads a dispositivos de entrada e saída.
  • Sobreposição de operações de I/O e computação.
  • Vantagens:
    • Tempo de criação e destruição de threads é inferior ao de um processo.
    • Chaveamento de contexto entre threads é mais rápido.
    • Permite comunicação por memória compartilhada sem interação com o núcleo.

Tipos de Threads

  • Threads no espaço usuário: Suportados pela aplicação (bibliotecas), mais rápidos, dispensam o núcleo e evitam mudança de modo. O bloqueio de uma thread bloqueia o processo.
  • Threads no espaço núcleo: Suportados pelo S.O., permitem multiprocessamento real. O bloqueio de uma thread não bloqueia o processo, porém possuem maior overhead devido à mudança de modo.

Escalonamento de CPU

A utilização máxima da CPU é obtida através da multiprogramação. A execução de um processo consiste na alternância entre um ciclo de execução de CPU e um ciclo de espera de I/O.

Escalonador de CPU

Seleciona um processo na memória pronto para execução. Decisões ocorrem quando um processo:

  1. Passa de execução para espera.
  2. Passa de execução para pronto.
  3. Passa de espera para pronto.
  4. Termina.
  • Não-preemptivos: O processo não é interrompido (ex: Windows 3.x).
  • Preemptivos: O processo pode ser interrompido (ex: Unix).

Dispatcher

Módulo que dá o controle da CPU ao processo selecionado. Envolve mudança de contexto, mudança para modo usuário e reinício do programa. A latência de dispatch é o tempo necessário para essa troca.

Critérios de Escalonamento

  • Utilização de CPU;
  • Throughput (processos por unidade de tempo);
  • Tempo de retorno;
  • Tempo de espera;
  • Tempo de resposta.

Algoritmos de Escalonamento

  • SJF (Shortest Job First): Escalona o processo com o menor tempo de surto. Pode ser preemptivo (SRTF) ou não-preemptivo.
  • Por Prioridade: CPU alocada para o processo com maior prioridade. Problema: Starvation. Solução: Aging (envelhecimento).
  • Round Robin (RR): Cada processo recebe um time quantum. Após o tempo, vai para o fim da fila.
  • Filas Múltiplas: Particiona a fila de prontos (ex: interativo vs. batch) com algoritmos distintos para cada uma.
  • Filas Múltiplas com Realimentação: Permite que processos transitem entre filas, facilitando a implementação de prioridades dinâmicas e envelhecimento.

Baixar

PDF Word HTML

Perguntas frequentes

Qual a diferença entre threads no espaço usuário e no espaço núcleo?

Threads no espaço usuário são suportadas por bibliotecas da aplicação, são mais rápidas e não usam o núcleo, mas o bloqueio de uma thread bloqueia o processo. Threads no espaço núcleo são suportadas pelo S.O., permitem multiprocessamento real e o bloqueio de uma não bloqueia o processo, mas têm maior overhead.

O que é starvation no escalonamento por prioridade e como resolver?

Starvation ocorre quando um processo de baixa prioridade nunca recebe a CPU. A solução apontada no texto é o aging (envelhecimento), que aumenta gradualmente a prioridade dos processos que esperam.

O que é o Round Robin?

No Round Robin, cada processo recebe um time quantum de CPU. Quando esse tempo termina, o processo vai para o fim da fila de prontos.

Teste-se

Cartões de revisão

Clique em um cartão para ver a resposta.

Teste

1. Qual característica é atribuída às threads?
2. Qual é a desvantagem das threads no espaço usuário?
3. O que o dispatcher faz?
4. Qual algoritmo escalona o processo com menor tempo de surto?
5. Qual solução é apresentada para o problema de starvation?
6. O que caracteriza um escalonamento preemptivo?

Perguntas geradas com IA a partir do documento: verifique as respostas com o texto.