Buscar

Chamadas de Rotinas do Sistema Operacional e System Calls

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Chamadas de Rotinas do Sistema Operacional
 A system-calls ou chamadas de sistema realiza uma chamada a um dos procedimentos (ou serviços) do sistema, quando o usuário (ou aplicação) deseja solicitar algum serviço do Sistema Operacional.
 Existem certas chamadas de sistema que não podem ser colocadas diretamente á disposição das aplicações, pois a sua utilização indevida ocasionaria sérios problemas á integridade do sistema. Suponha que uma aplicação deseja atualizar um arquivo diretamente as instruções que acessam seus dados. Como o disco é um recurso compartilhado, sua utilização deverá ser realizada unicamente pelo Sistema Operacional.
 As instruções que tem o poder de comprometer o sistema são conhecidas como instruções privilegiadas, enquanto as instruções não privilegiadas são as que não oferecem perigo ao sistema. Para que uma aplicação possa acessar uma instrução privilegiada, o processador implementa o mecanismo de modo de acesso. Existem basicamente dois modos de acesso implementados pelo processador: Modo usuário e Modo Kernel.
 Quando um processador trabalha no modo usuário, basicamente a aplicação só pode acessar as instruções não privilegiadas, enquanto no modo Kernel a aplicação pode ter acesso ao conjunto total de instruções do processador.
 O mecanismo de modo de acesso também fornece proteção ao próprio núcleo do sistema. Suponha que um programa tenha acesso a área de memória onde está o sistema operacional. Qualquer programador mal intencionado ou um erro de programação poderia gravar nessa área, violando o sistema. Com o mecanismo de modo de acesso, para uma aplicação escrever na área de memória do sistema operacional, o programa deve estar sendo executado no modo Kernel.
 A chamada de sistema (e a função de biblioteca) retorna o número de bytes realmente lidos em count. Normalmente, esse valor é igual ao de nbytes, mas pode ser menor, se, por exemplo, o fim do arquivo for encontrado durante a leitura.
 Se a chamada de sistema não puder ser executada, seja devido a um parâmetro inválido ou a um erro do disco, count será configurado como -1 e o número indicando o código do erro será colocado em uma variável global, errno. Os programas sempre devem verificar os resultados de uma chamada de sistema para ver se ocorreu um erro.
 Os programas solicitam serviços ao sistema operacional através das chamadas de sistema. Elas são semelhante ás chamadas de sub-rotinas. Contudo, enquanto as chamadas de sub-rotinas são transferências para procedimentos normais do programa, as chamadas de sistema transferem a execução para o sistema operacional. Através de parâmetros, o programa informa exatamente o que necessita. O retorno da chamada de sistema, assim como o retorno de uma sub-rotina, faz com que a execução do programa seja retomada a partir da instrução que segue a chamada
Rotinas do Sistema Operacional e System Calls
 O sistema operacional oferece um conjunto de rotinas para tratar a comunicação com dispositivos externos, sistemas de arquivos e assim por diante. As rotinas do sistema operacional compõem o núcleo do sistema, oferecendo serviços aos usuários e suas aplicações. Todas as funções do núcleo são implementadas por rotinas do sistema que necessariamente possuem em seu código instruções privilegiadas. 
 A partir desta condição, para que estas rotinas possam ser executadas o processador deve estar obrigatoriamente em modo kernel, o que exige a implementação de mecanismos de proteção para garantir a confiabilidade do sistema.
 O mecanismo que usa o controle de execução das rotinas do sistema operacional é conhecido como system calls. O termo system calls é comum em sistemas UNIX. Em outros sistemas existem termos como system services.
 As rotinas do sistema operacional e a system calls dão acesso ao núcleo do sistema e a instruções privilegiadas. Sempre que uma aplicação do usuário desejar executar uma rotina do sistema operacional deve ativar a system calls que irá verificar se a aplicação possui privilégios necessários para executar a rotina desejada e retornar um status para a aplicação do usuário.
 Em caso negativo, o sistema operacional impede a execução da rotina e sinaliza que a execução não é possível. Caso seja positivo, o sistema operacional salva o conteúdo corrente dos registradores, troca o modo de usuário para kernel e realiza a execução da rotina do sistema operacional alterando o registrador PC com o endereço da rotina chamada. 
 Ao termino da execução da rotina, o modo de acesso é alterado para modo usuário e o contexto dos registradores é restaurado para que a aplicação continue a execução.
 As rotinas do sistema operacional podem ser divididas em grupos:

Continue navegando