Sistemas Operativos Conceitos e Chamadas de Sistema 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)
Chamadas de Sistema Conjunto de chamadas ao sistema pode ser definido como: interface entre o Sistema Operativo e seus programas ou aplicações POSIX (Portable Operating System Interface): família de normas definidas pelo IEEE e designada formalmente por IEEE 1003 objetivo de garantir a portabilidade do códigofonte de um programa a partir de um sistema operacional
Chamadas de Sistema Como a verdadeira mecânica de uma chamada de sistema depende muito da máquina e freqüentemente deve ser expressa em código assembler uma biblioteca de procedimentos pode ser fornecida chamadas de sistema a partir de programas em C
Chamadas de Sistema Para exemplificar melhor uma chamada de sistema, examinaremos brevemente um READ Count = read (file, buffer, nbytes); retorna o número de bytes realmente lido em count Em caso de ERRO count é definido como -1... a mensagem de erro será guardada numa variável global
Chamadas de Sistema Exemplos de chamadas de sistemas: mkdir, rmdir, mount, Umount, chmod, Time, kill
Gerenciamento de Processos Processos Durante o seu tempo de via, ele passa por vários estados 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.
Gerenciamento de Processos Processos Durante o seu tempo de via, ele passa por vários estados Stopped: um processo que foi parado; Zombie: um processo que foi detido. É um processo morto.
Gerenciamento de Processos Processos O Kernel tem uma tabela onde coloca os processos. Um processo é iniciado quando dá entrada nesta tabela. Dado a importância dos processos, está tabela é uma das mais importantes estruturas de dados do sistema, a ele compete estabelecer os estados de execução dos diversos processos abertos;
Gerenciamento de Processos Processos O Kernel tem uma tabela onde coloca os processos. Um processo é iniciado quando dá entrada nesta tabela. Dado a importância dos processos, está tabela é uma das mais importantes estruturas de dados do sistema, a ele compete estabelecer os estados de execução dos diversos processos abertos;
Gerenciamento de Processos Processos O processo atual é identificado através da variável global de sistema Current, gerenciada pelo próprio kernel processos em execução se revezam constantemente nesta variável.
Gerenciamento de Processos Processos Os processos são identificados através do PID (process identifier) Sempre estabelecendo-se uma relação de hierarquia em relação ao processo pai
Gerenciamento de Processos Processos A criação de um processo geralmente ocorre com uma chamada de sistema Fork(), e o seu término é definido na chamada de sinalização Exit() A finalização de um processo é difícil o processo pai precisa ser notificado
Sinalização Em alguns casos é necessário intervir na execução de um processo, seja por motivos planeados ou por instruções ilegais passadas ao sistema Normalmente utiliza-se a chamada Kill(), reponsável por matar um processo, mesmo que este esteja a correr
Sinalização Além de permitir o tratamento de falhas também é utilizado para o controle de limite de tempo de execução (timeouts) Para muitos aplicativos de tempo real um processo precisa ser interrompido após um intervalo específico de tempo para fazer algo Para lidar com esta situação temos a chamada alarm
Sinalização Outra situação é quando um processo depende de uma sinalização (humana, por exemplo) para dar prosseguimento às tarefas neste caso a chamada de sistema a ser aplicada seria o Pause assim processo fica em Stand By e outros processos podem usar seu tempo de processamento
Gerenciamento de Arquivos Muitas chamadas de sistema estão relacionadas com o sistema de arquivos e o seus métodos de acesso Criar um arquivo: create( abc, 751) 7 full para proprietário, 5 ler e executar para grupo e 1 executar para todos Open para abrir um ficheiro Write para gravar, etc.
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 Chamadas mais importantes: mkdir rmdir Outras chamadas, mount e umount Sistemas Operativos [2011/12] - Eng.º Anilton Silva Fernandes <afernandes@ipiaget.net>
Gerenciamento de Tempo Basicamente trata-se de chamadas de sistema que envolvem o tempo de relógio convencional Time (hora do sistema); Stime (configuração por parte do ROOT) Utime (permite que arquivos tenham possibilidade de expecificar sua hora de criação e modificação) TimeS (informação de tempo de CPU usado)