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