segunda-feira, 27 de junho de 2011

Criaçào de Processos


         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. 
  1. Inicio do sistema
  2. 2.Execução de chamadas de sistemas de criação de processo por outro processo em execução
  3. 3.Uma requisição de usuário
  4. 4.Inicio de Job  em lote. 
              Daemons
 
      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.
 
  1. Saída Normal
  2. Saída por Erro
  3. Erro fatal
  4. Cancelamento por  outro processo 
 Na maioria das vezes, os processos terminal porque já executaram o seu trabalho.
 Condições para terminar Processos

O segundo motivo é quando o processo encontra um erro no programa ou ação do usuário. Então sai normalmente. 
 
Exemplo: Usuário querendo compilar um arquivo que não existe.
 
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
 
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.
 
Ex.: O interpretador de comando  executando a linha abaixo:
               
         cat arq1 car2 car 3 | grep tree 
 
Assim, um processo pode assumir três estados:
 
  1. Em Execução
  2. Pronto
  3. 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. 
  1. Estado do Processo
  2. 2.Contador de Programa
  3. 3.Ponteiro da pilha
  4. 4.Alocação de memória
  5. 5.Estado de seus arquivos abertos
  6. 6.Escalonamento
  7. 7.Tudo sobre o processo

         Implementação de 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.
 
          Implementação de 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