 
                                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