Serviços dos Sistemas Operacionais Serviços dos Sistemas Operacionais O sistema operacional cria um ambiente para execução de programas. Esse ambiente fornece diversos tipos de serviços aos aplicativos e aos programadores. Ambientes Operacionais Prof. Simão Sirineo Toscani [email protected] www.inf.pucrs.br/~stoscani 1 Tipos de Serviços Tipos de Serviços Facilidades de uso (conveniência): 2 Execução de programas operações de I/O sistema de arquivos detecção de erros Eficiência alocação de recursos contabilizações proteção 3 Visão do Usuário 4 Chamada de sistema O usuário vê o SO através de uma interface de comunicação A partir da interface, a comunicação propriamente dita é feita via chamadas de sistema As chamadas de sistema permitem que o usuário solicite serviços ao SO 5 Esta instrução, uma vez executada, leva o processador para o modo supervisor (monitor) e transfere a execução para um ponto bem determinado do SO. 6 1 Chamadas de sistema para controle de processos Chamadas de sistema para manipulação de arquivos término ou cancelamento de programas carga e execução de programas criação e término de processos obtenção e alteração de atributos de processos espera por passagem de tempo espera a ocorrência de um evento sinaliza a ocorrência de um evento Criar e remover arquivos; Abrir, fechar, ler e escrever em arquivos; Obter e alterar atributos de arquivos. 7 Chamadas de sistema para manipulação de dispositivos 8 Chamadas de sistema para manutenção de informações Requisitar ou liberar dispositivo; Ler e escrever em dispositivo; Obter e alterar atributos de dispositivos. Obter e alterar hora e data; Obter e alterar dados do sistema; 9 Implementação de chamadas de sistema 10 Programas do Sistema (utilitários) Implementadas através de instruções de chamada de subrotina especiais que mudam o contexto de execução Nas linguagens de alto nível, as chamadas de sistema estão embutidas nas rotinas da biblioteca da linguagem Resolvem problemas comuns aos usuários Facilitam o uso do computador Exemplos de programas utilitários: Manipulação de arquivos; Informação de estado; Carregadores; Interpretador de comandos. (os compiladores não são mais considerados como programas do sistema) 11 12 2 Interpretadores de Comandos Visão do Programador de Sistema O interpretador de comandos implementa a interface entre o usuário e o SO Exemplos: O SO é um servidor de interrupções. Ele é conduzido por interrupções Exemplos de interrupções: shell (UNIX) command.com (MS-DOS) chamada de sistema dispositivo de I/O indicando término da operação erro na execução de programa temporizador indica o fim de uma fatia de tempo (interrupção periódica, para evitar que a UCP seja monopolizada por um processo) 13 Atendimento das chamadas de sistema 14 Atendimento de operações de E/S Podem ou não ser atendidas imediatamente Se tem que esperar, o pedido é inserido em uma fila de espera Exemplo 1: chamada de sistema para ler data ou hora é atendida imediatamente Exemplo 2: chamada de sistema para ler de disco vai fazer com que o processo fique bloqueado As operações de E/S ocorrem no seguinte contexto: O programa solicita I/O através de uma chamada de sistema; O sistema operacional bloqueia o programa e envia um comando para o dispositivo; Outro programa é executado (multiprogramação); Quando termina a operação do dispositivo, ele interrompe a CPU e o SO reativa o programa que estava à espera; Podem haver diversas solicitações simultâneas de I/O; O sistema operacional deve manter uma tabela com a situação de cada dispositivo de I/O; Quando termina um I/O, o sistema operacional consulta a tabela, e se existe pedido pendente, envia um novo comando para o dispositivo imediatamente. 15 Organização do Sistema de E/S 16 Interrupção por erro em programa A maneira mais comum de estruturar as atividades de E/S é ter um processo para controlar cada dispositivo O processo controlador é denominado driver do dispositivo O driver é o único que executa operações de E/S no dispositivo 17 Corresponde à tentativa de executar uma operação ilegal (p.ex., tentativa de divisão por zero, tentativa de acessar uma área de memória protegida). Neste caso, o SO deve terminar o programa, avisando que o término foi por erro. Estes erros são detectados pelo hardware e geram interrupções de software, conhecidas como traps (observe que tratam-se de falhas no software). 18 3