Filipe Nogueira Tavares
Bruno de Oliveira Petry
Guilherme Alarcão
Renato Carauta Ribeiro
Dennis Oliveira Crenasco
Victor Setúbal Cardoso
Integrantes:
SISTEMA OPERACIONAL
Introdução
Introdução
A crescente demanda de tecnologia no mundo atual vem tornando cada vez mais
necessário o desenvolvimento de novas arquiteturas, e pode-se dizer que o Sistema
Operacional Android é responsável por essa grande massa, que cresce a cada dia, em
busca dos dispositivos móveis.
Usuários comuns, assim como o mercado coorporativo, estão se beneficiando com as
diversas praticidades impostas pelo sistema em questão. A interação com os dispositivos
acabou ficando mais rápida, simples e segura.
Esse sistema móvel, torna possível que as aplicações, e consequentemente as pessoas,
estejam conectadas e online diariamente.
A interface de fácil utilização e com diversos recurso é resultado da execução
dessas diversas rotinas concorrentemente em função de eventos assíncronos.
Histórico
Histórico
4.0 - "Ice Cream Sandwich"
Histórico
2005 a Google adquiriu a Android Inc.
2007, Google anunciou Android como uma plataforma e a criação da Open Handset
Alliance (OHA).
2008, Open souce e Lançamento do primeiro aparelho.
Atualmente, 75% do mercado de smartphones.
500 milhões de aparelhos
+600 dispositivos diferentes usam o sistema.
Milhão de novos usuários todos os dias.
Histórico
1.5 - "Cupcake" - Introduziu a correção automática nos textos e também os famosos
widgets.;
1.6 - "Donut" - Trouxe a busca online partir da página principal;
2.0 - "Éclair" - Uso de múltiplas contas do Google;
2.1 - "Éclair" Busca por voz;
2.2 - "Froyo"- Transformar o dispositivo em um ponto de acesso via wi-fi usando a rede
3G e introdução do Flash no navegador;
2.3 - "Gingerbread"- trouxe pela primeira vez o suporte a voz sobre IP;
3.0 - "Honeycomb" - Primeiro a operar em telas maiores e gerenciamento de aplicativos
abertos;
4.0 - "Ice Cream Sandwich" - Reformulou toda a interface da plataforma, novidade foi a
criação de pastas na tela principal do aparelho e agora é possível;
4.1 / 4.2 - "Jelly Bean" Melhora na funcionalidade e desempenho da interface
Características Gerais
Características Comuns
É da Google;
Gratuito;
Seu código é aberto;
Não está preso a um hardware específico;
O seu Kernel é Linux. Uma versão personalizada voltada para dispositivos
móveis;
Seus aplicativos são desenvolvidos em Java;
Possui uma quantidade imensa de aplicativos disponíveis, tanto gratuitos
como pagos;
Características Específicas
Handset layouts: a plataforma é adaptada tanto para dispositivos VGA
maiores, gráficos 2D, bibliotecas gráficas 3D baseadas em OpenGL ES
especificação 2.0 e os layouts mais tradicionais de smartphones.
Armazenamento: é utilizado SQLite para armazenamento de dados.
Mensagens: tanto SMS como MMS são formas disponíveis de envio de
mensagens.
Navegador: o navegador disponível no sistema é baseado no framework de
Código aberto conhecido como WebKit.
Características Específicas
Máquina virtual Dalvik: aplicações escritas em Java são compiladas em
bvtecodes Dalvik e executadas usando a Máquina Virtual Dalvik , que é uma
máquina virtual especializada desenvolvida para uso em dispositivos móveis,
o que permite que programas sejam distribuídos em formato binário
(bytecode) e possam ser executados em qualquer dispositivo Android,
independentemente do processador utilizado. Apesar das aplicações Android
serem escritas na linguagem Java, ela não é uma máquina virtual Java, já que
não executa bytecode JVM.
Características Específicas
Multimídia: o sistema irá suportar formatos de áudio e vídeo como: MPEG-4,
H.264, MP3, e AAC.
Suporte Adicional de Hardware: o Android é totalmente capaz de fazer uso
de câmeras de vídeo, tela sensível ao toque, GPS, acelerômetros, e aceleração
de gráficos 3D.
Ambiente de desenvolvimento (SDK): inclui um emulador, ferramentas para
debugging, memória e análise de performance. O Eclipse IDE (atualmente 3.4
ou 3.5) poderá ser utilizado através do plugin Android Develpment Tools
(ADT).
Características Específicas
Multimídia: o sistema irá suportar formatos de áudio e vídeo como: MPEG-4,
H.264, MP3, e AAC.
Suporte Adicional de Hardware: o Android é totalmente capaz de fazer uso
de câmeras de vídeo, tela sensível ao toque, GPS, acelerômetros, e aceleração
de gráficos 3D.
Ambiente de desenvolvimento (SDK): inclui um emulador, ferramentas para
debugging, memória e análise de performance. O Eclipse IDE (atualmente 3.4
ou 3.5) poderá ser utilizado através do plugin Android Develpment Tools
(ADT).
Estrutura do sistema
Estrutura do sistema
Android é um sistema operacional baseado no kernel do Linux.
Podemos dizer que o Android é uma máquina virtual Java rodando sobre o kernel do
Linux, dando suporte para o desenvolvimento de aplicações Java através de um
conjunto de bibliotecas e serviços.
Sua arquitetura possui basicamente 5 camadas, como visto na Figura a seguir.
Estrutura do sistema
Processos e Threads
Processos
A camada mais baixa da arquitetura, Kernel Linux, é a responsável por gerenciar os
processos e threads, além da memória, arquivos e pastas, redes, drivers dos
dispositivos e energia.
No sistema Android, todos os componentes de uma aplicação são executados em um
mesmo processo e thread. Quando a memória fica sobrecarregada ou quando outro
processo faz requisição de memória, por ter maior nível de importância, o processo
em execução é parado e o processo que tem maior importância de acordo com o
usuário é carregado.
Existem cinco níveis de importância:
1. Foreground Process
2. Processo visível
3. Processo de serviço
4. Serviços em Background
5. Processos vazios
Threads
UI Thread (Thread principal "main")
Trabalho intensivo na UI Thread trava a aplicação
Multithread
Ciclo de vida
Gerência de Processo
Gerência de Processo
Android usa-se o binder, um mecanismo usado para a comunicação entre processos. Toda
comunicação entre processos passa pelo binder ( uma classe do Java).
Escalonamento de CPU:
O Android usa uma criação de filas com os componentes:
processos interativos
processos batch
processos tempo real.
• escalonador do sistema Android é baseado em time-sharing, e é do tipo preemptivo.
Deadlock:
No Android não é feito tratamento de Deadlock. O sistema parte do princípio de que eles não
virão a ocorrer.
Gerência de memória
Gerência de memória
Como já foi dito anteriormente o Android é um sistema operacional baseado em
kernel Linux e utiliza o gerenciamento de memória baseado em tal.
Todas as operações básicas do sistema operacional em níveis mais baixos, como o I/O,
gerenciamento de memória, e assim por diante, são tratados pelo kernel do Linux
Para o gerenciamento de memória é usada a técnica de memória virtual. Houve duas
motivações principais:
1. Permitir o compartilhamento seguro e eficiente da memória entre os vários
programas
1. Remover os transtornos de programação de uma quantidade pequena e limitada na
memória principal
Sistema de Arquivos
Sistema de Arquivos
O sistema operacional gerencia os arquivos para facilitar o acesso dos
usuários ao seu conteúdo. A parte do S.O que é responsável por essa gerencia
é o sistemas de arquivos.
Principais diretórios do android são: o “data”, que armazena os dados das
aplicações, e o “system”, com as bibliotecas (system/lib), serviços (system/bin
e system/xbin) e aplicações Java (system/app).
Sistema de Arquivos
O Android implementou uma biblioteca chamada Bionic para usar como
biblioteca do sistema. Contem os diretórios:
/ – diretório raiz (Android e Linux)
/Cache – armazenamento de dados para execuções rápidas (Android)
/Data – Dados (Android) O diretório /Data contém dados do usuário armazenados
em uma partição separada de MTD
/Default.prop - (Android) definições de propriedade-padrão e valores
restaurados a partir dos arquivos em cada reinicialização.
/Dev – arquivos de dispositivos (Linux e Android)
Sistema de Arquivos
/Etc – arquivos de configuração (Linux e Android)
/Init – inicialização (Android)
/Lib - Bibliotecas essenciais partilhadas (Linux e Android)
/Lost+found - arquivos recuperados (Linux e Android)
/Media - mídias removíveis (Linux e Android)
/Proc – kernel e arquivos de processo (Linux e Android)
/Root - Diretório home para o super usuário (Linux e Android)
/Sbin – arquivos binários de administração (Linux e Android)
/Sdcard – Cartão SD (Android)
/System – Sistema (Android)
/Tmp - arquivos temporários (Linux e Android)
Gerência de Entrada e Saída
Gerência de Entrada e Saída
É implementado através do device drivers. Sempre que um novo dispositivo é
acrescentado no sistema, o drive deve ser acoplado ao núcleo.
O sistema Android trabalha com duas formas de entrada e saída:
uma orientada a blocos relacionados a dispositivos com alta transferência (cartões de
memoria), quando uma operação de leitura é realizada um bloco é transferido para a
memória e posteriormente processado
E outra orientada a caracteres que são relacionados a dispositivos mais lentos,
controlados pelo sistema operacional.
Referências
ABNT. Manual de normas da ABNT. Disponível em: http://www.abnt.org.br/
Celeiro Android. Processos e Threads. Disponível em:
http://celeiroandroid.blogspot.com.br/2011/04/processes-e-threads.html
Wikipédia. Android. Disponível em: http://pt.wikipedia.org/wiki/Android
Midiacom.uff.br. Sistema Operacional Android. Disponível em:
http://www.midiacom.uff.br/~natalia/2012-1-sisop/tgrupo1.pdf
Sergioprado.org. Android. Disponível em:
http://sergioprado.org/introducao-ao-funcionamento-interno-do-android/
Bibliografia Consultada
MACHADO, F.de.B; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed - Rio de
Janeiro: LTC, 2007.
LECHETA, R.R. Google Android: Aprenda a criar aplicações para dispositivos moveis com
o Android SDK. 3.ed – São Paulo-SP: Novatec,2013

