Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional INTRODUÇÃO • Sistema Operacional (S.O.) – Formado por um conjunto de rotinas que oferecem serviços aos usuários, às aplicações e ao próprio sistema Aplicativos Utilitários Núcleo do Sistema Operacional Hardware MACHADO, fig.4.1, pag 51 – Estrutura do sistema computacional FUNÇÕES DO S.O. • Tratamento de interrupções e exceções • Criação e eliminação de processos e threads • Sincronização e comunicação entre processos e threads • Escalonamento e controle dos processos e threads • Gerencia de memória • Gerência do sistema de arquivos FUNÇÕES DO S.O. • Gerencia de dispositivos de E/S • Suporte às redes locais e distribuídas • Contabilização do uso do sistema • Auditoria e segurança do sistema • Interface com o usuário VISÃO DO S.O. • Apresentar ao usuário uma Máquina Virtual equivalente ao hardware e mais simples de programar. • Máquina Estendida (Virtual) – Máquina Virtual – Esconde o verdadeiro hardware – Isola o usuário dos detalhes de operações em disco – Trata questões de baixo nível VISÃO DO S.O. • Gerenciador de Recursos – Fornece Interface aos aplicativos – Gerencia usuários no uso de recursos da máquina – Aloca processador, memória, dispositivos de E/S ESTRUTURA DO S.O. • Kernel ( núcleo) – Núcleo do Sistema Operacional • System Call ( Chamadas do sistema) – Mecanismo de proteção ao núcleo • Modos de Acesso – Mecanismo de proteção de segurança e violação do sistema KERNEL • Kernel – Núcleo do S.O. – Oferece serviços básicos para todas as outras partes – Rotinas que fornece serviços aos usuários e aplicações – Interpretador de comandos = SHELL • Desempenha papel de interação com o usuário – UNIX = c shell (%), bourne shell ($) – Linux = bash (#) – MS-DOS = command.com – Windows = API Win32 SYSTEM CALL • System Call (Chamadas do Sistema) – Mecanismo de proteção ao núcleo do S.O. e de acesso aos seus serviços – UNIX e Linux – System Calls – OpenVMS – System Services – Windows – API (Aplication Program Interface) – Quando um usuário ou aplicação deseja solicitar um serviço do S.O., realiza uma chamada ao serviço por meio de uma System Call. SYSTEM CALL • Funções das System Calls – Gerência de processos e threads – Gerência de memória – Gerência do sistema de arquivos – Gerência de dispositivos System Call Aplicação Núcleo do Sistema Operacional Biblioteca MACHADO, fig. 4.3, pag 54 – Chamada de uma rotina do sistema – System call Hardware EXEMPLOS DE SYSTEM CALL UNIX E WINDOWS NT TANENBAUM, fig.1.23, pag 41 – As chamadas da interface API Win32 EXEMPLO DE SYSTEM CALL • read (fd, buffer, nbytes) 1, 2 e 3 – Guarda parâmetros na pilha 4 – chamada real ao procedimento na biblioteca 5 – programa coloca o número da chamada ao sistema de um local esperado pelo SO 6 – TRAP para passar do modo usuário para modo núcleo e iniciar a execução em um endereço no núcleo 7 – despacha para procedimento correto de tratamento de chamada 8 – executado o procedimento de tratamento da chamada ao sistema 9 – retorna para o procedimento de biblioteca do espaço do usuário 10 – retorno ao espaço do usuário 11 – programa do usuário limpa pilha TANENBAUM, fig.1.17, pag 33 – Os 11 passos para fazer uma chamada ao sistema read(arq, buffer, nbytes) MODOS DE ACESSO • Métodos ou Modos de Acesso – Certas instruções devem ser executadas apenas pelo SO – As chamadas de sistema estão relacionadas aos modos de acesso do processador – Mecanismo para impedir a ocorrência de problemas de segurança e violação do sistema – Modo Núcleo (Kernel) • Todas as instruções do processador – Modo Usuário • Somente instruções não-privilegiadas ESTRUTURA DO SO • Chamada a uma rotina do sistema MACHADO, fig.4.2, pag 54 – Chamada a uma rotina do sistema SOFTWARE • Ativação/Desativação do Sistema – Boot – processo que carrega o SO da memória secundária para a memória principal e executa os arquivos de inicialização MACHADO, fig.4.5, pag 57 – Ativação do sistema SOFTWARE • Desativação do Sistema – Shutdown – processo de desativação do SO MACHADO, fig.4.5, pag 57 – Ativação do sistema ARQUITETURAS DE SOs • Arquitetura Monolíticos – Interação entre rotinas • Arquitetura em Camadas – Módulo de uma camada faz referência aos módulos das camadas inferiores ARQUITETURAS DE SOs • Arquitetura Cliente-Servidor – Baseado em microkernel (micro núcleo) – Usuário não tem acesso direto ao hardware – Exemplo: Minix, Windows NT, QNX • Máquinas Virtuais – Exemplo: CP/CMS, JVM ARQUITETURA MONOLÍTICA • Aplicação formada por vários módulos compilados separadamente e depois lincados em um grande e único programa executável onde os módulos podem interagir livremente – Exemplo • MS-DOS • UNIX (primeiros) MACHADO, fig.4.6, pag 59 – Arquitetura monolítica ARQUITETURA MONOLÍTICA Modelo simples de estruturação de um sistema monolítico ARQUITETURA EM CAMADAS • Sistema dividido em níveis sobrepostos • Módulos de uma camada podem fazer referência apenas aos módulos das camadas inferiores • Isola as funções do S.O. facilitando sua manutenção • Exemplo – – – – – THE OpenVMS UNIX Linux Windows 200X MACHADO, fig.4.7, pag 59 – Arquitetura em camadas do OpenVMS ARQUITETURA EM CAMADAS Estrutura do sistema operacional THE ARQUITETURA EM CAMADAS Estrutura do sistema operacional THE MÁQUINA VIRTUAL • • • • Nível intermediário entre o hardware e o SO São independentes do SO Grande segurança para cada Máquina Virtual Desvantagem – desempenho • Exemplo – JVM (Java Virtual Machine) – VMWare – Microsoft Virtual PC – Oracle Virtual Box MACHADO, fig.4.8, pag 60 – Máquina virtual ARQUITETURA MICROKERNEL • A função do núcleo é realizar a comunicação entre o cliente (aplicação que solicita o serviço) e o servidor (processo que responde à solicitação) • Surgiu com o Mach (1980- Carnegie Mellon University) • Manutenção mais fácil de depurar e mais confiável ARQUITETURA MICROKERNEL MACHADO, fig.4.9, pag 61 – Arquitetura Microkernel ARQUITETURA CLIENTE/SERVIDOR • Baseado em Microkernel • Tornar o núcleo do S.O. menor e mais simples • Implementar a maior parte dos serviços do SO em processos de usuários • Usuários não tem acesso direto ao hardware • Adaptável para sistemas de processamento paralelo ou distribuído • Exemplos – MINIX – Mach – Windows NT ARQUITETURA CLIENTE/SERVIDOR O modelo cliente-servidor BIBLIOGRAFIA • MACHADO, F. B. & MAIA, L. P., Arquitetura de Sistemas Operacionais, 4 Edição, São Paulo, LTC, 2007. • TANENBAUM, A. S. Sistemas Operacionais Modernos: 2ª edição, São Paulo, editora Prentice Hall, 2003. • SILBERSCHATZ, A. Sistemas Operacionais – Conceitos: São Paulo, editora LTC, 2004.