Sistemas Operacionais - Aula 3 - Estrutura SO [Compatibility Mode]
Transcrição
Sistemas Operacionais - Aula 3 - Estrutura SO [Compatibility Mode]
Sistemas Operacionais Aula 3 Estrutura de SO Aula 3 – Estrutura de SO 1 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 3 – Estrutura de SO 2 Introdução Sistema computacional Aplicativos Utilitários Núcleo do Sistema Operacional Hardware Aula 3 – 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 3 – Estrutura de SO 4 System Calls (2) System calls System Call Aplicação Biblioteca Aula 3 – Estrutura de SO Núcleo do Sistema Operacional Hardware 5 System Calls (3) Chamada a uma rotina do sistema Aula 3 – 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 3 – 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. Interrupção e Exceção (2) Mecanismo de Interrupção e Exceção Aula 3 – 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 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 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 + 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 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 3 – 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 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 Arquitetura Modular e, posteriormente, em Camadas. Arquitetura Monolítica (2) Arquitetura monolítica aplicação aplicação Modo usuário Modo kernel System call Hardware Aula 3 – Estrutura de SO 17 Arquitetura do MS-DOS Vários sistemas comerciais não têm uma estrutura definida, e o MSMS-DOS é um deles. No MSMS-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 MSMS-DOS Drivers de Dispositivo da BIOS (*) O excesso de liberdade torna o SO vulnerável. 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, projetandoprojetando-as concêntricas Executivo Supervisor Usuário Arquitetura do OpenVMS • Atualmente a maioria adota 2 camadas (kernel – privilegiado e usuário – não privilegiado) – UNIX e Win2000 Arquitetura de um UNIX tradicional Programas Usuário Trap Nível Usuário Nível Kernel Bibliotecas Interface Chamada Sistema Subsistema Arquivo Buffer Cache Subsistema Controle Processo Comunicação entre processos Escalonamento Gerenciamento Memória Caractere Bloco Dispositivos Drivers Nível Kernel Controle de Hardware Nível Hardware Hardware Arquitetura µkernel (cliente servidor) Servidor Memória Servidor Processos Servidor Arquivos Servidor Impressão Modo Usuário Modo Kernel µKernel Hardware Servidor Rede mensagens Arquitetura µkernel do UNIX A.outCoff Elf File Mappings Device Mappings Anonymous Mappings NFS Exec Switch FFS S5FS RFS Virtual Memory Framework Vnode/vfs Interface Common Facilities Disk Driver Block Device Switch Scheduler Framework Tape Driver STREAMS Network Driver Tty Driver Time-Sharing TimeProcesses System Processes 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) Hardware Gerenciamento Gerenciamento Memória Windows Virtual & GDI Dispositivo Drivers 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. 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 Kernel3 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 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 bytecodes Interpretador Java Sistema Host arquivos .class da API Java Tendências nos sistemas atuais • Arquitetura MicroKernel • Sistema MultiThread • Múltiplos Processadores Simétricos • Distribuído • Projeto Orientado a Objetos 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 Rede
Documentos relacionados
Estruturas do SO
Porque usar APIs ao invés de fazer a chamada ao SO? Portabilidade: programa pode ser compilado em qualquer sistema que suporte API Chamadas ao SO podem ser mais detalhadas e difíceis de
Leia mais