Você está na página 1de 3

Aula 11 Disciplina: Princpios de Sistemas Operacionais Prof.

: Jlio Csar Benedito Chamadas de Sistema Podemos definir o conjunto das Chamadas de Sistema como sendo a interface entre o Sistema Operacional e seus programas aplicativos. Vale ressaltar que as Chamadas de Sistemas exibidas aqui se referem especificamente ao sistema POSIX (Interface Portvel entre Sistemas Operacionais), sistema de normalizao criado por volta de 1985 pela IEEE, e tem como objetivo garantir a portabilidade do cdigo-fonte de um programa a partir de um sistema operacional que atenda as normas POSIX para outro sistema POSIX. Como a verdadeira mecnica de uma chamada de sistema depende muito da mquina e freqentemente deve ser expressa em cdigo assembler, uma biblioteca de procedimentos pode ser fornecida para tornar possvel fazer chamadas de sistema a partir de programas em C, por exemplo. Para exemplificar melhor uma chamada de sistema, examinaremos brevemente um READ. Ele possui trs parmetros: o primeiro especifica o arquivo, o segundo o buffer no disco e o terceiro o nmero de bytes a ler. Uma chamada READ de um programa em C pode se parecer com: Count = read (file, buffer, nbytes); A chamada de sistema (e o procedimento de biblioteca) retorna o nmero de bytes realmente lido em count. Caso a chamada de sistema no possa ser executada, seja devido a um parmetro invlido, seja devido a um erro de disco, count definido como -1 e o nmero do erro ser colocado em uma varivel global que poder ser lida pelo aplicativo que dar um determinado tratamento para o erro. Exemplos de chamadas de sistemas: (mkdir, rmdir, mount, umount, chmod, time, kill, etc) 1 Chamadas de Sistema para Gerenciamento de Processos Aqui literalmente tratamos do Gerenciamento dos Processos, desde sua criao. 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 no pode ser interrompido. - Stopped: um processo que foi parado; - Zombie: um processo que foi detido. um processo morto. Do ponto de vista do Kernel, um processo uma entrada na tabela de processos, nada mais. A tabela de processos, ento, uma das mais importantes estruturas de dados do sistema, pois ela quem estabelece os estados de execuo dos diversos processos abertos. O processo atual identificado atravs da varivel global de sistema Current, gerenciada pelo prprio kernel. Os processos em execuo se revezam constantemente nesta varivel. Os processos so identificados atravs do PID (process identifier), sempre estabelecendo-se uma relao de hierarquia em relao ao processo pai. A criao de um processo geralmente ocorre com uma chamada de sistema Fork(), e o seu trmino definido na chamada de sinalizao Exit(). A finalizao de um

Pgina 1 de 3

Aula 11 Disciplina: Princpios de Sistemas Operacionais Prof.: Jlio Csar Benedito processo difcil, pois o processo pai precisa ser notificado sobre a interrupo de qualquer um dos filhos, no entanto um processo pode ser finalizado atravs de outro processo com a execuo de uma chamada Kill() por exemplo. 2 Chamadas de Sistema para Sinalizao Em alguns casos necessrio intervir na execuo de um processo, seja por motivos planejados ou por instrues ilegais passadas ao sistema. Por exemplo, se um usurio acidentalmente instrui um editor de texto a imprimir o contedo inteiro de um arquivo muito longo e, ento, 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(). Alm de permitir o tratamento de falhas, o sistema de sinalizao tambm utilizado para o controle de limite de tempo de execuo (timeouts). Para muitos aplicativos de tempo real, um processo precisa ser interrompido aps um intervalo especfico de tempo para fazer algo, como retransmitir um pacote de dados perdido em uma linha de comunicao pouco confivel. Para lidar com esta situao temos a chamada alarm, que permite a criao de uma espcie de temporizador para o processo. Outra situao quando um processo depende de uma sinalizao (humana, por exemplo) para dar prosseguimento s tarefas, um exemplo seria o tempo necessrio para a leitura de um texto em tela antes de dar continuao no processamento. Neste caso a chamada de sistema a ser aplicada seria o Pause, que permitiria interromper aquele processo at que uma sinalizao indicasse a sua continuidade, permitindo assim que outros processos pudessem fazer uso de tempo de processamento. 3 Chamadas de Sistema para Gerenciamento de Arquivos Muitas chamadas de sistema esto relacionadas com o sistema de arquivos e o seus mtodos de acesso, como por exemplo, solicitaes de: criao, leitura e excluso de arquivos. A criao de um arquivo pode ser definida com uma chamada creat(abc, 751); assim, um novo arquivo chamado abc seria gerado com as permisses: 7 ler, gravar e executar para proprietrio; 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 diretrio de trabalho, alm de informar se o arquivo ser aberto para leitura ou leitura e gravao. E conseqentemente a gravao ser feita atravs do Write. 4 Chamadas de Sistema para Gerenciamento de Diretrios e Sistemas de Arquivos So as chamadas que se relacionam com diretrios ou com o sistema de arquivos como um todo, em vez de somente um arquivo especfico. Em se tratando de gerenciamento de diretrios, as duas chamadas mais importantes seriam: mkdir e rmdir, que permitiram a criao e remoo de diretrios respectivamente. Outras chamadas importantes para o gerenciamento de diretrio so aquelas que tratam montar um dispositivo para permitir o acesso aos seus diretrios e

Pgina 2 de 3

Aula 11 Disciplina: Princpios de Sistemas Operacionais Prof.: Jlio Csar Benedito arquivos, neste caso utilizamos o Mount para disponibilizar o recurso e Umount para interromper o seu uso. 5 Chamadas de Sistema para Gerenciamento de Tempo Basicamente trata-se de chamadas de sistema que envolvem o tempo de relgio convencional. Entre as possibilidade esto: Time, que retorna a hora do sistema; STime, fornecida para permitir que o relgio seja configurado pelo superusurio; UTime, permite que um arquivo tenha definido os seus atributos de hora e data de criao e modificao (trata-se de uma chamada relativamente limitada); e por fim temos a TimeS, que retorna as informaes de tempo de CPU utilizado.

Pgina 3 de 3

Você também pode gostar