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.