Sistemas Operacionais - Android
Por: Juliana2017 • 21/2/2018 • 6.006 Palavras (25 Páginas) • 656 Visualizações
...
A modularidade é obtida em graus diversos, por diferentes abordagens de modularização. Código baseado em modularidade permite aos desenvolvedores reutilizar e reparar as partes do aplicativo, mas ferramentas de desenvolvimento são necessários para executar essas funções de manutenção (por exemplo, a aplicação pode precisar ser recompilada). Objeto baseado em modularidade prevê a aplicação como uma coleção de separar os arquivos executáveis que podem ser mantido de forma independente e substituído sem reimplantar o aplicativo inteiro (por exemplo, arquivos "dll" da Microsoft, arquivos "shared object" da Sun/UNIX). Alguns recursos objeto de mensagens permite aplicações baseadas em objeto serem distribuídos em vários computadores (por exemplo, Microsoft COM +). Service Oriented Architectures uso padrão de comunicação específica e protocolos de comunicação entre os módulos.
Tem como vantagem a modularidade, pode-se programar uma camada sem exigir modificações nas outras. Simplificada validação, depuração e modificação, também é altamente eficiente devido a intercomunicação direta entre os seus componentes.
Arquitetura de Camadas
À medida que os sistemas operacionais tornaram-se mais complexos e maiores, projetos puramente monolíticos tornaram-se inviáveis e, então a arquitetura em camada, ou modular, tornou-se uma boa opção, agrupando "camadas" de componentes, ou seja, conjunto de procedimentos, que realizam tarefas similares.
Cada camada comunica-se somente com as suas camadas imediatamente inferior e superior. Uma camada inferior sempre presta um serviço à sua camada superior, sendo que a camada superior não sabe como o serviço é feito, apenas o solicita. A implementação de uma camada pode ser modificada sem exigir modificação em outra camada, pois possuem componentes autocontidos.
Em uma abordagem em camadas, a solicitação de um serviço pode precisar passar por muitas camadas antes de ser atendida, assim o desempenho se degrada em comparação ao de núcleos monolíticos.
A exemplo temos o Windows NT, o THE e o MULTICS.
Máquina Virtual
Uma máquina virtual é uma cópia via software que busca simular uma máquina real. Uma máquina virtual (Virtual Machine – VM) pode ser definida como “uma duplicata eficiente e isolada de uma máquina real”. A IBM define uma máquina virtual como uma cópia isolada de um sistema físico, e esta cópia está totalmente protegida, a JC ( Primeira empresa a criar máquinas virtuais atuais ) events de Computação ja promoveu eventos em relação as máquinas virtuais.
Ao invés de ser uma máquina real, isto é, um computador real, feito de hardware e executando um sistema operacional específico, uma máquina virtual é um computador fictício criado por um programa de simulação. Sua memória, processador e outros recursos são virtualizados. A virtualização é a interposição do software (máquina virtual) em várias camadas do sistema. É uma forma de dividir os recursos de um computador em múltiplos ambientes de execução. lancia delta integrale
Arquitetura Microkernel
Micronúcleo, ou microkernel, é uma arquitetura de núcleo (kernel) de um sistema operativo cujas funcionalidades são quase todas executadas fora do núcleo, em oposição a um núcleo monolítico. Os procesos se comunicam com um núcleo mínimo, usando o mínimo possível o "espaço do sistema" (kernel space). Neste local os aplicativos tem acesso a todas as instruções e a todo o hardware e deixando o máximo de recursos rodando no "espaço do usuário" (user-space) em que o software tem algumas restrições, não podendo acessar algumas hardwares, nem tem acesso a todas as instruções).
Arquitetura de S.O Android
Na realidade, o Android é mais do que um sistema operacional, ele é um software stack (um grupo de programas que trabalham em conjunto para produzir um resultado ou alcançar um objetivo em comum) composto por cinco camadas, cuja base é uma versão modificada do kernel Linux 2.6, que provê vários serviços essenciais, como segurança, rede e gerenciamento de memória e processos, além de uma camada de abstração de hardware para as outras camadas de software.
A arquitetura do sistema operacional Android é uma pilha de programas agrupados em camadas. Podemos dividir essas camadas em níveis zero, um, dois e três, conforme figura abaixo.
[pic 2]
Nível zero
No nível zero, temos a base da pilha, ou seja, o Kernel (Linux Kernel), para desenvolvê-la foi utilizado à versão 2.6 do Sistema Operacional Linux. Nele encontraremos os programas de gerenciamento de memória, configurações de segurança e vários drivers de hardware.
Nível um
No nível um, temos as camadas de bibliotecas (Libraries) e tempo de execução (Android RunTime).
A camada de biblioteca é um conjunto de instruções que dizem ao dispositivo como lidar com diferentes tipos de dados, incluindo um conjunto de biblioteca C / C + + usadas por diversos componentes do sistema e são expostas a desenvolvedores através da estrutura de aplicativo Android.
A camada de tempo de execução inclui um conjunto de bibliotecas do núcleo Java (Core Libraries). Para desenvolver aplicações para o Android, os programadores utiliza a linguagem de programação Java, nesta camada encontraremos a Máquina Virtual Dalvik (DVM).
O Android usa a máquinas virtuais Dalvik para rodar cada aplicação com seu próprio processo. Isso é importante por algumas razões: nenhuma aplicação é dependente de outra e se uma aplicação parar, ela não afeta quaisquer outras aplicações rodando no dispositivo e isso simplifica o gerenciamento de memória, pois a máquina virtual está baseada em registradores e desenvolvida de forma otimizada para requerer pouca memória e permitir que múltiplas instâncias executem ao mesmo tempo.
Ao contrário do que se afirma, que a Dalvik é uma máquina virtual Java, isso não é verdadeiro, pois ela executa seu próprio tipo de bytecodes.
Nível dois
No nível dois, temos a camada de framework de aplicação (Application Framework), programas que gerenciam as aplicações básicas do telefone. Os desenvolvedores têm acesso total
...