quarta-feira, 22 de junho de 2011

Chamadas de Sistemas


        A interface entre o SO e os outros programas é definida por um conjunto de chamada de sistemas que o SO oferece,  assim temos chamada de sistemas para leitura.
     
       Para exemplificar melhor uma chamada de sistema, examinaremos brevemente um READ. Ele possui três parâmetros: o primeiro especifica o arquivo, o segundo o buffer no disco e o terceiro o número de bytes a ler. Uma chamada READ de um programa em C pode se parecer com: 
 
 Count = read (file, buffer, nbytes); 
 
Tipos de Chamadas de Sistema
      Chamadas de Sistema para Gerenciamento de Processos 
 
       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: o processo está esperando por um evento ou recurso;
  • Interruptible: o processo de espera que pode ser interrompido;
  • - Uninterruptible: o processo de espera que não pode ser interrompido
  • Stopped: um processo que foi parado;
  • Zombie: um processo que foi detido. É um processo morto. 
 
      Chamadas de Sistema para Sinalização 
 
     Em alguns casos é necessário intervir na execução de um processo, seja por motivos planejados ou por instruções ilegais passadas ao sistema. Por exemplo, se um usuário acidentalmente instrui um editor de texto a imprimir o conteúdo inteiro de um arquivo muito longo e, então, percebe o erro, é preciso haver alguma maneira de interromper o editor e eliminar o processo sem maiores alardes ao sistema, neste caso é utilizado a chamada Kill(). 
 
         Chamadas de Sistema para Gerenciamento de Arquivos 
 
         Muitas chamadas de sistema estão relacionadas com o sistema de arquivos e o seus métodos de acesso, como por exemplo, solicitações de: criação, leitura e exclusão de arquivos. A criação de um arquivo pode ser definida com uma chamada creat(“abc”, 751); assim, um novo arquivo chamado “abc” seria gerado com as permissões: 7 – ler, gravar e executar para proprietário; 5 – ler e executar para o grupo; 1 – apenas executar para outros. Para ler ou gravar um arquivo existente, o arquivo deve primeiramente ser aberto utilizando-se Open. Essa chamada especifica o nome do arquivo a ser aberto, seja um caminho absoluto ou relativo ao diretório de trabalho, além de informar se o arquivo será aberto para leitura ou leitura e gravação. E conseqüentemente a gravação será feita através do Write.
 
      Chamadas de Sistema para Gerenciamento de Diretórios e Sistemas de Arquivos
 
        São as chamadas que se relacionam com diretórios ou com o sistema de arquivos como um todo, em vez de somente um arquivo específico. Em se tratando de gerenciamento de diretórios, as duas chamadas mais importantes seriam: mkdir e rmdir, que permitiram a criação e remoção de diretórios respectivamente. 
 
     Outras chamadas importantes para o gerenciamento de diretório são aquelas que tratam “montar” um dispositivo para permitir o acesso aos seus diretórios e arquivos, neste caso utilizamos o Mount para disponibilizar o recurso e Umount para interromper o seu uso.
 
        Chamadas de Sistema para Gerenciamento de Tempo 
 
     Basicamente trata-se de chamadas de sistema que envolvem o tempo de relógio convencional. Entre as possibilidade estão: Time, que retorna a hora do sistema; STime, fornecida para permitir que o relógio seja configurado pelo superusuário; UTime, permite que um arquivo tenha definido os seus atributos de hora e data de criação e modificação (trata-se de uma chamada relativamente limitada); e por fim temos a TimeS, que retorna as informações de tempo de CPU utilizado. 
 
 
 
 
 
 

Nenhum comentário:

Postar um comentário