Sistema Operacional Android

  • 1.
    Filipe Nogueira Tavares Brunode Oliveira Petry Guilherme Alarcão Renato Carauta Ribeiro Dennis Oliveira Crenasco Victor Setúbal Cardoso Integrantes: SISTEMA OPERACIONAL
  • 2.
  • 3.
    Introdução A crescente demandade tecnologia no mundo atual vem tornando cada vez mais necessário o desenvolvimento de novas arquiteturas, e pode-se dizer que o Sistema Operacional Android é responsável por essa grande massa, que cresce a cada dia, em busca dos dispositivos móveis. Usuários comuns, assim como o mercado coorporativo, estão se beneficiando com as diversas praticidades impostas pelo sistema em questão. A interação com os dispositivos acabou ficando mais rápida, simples e segura. Esse sistema móvel, torna possível que as aplicações, e consequentemente as pessoas, estejam conectadas e online diariamente. A interface de fácil utilização e com diversos recurso é resultado da execução dessas diversas rotinas concorrentemente em função de eventos assíncronos.
  • 4.
  • 5.
    Histórico 4.0 - "IceCream Sandwich"
  • 6.
    Histórico 2005 a Googleadquiriu a Android Inc. 2007, Google anunciou Android como uma plataforma e a criação da Open Handset Alliance (OHA). 2008, Open souce e Lançamento do primeiro aparelho. Atualmente, 75% do mercado de smartphones. 500 milhões de aparelhos +600 dispositivos diferentes usam o sistema. Milhão de novos usuários todos os dias.
  • 7.
    Histórico 1.5 - "Cupcake"- Introduziu a correção automática nos textos e também os famosos widgets.; 1.6 - "Donut" - Trouxe a busca online partir da página principal; 2.0 - "Éclair" - Uso de múltiplas contas do Google; 2.1 - "Éclair" Busca por voz; 2.2 - "Froyo"- Transformar o dispositivo em um ponto de acesso via wi-fi usando a rede 3G e introdução do Flash no navegador; 2.3 - "Gingerbread"- trouxe pela primeira vez o suporte a voz sobre IP; 3.0 - "Honeycomb" - Primeiro a operar em telas maiores e gerenciamento de aplicativos abertos; 4.0 - "Ice Cream Sandwich" - Reformulou toda a interface da plataforma, novidade foi a criação de pastas na tela principal do aparelho e agora é possível; 4.1 / 4.2 - "Jelly Bean" Melhora na funcionalidade e desempenho da interface
  • 8.
  • 9.
    Características Comuns É daGoogle; Gratuito; Seu código é aberto; Não está preso a um hardware específico; O seu Kernel é Linux. Uma versão personalizada voltada para dispositivos móveis; Seus aplicativos são desenvolvidos em Java; Possui uma quantidade imensa de aplicativos disponíveis, tanto gratuitos como pagos;
  • 10.
    Características Específicas Handset layouts:a plataforma é adaptada tanto para dispositivos VGA maiores, gráficos 2D, bibliotecas gráficas 3D baseadas em OpenGL ES especificação 2.0 e os layouts mais tradicionais de smartphones. Armazenamento: é utilizado SQLite para armazenamento de dados. Mensagens: tanto SMS como MMS são formas disponíveis de envio de mensagens. Navegador: o navegador disponível no sistema é baseado no framework de Código aberto conhecido como WebKit.
  • 11.
    Características Específicas Máquina virtualDalvik: aplicações escritas em Java são compiladas em bvtecodes Dalvik e executadas usando a Máquina Virtual Dalvik , que é uma máquina virtual especializada desenvolvida para uso em dispositivos móveis, o que permite que programas sejam distribuídos em formato binário (bytecode) e possam ser executados em qualquer dispositivo Android, independentemente do processador utilizado. Apesar das aplicações Android serem escritas na linguagem Java, ela não é uma máquina virtual Java, já que não executa bytecode JVM.
  • 12.
    Características Específicas Multimídia: osistema irá suportar formatos de áudio e vídeo como: MPEG-4, H.264, MP3, e AAC. Suporte Adicional de Hardware: o Android é totalmente capaz de fazer uso de câmeras de vídeo, tela sensível ao toque, GPS, acelerômetros, e aceleração de gráficos 3D. Ambiente de desenvolvimento (SDK): inclui um emulador, ferramentas para debugging, memória e análise de performance. O Eclipse IDE (atualmente 3.4 ou 3.5) poderá ser utilizado através do plugin Android Develpment Tools (ADT).
  • 13.
    Características Específicas Multimídia: osistema irá suportar formatos de áudio e vídeo como: MPEG-4, H.264, MP3, e AAC. Suporte Adicional de Hardware: o Android é totalmente capaz de fazer uso de câmeras de vídeo, tela sensível ao toque, GPS, acelerômetros, e aceleração de gráficos 3D. Ambiente de desenvolvimento (SDK): inclui um emulador, ferramentas para debugging, memória e análise de performance. O Eclipse IDE (atualmente 3.4 ou 3.5) poderá ser utilizado através do plugin Android Develpment Tools (ADT).
  • 14.
  • 15.
    Estrutura do sistema Androidé um sistema operacional baseado no kernel do Linux. Podemos dizer que o Android é uma máquina virtual Java rodando sobre o kernel do Linux, dando suporte para o desenvolvimento de aplicações Java através de um conjunto de bibliotecas e serviços. Sua arquitetura possui basicamente 5 camadas, como visto na Figura a seguir.
  • 16.
  • 17.
  • 18.
    Processos A camada maisbaixa da arquitetura, Kernel Linux, é a responsável por gerenciar os processos e threads, além da memória, arquivos e pastas, redes, drivers dos dispositivos e energia. No sistema Android, todos os componentes de uma aplicação são executados em um mesmo processo e thread. Quando a memória fica sobrecarregada ou quando outro processo faz requisição de memória, por ter maior nível de importância, o processo em execução é parado e o processo que tem maior importância de acordo com o usuário é carregado. Existem cinco níveis de importância: 1. Foreground Process 2. Processo visível 3. Processo de serviço 4. Serviços em Background 5. Processos vazios
  • 19.
    Threads UI Thread (Threadprincipal "main") Trabalho intensivo na UI Thread trava a aplicação Multithread Ciclo de vida
  • 20.
  • 21.
    Gerência de Processo Androidusa-se o binder, um mecanismo usado para a comunicação entre processos. Toda comunicação entre processos passa pelo binder ( uma classe do Java). Escalonamento de CPU: O Android usa uma criação de filas com os componentes: processos interativos processos batch processos tempo real. • escalonador do sistema Android é baseado em time-sharing, e é do tipo preemptivo. Deadlock: No Android não é feito tratamento de Deadlock. O sistema parte do princípio de que eles não virão a ocorrer.
  • 22.
  • 23.
    Gerência de memória Comojá foi dito anteriormente o Android é um sistema operacional baseado em kernel Linux e utiliza o gerenciamento de memória baseado em tal. Todas as operações básicas do sistema operacional em níveis mais baixos, como o I/O, gerenciamento de memória, e assim por diante, são tratados pelo kernel do Linux Para o gerenciamento de memória é usada a técnica de memória virtual. Houve duas motivações principais: 1. Permitir o compartilhamento seguro e eficiente da memória entre os vários programas 1. Remover os transtornos de programação de uma quantidade pequena e limitada na memória principal
  • 24.
  • 25.
    Sistema de Arquivos Osistema operacional gerencia os arquivos para facilitar o acesso dos usuários ao seu conteúdo. A parte do S.O que é responsável por essa gerencia é o sistemas de arquivos. Principais diretórios do android são: o “data”, que armazena os dados das aplicações, e o “system”, com as bibliotecas (system/lib), serviços (system/bin e system/xbin) e aplicações Java (system/app).
  • 26.
    Sistema de Arquivos OAndroid implementou uma biblioteca chamada Bionic para usar como biblioteca do sistema. Contem os diretórios: / – diretório raiz (Android e Linux) /Cache – armazenamento de dados para execuções rápidas (Android) /Data – Dados (Android) O diretório /Data contém dados do usuário armazenados em uma partição separada de MTD /Default.prop - (Android) definições de propriedade-padrão e valores restaurados a partir dos arquivos em cada reinicialização. /Dev – arquivos de dispositivos (Linux e Android)
  • 27.
    Sistema de Arquivos /Etc– arquivos de configuração (Linux e Android) /Init – inicialização (Android) /Lib - Bibliotecas essenciais partilhadas (Linux e Android) /Lost+found - arquivos recuperados (Linux e Android) /Media - mídias removíveis (Linux e Android) /Proc – kernel e arquivos de processo (Linux e Android) /Root - Diretório home para o super usuário (Linux e Android) /Sbin – arquivos binários de administração (Linux e Android) /Sdcard – Cartão SD (Android) /System – Sistema (Android) /Tmp - arquivos temporários (Linux e Android)
  • 28.
  • 29.
    Gerência de Entradae Saída É implementado através do device drivers. Sempre que um novo dispositivo é acrescentado no sistema, o drive deve ser acoplado ao núcleo. O sistema Android trabalha com duas formas de entrada e saída: uma orientada a blocos relacionados a dispositivos com alta transferência (cartões de memoria), quando uma operação de leitura é realizada um bloco é transferido para a memória e posteriormente processado E outra orientada a caracteres que são relacionados a dispositivos mais lentos, controlados pelo sistema operacional.
  • 30.
    Referências ABNT. Manual denormas da ABNT. Disponível em: http://www.abnt.org.br/ Celeiro Android. Processos e Threads. Disponível em: http://celeiroandroid.blogspot.com.br/2011/04/processes-e-threads.html Wikipédia. Android. Disponível em: http://pt.wikipedia.org/wiki/Android Midiacom.uff.br. Sistema Operacional Android. Disponível em: http://www.midiacom.uff.br/~natalia/2012-1-sisop/tgrupo1.pdf Sergioprado.org. Android. Disponível em: http://sergioprado.org/introducao-ao-funcionamento-interno-do-android/ Bibliografia Consultada MACHADO, F.de.B; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed - Rio de Janeiro: LTC, 2007. LECHETA, R.R. Google Android: Aprenda a criar aplicações para dispositivos moveis com o Android SDK. 3.ed – São Paulo-SP: Novatec,2013