Chamadas de Sistema, Estados e Sinais de Processos

Classificado em Computação

Escrito em em português com um tamanho de 4,38 KB

Chamadas de Sistema

Chamadas de sistema: Interface entre o S.O. e seus Programas/Aplicativos. Três Parâmetros: 1º especificar o arquivo; 2º especificar o buffer no disco; 3º especificar o número de bytes a ler. Ex. de chamadas de sistema Unix: MKDIR, RMDIR, CHMOD, TIME, KILL, PS.

Estados de um Processo

Durante o seu tempo de vida, um processo pode passar por diferentes estados:

  • Running: É o processo atual do sistema ou está pronto para ser nomeado a uma das CPUs do sistema.
  • Waiting: Processo está esperando por um evento ou recurso.
  • Interruptible: O processo de espera que pode ser interrompido.
  • Stopped: Um processo que foi parado.
  • Zombie: Um processo que foi detido. Geralmente um processo morto.

Do ponto de vista do kernel, um processo é uma entrada na tabela de processo, nada mais. A tabela de processos, então, é uma das mais importantes estruturas de dados do sistema, pois é ela quem estabelece os estados de execução dos diversos processos abertos.

Atributos de Processos

Processos são a execução de algo que vai “rodar” por um tempo determinado ou será um serviço, podendo conter os seguintes atributos:

Lifetime (Tempo de Vida)

Tempo de vida, é simplesmente o tempo que um processo leva desde sua criação até sua finalização.

  • Curto: É criado, exibe os resultados e já é finalizado automaticamente.
  • Chamada de sistema: Tem um tempo de vida mais longo e só “morre” quando for finalizado pelo usuário.
  • Existe também processos que são iniciados automaticamente e só são finalizados quando a máquina for desligada.

Identificadores e Relações

  • Process ID (PID): Um número inteiro, sempre diferente para cada processo, que é criado quando o processo inicializa, fica alocado para ele durante todo o lifetime e volta a ficar vago quando o processo morre.
  • User ID (UID): Identificação do usuário dono do processo.
  • Group ID (GID): Identificação do grupo dono do processo.
  • Parent Process: Muitos processos são criados por outros processos, uma relação de pai e filhos são criadas entre eles.
  • Parent Process ID (PPID): Este é o PID do processo pai que está sendo analisado no momento. O pai de todos os processos em um S.O. é o “INIT”, que sempre tem o PID 1. Quando o processo fica órfão, ou seja, quando o processo pai é finalizado antes de seus filhos, este processo é “adotado” pelo ‘INIT’.

Ambiente do Processo

  • Environment ou ambiente: Para os processos serem executados corretamente, muitas vezes é necessário que se criem variáveis no sistema para que ele encontre bibliotecas, saiba se comportar, etc. Convencionou-se falar que estas variáveis formam o “ambiente” do processo e este ambiente é herdado por todos os filhos de um processo.
  • Diretório atual: Um diretório qualquer que o processo vai usar para armazenar tudo o que ele precisa durante seu funcionamento.

SINAIS

São números inteiros, que possuem “strings” curtas como apelidos para facilitar o reconhecimento deles por humanos, que são pré-definidos e conhecidos por todos os processos criados no sistema.

Sinais Comuns

  • HUP (Código numérico 1): HUP quer dizer “HANG UP” ou desligar. Este sinal é enviado para os processos, para que eles releiam o arquivo de configuração depois de realizado alguma alteração.
  • INT (Código numérico 2): INT é a abreviação para “Interrupt” ou interromper. Diz para o processo parar de ser executado, tomar todas as providências necessárias e finalizar.
  • KILL (Código numérico 9): O Kill indica que o processo deve parar incondicionalmente e imediatamente.
  • TERM (Código numérico 15): Term é a abreviação de terminate. Pede para o processo terminar sua execução agora se possível, limpando o ambiente corretamente. Quando se quer ter certeza que o processo será finalizado de forma correta, enviamos um Term para ele.

Entradas relacionadas: