1 / 30

Sistemas Operacionais

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. Introdução.

Télécharger la présentation

Sistemas Operacionais

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas Operacionais

  2. Sumário • System Calls • Interrupções e exceções • Tratamento de interrupções • Múltiplasinterrupções • Estruturas de controle • Arquitetura de um SO • Arquiteturamonolítica • Arquiteturaemcamadas • Máquina virtual • Arquitetura microkernel • Tendências

  3. Introdução • Sistema computacional

  4. 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

  5. System Calls (2) • System calls

  6. System Calls (3) • Chamada a uma rotina do sistema

  7. 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

  8. 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.

  9. Interrupção e Exceção (2) • Mecanismo de Interrupção e Exceção

  10. 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 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 Interrupção e Exceção (3) Fluxo de Proces- samento de uma Interrupção

  11. Programa do usuário Interrupção Rotina X Interrupção Rotina Y Múltiplas interrupções(1) Modelo seqüencial • 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

  12. Programa do usuário Interrupção Rotina X Interrupção Rotina Y - + Múltiplas interrupções(2) Modelo cascata • 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

  13. imagem do processo Tabelas de Memória Processo 1 Memória Processo 1 Tabelas de E / S Processo 2 Dispositivos Arquivos Processo 3 Tabelas de Arquivos Processo n Processos Tabela de Processos imagem do processo Processo n Estruturas de controle

  14. 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

  15. Arquitetura de um SO Usuário (*) Residente Residente kernel Sistema Monolítico Sistema Modular (camadas) Cliente / Servidor (*) “Só por prazer” – Linus Torvalds x Tanenbaum

  16. 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.

  17. Arquitetura Monolítica (2) • Arquitetura monolítica

  18. Programa aplicativo Programa SO residente Drivers de Dispositivo do MS-DOS Drivers de Dispositivo da BIOS 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. (*) O excesso de liberdade torna o SO vulnerável.

  19. kernel Executivo Supervisor Usuário 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) • MULTICS e OpenVMS foram os seguintes, projetando-as concêntricas • Atualmente a maioria adota 2 camadas (kernel – privilegiado e usuário – não privilegiado) – UNIX e Win2000 Arquitetura do OpenVMS

  20. Programas Usuário Trap Bibliotecas Nível Usuário Nível Kernel Interface Chamada Sistema Subsistema Arquivo Comunicação entre processos Subsistema Controle Processo Escalonamento Buffer Cache Gerenciamento Memória Dispositivos Drivers Bloco Caractere Controle de Hardware Nível Kernel Nível Hardware Hardware Arquitetura de um UNIX tradicional

  21. Servidor Memória Servidor Processos Servidor Arquivos Servidor Rede Servidor Impressão mensagens Modo Usuário Modo Kernel mKernel Hardware Arquitetura kernel (cliente servidor)

  22. Coff A.out Elf NFS Exec Switch FFS File Mappings S5FS Device Mappings RFS Vnode/vfs Interface Virtual Memory Framework Common Facilities Scheduler Framework Block Device Switch Disk Driver Time-Sharing Processes STREAMS Tape Driver System Processes Network Driver Tty Driver Arquitetura kernel do UNIX Anonymous Mappings

  23. NTVDM Aplicação Posix Aplicação Win32 Aplicação OS/2 Winlogon DOS Win 16 Subsistema Posix Subsistema CRS Subsistema OS/2 Subsistema Segurança Modo Usuário Modo Kernel Serviços Executivos Gerenciamento E/S Gerenciamento Objeto Proteção Referente Monitor Gerenciamento Processo Chamada Procedimento Local Gerenciamento Memória Virtual Gerenciamento Windows & GDI Dispositivo Drivers Dispositivo Drivers Microkernel Hardware Abstraction Layer (HAL) Hardware Arquitetura Windows NT

  24. Aplicativo Win32 Aplicativo OS/2 Aplicativo POSIX Servidor Win32 Servidor OS/2 Servidor POSIX Kernel WIN NT Arquitetura cliente servidor do Windows NT O Kernel controla toda a troca de mensagens entre a aplicação e o respectivo servidor.

  25. MV2 MV3 MV1 Processos Processos Processos Processos    Kernel1 Kernel2 Kernel3  Kernel Máquina Virtual Hardware Hardware Máquina Não-Virtual Máquina Virtual Máquina virtual Uma máquina real pode abrigar internamente diferentesambientes 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

  26. arquivos .class da API Java Aplicação JAVA arquivos .class Programa Java Máquina Virtual JAVA Carregador de Classes Sistema Operacional bytecodes Interpretador Java Hardware (*) Sistema Host Máquina virtual Java (*) Dependente do Hardware

  27. Prog1.java Prog2.java Compilador Java Ambiente de Compilação Prog1.class Prog2.class arquivos .class da API Java bytecodes Carregador de Classes Ambiente de Execução (plataforma Java) bytecodes Interpretador Java Sistema Host Ambiente de desenvolvimento JAVA

  28. Tendências nos sistemas atuais • Arquitetura MicroKernel • Sistema MultiThread • Múltiplos Processadores Simétricos • Distribuído • Projeto Orientado a Objetos

  29. Descrição de Processo e Controle Escalonamento Concorrência Gerenciamento de Memória Gerenciamento de E/S Gerenciamento de Arquivo Rede Segurança Tópicos a serem abordados

  30. FIM Sistemas Operacionais – Jorge Luiz de Castro e Silva

More Related