Estruturas do Sistema Operacional

Description

pt 2
Jonathan Castro
Mind Map by Jonathan Castro, updated more than 1 year ago
Jonathan Castro
Created by Jonathan Castro over 1 year ago
0
0

Resource summary

Estruturas do Sistema Operacional
  1. Abordagens
    1. Estrutura Monolítica
      1. Todas as funcionalidades do kernel num binário que roda num endereçamento único
        1. Difíceis de implementar e estender
          1. Muito pouco overhead no interfaceamento das chamadas de sistema
            1. Comunicação dentro do kernel é rápida
              1. Usado pelo Windows
              2. Enfoque em Camadas
                1. Dividido em uma série de camadas (níveis)
                  1. A camada mais baixa é o hardware
                    1. A camada mais alta é a interface com o usuário
                    2. Camadas selecionadas de modo que cada uma use operações e serviços apenas de camadas de nível inferior
                      1. Simplicidade de construção e depuração
                        1. Cada camada é implementada somente com as operações fornecidas por camadas de nível mais baixo
                        2. Pouco usada na prática
                          1. Dificuldade em definir o que cada camada faz
                            1. Baixa eficiência se comparado com a estrutura monolítica
                            2. Sucedidas em redes de computadores e em aplicações web
                            3. Microkernels
                              1. “reação” ao modelo monolítico
                                1. Move-se o máximo do kernel para o espaço do “usuário”
                                  1. Kernel mantem apenas os componentes essenciais
                                  2. São isolados
                                    1. Benefícios
                                      1. É possível substituir um módulo inteiro sem afetar significativamente o resto do sistema
                                        1. Fácil de portar o SO para novas arquiteturas
                                          1. Mais confiável
                                            1. Menos código está executando no modo kernel
                                            2. Mais seguro
                                            3. Detrimentos
                                              1. Overhead de desempenho da comunicação entre espaço do usuário e espaço do kernel
                                            4. Módulos
                                              1. Kernel tem um conjunto de componentes nucleares e vincula serviços adicionais por meio de módulos
                                                1. Em tempo de inicialização e em tempo de execução
                                                2. Tenta unir os benefícios das diversas outras abordagens
                                                  1. Interfaces bem definidas e protegidas
                                                    1. Apenas funções nucleares (da abordagem em microkernel) e o conhecimento de como carregar e comunicar com outros módulos
                                                      1. É eficiente (da abordagem monolítica)
                                                        1. Os módulos vão sendo carregados e “anexados” ao resto do kernel ativo e a comunicação é mais direta
                                                    2. Híbridos
                                                      1. Sistema usa mais de uma abordagem de estruturação
                                                        1. Quase todo sistema moderno é híbrido
                                                          1. macOS e iOS
                                                            1. Camadas
                                                              1. Experiência do usuário
                                                                1. Interface gráfica ou de toque
                                                                2. Frameworks de aplicação
                                                                  1. Suporte as aplicações (fornece APIs básicas)
                                                                  2. Frameworks Core
                                                                    1. Suporte a gráficos e multimidia (OpenGL e Quicktime)
                                                                    2. Ambiente de Kernel
                                                                      1. Conhecido como Darwin (inclui o microkernel Mach e o kernel BSD UNIX)
                                                                  3. Android
                                                                    1. Multiplataforma e opensource
                                                                      1. Similar ao iOS no uso de camadas
                                                                        1. Linguagem de programação padrão do Android é o Java
                                                                          1. Geralmente a API padrão do Java é trocada pela API Android
                                                                          2. Aplicativos Java são compilados para bytecode (.class)
                                                                            1. Traduzidos para um executável .dex,
                                                                              1. Executado pela Android RunTime (ART),
                                                                                1. Compilação ahead-of-time (AOT)
                                                                            2. Interage com uma camada de software que abstrai detalhes do hardware
                                                                        2. Geração do SO
                                                                          1. Projetados para executar em qualquer uma de uma classe de máquinas
                                                                            1. Precisa ser configurado para cada ponto de computador específico
                                                                            2. Programa SYSGEN obtém informações referentes à configuração específica do sistema de hardware no momento da instalação
                                                                            3. Inicialização (Boot) do Sistema
                                                                              1. SO precisa estar disponível ao hardware para que o hardware possa iniciá-lo
                                                                                1. O carregador de bootstrap, localiza o kernel, carrega-o na memória e o inicia
                                                                                2. Quando o sistema é inicializado, a execução começa em um local fixo da memória
                                                                                  1. Firmware usado para manter o código inicial de boot (BIOS)
                                                                                Show full summary Hide full summary

                                                                                Similar