Sistemas Operacionais Sumário System Calls Interrupções e exceções Tratamento de interrupções Múltiplas interrupções Estruturas de controle Arquitetura de um SO Arquitetura monolítica Arquitetura em camadas Máquina virtual Arquitetura microkernel Tendências Aula 2 – Estrutura de SO 2 Introdução Sistema computacional Aplicativos Utilitários Núcleo do Sistema Operacional Hardware Aula 2 – Estrutura de SO 3 System Calls (1) Método empregado para um processo usuário solicitar serviços ao sistema operacional Normalmente baseada em interrupções de software (traps) Aciona a rotina de tratamento de interrupção Identifica serviço requisitado Verifica validade dos parâmetros Executa o serviço Retorna ao processo do usuário Aula 2 – Estrutura de SO 4 System Calls (2) System calls System Call Aplicação Biblioteca Aula 2 – Estrutura de SO Núcleo do Sistema Operacional Hardware 5 System Calls (3) Chamada a uma rotina do sistema Aula 2 – Estrutura de SO 6 System Calls (4) Funções Gerência de processos e threads Gerência de memória Gerência do sistema de arquivos Gerência de dispositivos Tipos de instruções Privilegiadas Não-privilegiadas Modos de acesso Usuário Kernel ou supervisor Aula 2 – Estrutura de SO 7 Interrupção e Exceção (1) Tratamento de interrupções - É feito pelo SO, que determina a natureza da interrupção e dispara a Rotina de Serviço adequada para executar as ações que forem necessárias. Detalhes: • • • • • • • • A execução do programa corrente é suspensa O endereço da Rotina de Serviço é localizado na tabela de interrupções O status do programa corrente é salvo (conteúdo do PC, PSW) O controle do processador é transferido para a rotina de serviço A rotina de SV pode salvar outros dados da tarefa em execução (registradores, ...) O ponto de interrupção pode ocorrer em qualquer parte do programa As rotinas de serviço normalmente fazem parte do Sistema Operacional Existe um “Overhead” adicional para ativar e executar a rotina de serviço. Aula 2 – Estrutura de SO 8 Interrupção e Exceção (2) Mecanismo de Interrupção e Exceção Aula 2 – Estrutura de SO 9 Interrupção e Exceção (3) Hardware Software (Rotina de serviço) Dispositivo de controle ou outro sistema de hardware que permita ativar uma interrupção Salva informações remanescentes sobre o estado do processo Fluxo de Processamento de uma Interrupção Processador termina a execução da instrução corrente Processa a interrupção Processador reconhece sinal de interrupção Restaura a informação do estado do processo Processador coloca PSW e PC na pilha de controle Restaura o velho PSW e PC Processador carrega novo valor do PC, baseado na interrupção Aula 2 – Estrutura de SO 10 Múltiplas interrupções (1) Programa do usuário Interrupção Rotina X Modelo seqüencial Interrupção Rotina Y • A Rotina de Serviço desabilita as interrupções • Uma nova interrupção só é tratada após o retorno • A interrupção pode demorar a ser tratada, o que pode eventualmente ocasionar uma perda de dados • Finalizada a Rotina de Serviço de interrupção, o processador checa por interrupções adicionais Aula 2 – Estrutura de SO 11 Múltiplas interrupções (2) Programa do usuário Interrupção Rotina X Modelo cascata Interrupção Rotina Y • • • Interrupções têm prioridade Interrupções com alta prioridade interrompem rotinas de serviço de interrupções de menor prioridade Exemplos de prioridade: – impressora – disco – comunicação Aula 2 – Estrutura de SO + 12 Estruturas de controle Tabelas de Memória imagem do processo Processo 1 Memória Tabelas de E / S Dispositivos Arquivos Tabelas de Arquivos Processos Tabela de Processos Processo 1 imagem do processo Processo 2 Processo n Processo 3 Processo n Aula 2 – Estrutura de SO 13 Modo de execução do SO Modo usuário instruções associadas ao uso não privilegiado Modo kernel instruções associadas ao uso privilegiado Configuração: Onde ?? Um bit do PSW Quando ??? em resposta a determinados eventos Aula 2 – Estrutura de SO 14 Arquitetura de um SO Usuário (*) Residente kernel Residente Sistema Monolítico Sistema Modular (camadas) Cliente / Servidor (*) “Só por prazer” – Linus Torvalds x Tanenbaum Aula 2 – Estrutura de SO 15 Arquitetura monolítica (1) Dominou até os primeiros grandes sistemas para Mainframes. • CTSS (MIT, 1963) – 32.000 instruções de 36 bits cada • OS/360 (IBM, 1964) – mais de 1 milhão de instruções • MULTICS (MIT e Bell Labs) – mais de 20 milhões de instruções Problemas: • Bugs • Memória • Complexidade Aula 2 – Estrutura de SO Arquitetura Modular e, posteriormente, em Camadas. 16 Arquitetura Monolítica (2) Arquitetura monolítica aplicação aplicação Modo usuário Modo kernel System call Hardware Aula 2 – Estrutura de SO 17 Arquitetura do MS-DOS Vários sistemas comerciais não têm uma estrutura definida, e o MS-DOS é um deles. No MS-DOS as interfaces e níveis de funcionalidade não são bem separados nem estão unificados de forma monolítica. Programa aplicativo Programa SO residente Drivers de Dispositivo do MS-DOS (*) O excesso de liberdade torna o SO vulnerável. Drivers de Dispositivo da BIOS Aula 2 – Estrutura de SO 18 Arquitetura em camadas O sistema é dividido em níveis sobrepostos. Cada nível oferece funções que só podem ser utilizadas pelas camadas mais externas. • THE (Technische Hogeschool Eindhoven – 1968) – primeiro em camadas (6) kernel • MULTICS e OpenVMS foram os seguintes, projetando-as concêntricas Executivo Supervisor Usuário • Atualmente a maioria adota 2 camadas (kernel – privilegiado e usuário – não privilegiado) – UNIX e Win2000 Arquitetura do OpenVMS Aula 2 – Estrutura de SO 19 Arquitetura de um UNIX tradicional Programas Usuário Trap Nível Usuário Nível Kernel Bibliotecas Interface Chamada Sistema Subsistema Arquivo Buffer Cache Caractere Subsistema Controle Processo Comunicação entre processos Escalonamento Gerenciamento Memória Bloco Dispositivos Drivers Nível Kernel Nível Hardware Aula 2 – Estrutura de SO Controle de Hardware Hardware 20 Arquitetura kernel (cliente servidor) Servidor Memória Servidor Processos Servidor Arquivos Servidor Impressão Modo Usuário Servidor Rede mensagens Modo Kernel Kernel Hardware Aula 2 – Estrutura de SO 21 Arquitetura kernel do UNIX A.outCoff Elf File Mappings Device Mappings Anonymous Mappings NFS Exec Switch Virtual Memory Framework FFS S5FS Vnode/vfs Interface RFS Common Facilities Disk Driver Block Device Switch Scheduler Framework Tape Driver STREAMS Network Driver Aula 2 – Estrutura de SO Time-Sharing Processes System Processes Tty Driver 22 Arquitetura Windows NT Aplicação Posix Aplicação Win32 Subsistema Posix NTVDM DOS Win 16 Subsistema CRS Aplicação OS/2 Winlogon Subsistema OS/2 Subsistema Segurança Modo Usuário Modo Kernel Serviços Executivos Gerenciamento Gerenciamento E/S Objeto Dispositivo Drivers Proteção Referente Monitor Chamada Gerenciamento Procedimento Processo Local Microkernel Hardware Abstraction Layer (HAL) Gerenciamento Gerenciamento Memória Windows Virtual & GDI Dispositivo Drivers Hardware Aula 2 – Estrutura de SO 23 Arquitetura cliente servidor do Windows NT Aplicativo Win32 Aplicativo OS/2 Servidor Win32 Aplicativo POSIX Servidor OS/2 Servidor POSIX Kernel WIN NT O Kernel controla toda a troca de mensagens entre a aplicação e o respectivo servidor. Aula 2 – Estrutura de SO 24 Máquina virtual Uma máquina real pode abrigar internamente diferentes ambientes virtuais, cada um simulando uma máquina distinta, com memória, SO, recursos e processos próprios. Desta forma, cada usuário (ou aplicativo) parece possuir sua própria máquina Processos MV1 MV2 MV3 Processos Processos Processos Kernel1 Kernel2 Kernel Máquina Virtual Hardware Hardware Máquina Não-Virtual Máquina Virtual Aula 2 – Estrutura de SO Kernel3 25 Máquina virtual Java arquivos .class Programa Java arquivos .class da API Java Aplicação JAVA Máquina Virtual JAVA Carregador de Classes bytecodes Sistema Operacional Interpretador Java (*) Hardware Sistema Host (*) Dependente do Hardware Aula 2 – Estrutura de SO 26 Ambiente de desenvolvimento JAVA Prog1.java Prog2.java Compilador Java Prog1.class Ambiente de Compilação Prog2.class bytecodes Ambiente de Execução (plataforma Java) Carregador de Classes arquivos .class da API Java bytecodes Interpretador Java Sistema Host Aula 2 – Estrutura de SO 27 Tendências nos sistemas atuais • Arquitetura MicroKernel • Sistema MultiThread • Múltiplos Processadores Simétricos • Distribuído • Projeto Orientado a Objetos Aula 2 – Estrutura de SO 28 Tópicos a serem abordados Descrição de Processo e Controle Escalonamento Concorrência Gerenciamento de Memória Gerenciamento de E/S Gerenciamento de Arquivo Segurança Aula 2 – Estrutura de SO Rede 29 FIM Aula 2 – Estrutura de SO 30