O SO precisa de algum modo assegurar a existência de todos os seus processos. Em sistema simples, quando é executado somente uma ação, por exemplo sistemas de microondas, os processos estão sempre existente quando o microondas e ligado. Já nos sistemas gerais, os processo devem ser criados e terminados quando for necessário.
Há 4 eventos que fazem com que os processos sejam criados:
1.
- Inicio do sistema
- 2.Execução de chamadas de sistemas de criação de processo por outro processo em execução
- 3.Uma requisição de usuário
- 4.Inicio de Job em lote.
Quando o SO é iniciado existem processo em primeiro plano, que interagem diretamente com o usuário e outros em segundo plano que executa funções especificas para o usuário ou sistema operacional. A este processos que ficam em segundo planos chamamos de Daemons.
Termino de Processos
Depois de criado, um processo executa e faz o trabalho, como nada e para sempre, mas cedo ou mais tarde ele terminara. Assim temos 4 condições para que o processo termine.
- Saída Normal
- Saída por Erro
- Erro fatal
- Cancelamento por outro processo
O segundo motivo é quando o processo encontra um erro no programa ou ação do usuário. Então sai normalmente.
A terceira razão para o termino de um processo e a execução de um erro fatal no programa. Uma instrução ilegal ou cálculos de divisão por zero
A ultima razão é quando um outro processo e acional pelo sistema operacional para cancelar um processo anterior.
Ex.: Kill e gerenciador de tarefas.
Estados de um Processo Ex.: O interpretador de comando executando a linha abaixo: cat arq1 car2 car 3 | grep tree Assim, um processo pode assumir três estados:
Implementação de Processo Implementação de Processo
Muitas vezes um processo, por mais que seja um entidade independente, precisa interagir com outros processos. Por exemplo um processo gerando entradas para outro processo.
Em Execução Pronto Bloqueado
Implementação de Processo
Para implementar um processo, o SO mantém uma estrutura chamada tabela de processos, com a entrada de cada processo. Estas entradas contem informações sobre:
1.
- Estado do Processo
- 2.Contador de Programa
- 3.Ponteiro da pilha
- 4.Alocação de memória
- 5.Estado de seus arquivos abertos
- 6.Escalonamento
- 7.Tudo sobre o processo
Cada dispositivo e a CPU estão associadas a uma alocação na memória RAM, chamado de vetor de interrupções, que contem o endereço de cada interrupção.
Então quando um processo é criado, um contador de programa aponta para um endereço e seta o estado do processo.
Se um processo esta em execução e ocorre uma interrupção de disco, o Contado de Programa grava o estado do processo e os registradores Ativos. O hardware de interrupção os coloca em uma pilha.
Depois a CPU desvia a sua atenção para o endereço do dispositivo que foi acionado. Neste momento, o controle passa ao sistema o sistema operacional assume.
Gerencia de Processo | Gerência de Memória | Gerencia de Arquivos |
Registradores Contador de Programas Palavra de estado do programa Ponteiro da Pilha Prioridade Parâmetros de escalonamento Identificador de processo Processo Pai Grupo de Processo Processo pai Grupo ne | Ponteiro para o segmento de código Ponteiro para segmento de dados Ponteiro para segmento de pilha | Diretório raiz Diretório de Trabalho Descrito de arquivos Identificador do usuário Identificador do grupo |
Nenhum comentário:
Postar um comentário