Conceitos Fundamentais de Processos e Threads em SO

Classificado em Computação

Escrito em em português com um tamanho de 3,84 KB

Processo: Conceito e Estrutura

Processo é um conjunto necessário de informações para que o Sistema Operacional (S.O.) implemente a concorrência de programas. É importante no projeto de sistemas multiprogramáveis, pois são executados concorrentemente, compartilhando o uso de processador e outros recursos.

Componentes de um Processo

Um processo é composto por:

  • Contexto de Hardware: Identifica quais recursos de hardware o processo necessita. A troca refere-se à saída de um processamento para que outro assuma.
  • Contexto de Software: Especifica os limites que podem ser alocados e abertos simultaneamente, juntamente com suas prioridades.
  • Espaço de Endereçamento: Instruções e dados são armazenados para execução.

Estrutura do PCB (Process Control Block)

O PCB mantém todas as informações sobre os contextos e endereçamentos de cada processo.

Estados do Processo

Os estados principais são:

  1. Criação: Adiciona nova PCB.
  2. Execução: Processado pela UCP (Unidade Central de Processamento).
  3. Pronto: Aguarda ser executado.
  4. Espera: Aguardando um evento externo.
  5. Término: Nenhum programa executado no contexto.

A Mudança de Estado é acionada por uma system call.

Conceitos Relacionados

  • Processos: São instâncias que estão na fila para execução.
  • Thread: Partes de um processo em execução.
  • Subprocesso: Apresentados sob uma hierarquia.
  • Foreground: Há interação com o usuário.
  • Background: Sinal batch sem interação com o usuário.
  • CPU-Bound (CPU-B): Processos internos do S.O.
  • I/O-Bound (I/O): Processos executados com operações de E/S (Entrada/Saída).

Gerenciamento e Métricas

Sinais: Gerenciam os processos; o sinal enviado interrompe ou executa um processo.

Escalonador: Define as políticas de escalonamento do sistema.

Dispatcher: Responsável pelo chaveamento ou troca dos processos.

Métricas de Tempo

  • Tempo de Execução: Estado de execução.
  • Espera: Fica na fila de pronto.
  • Turnaround: Tempo da criação ao término.
  • Resposta: Tempo entre a requisição e a exibição da resposta.

Preempção

  • Preemptivo: Pode interromper um processo no estado de execução e passá-lo para pronto.
  • Não Preemptivo (Não P): Só deixa de executar quando termina sua execução.

Alocação de Memória

  • Best Fit: Alocação ocorre no menor espaço disponível.
  • Worst Fit: Ocorre no maior espaço disponível.
  • First Fit: No primeiro espaço disponível.

Swapping: Resolve o problema de falta de Memória Principal (MP) através de uma maior taxa de utilização da memória principal.

Algoritmos de Escalonamento

  • FIFO (First-In, First-Out): Escalonamento não preemptivo, sendo necessária apenas uma fila.
  • Circular (Round Robin): É preemptivo, parecido com FIFO, mas usa fatia de tempo (quantum).
  • SJF (Shortest Job First): Seleciona o processo com o menor tempo de processador.
  • Prioridades: Preemptivo com prioridade de execução; fatia de tempo não existe.

Entradas relacionadas: