Вы находитесь на странице: 1из 5

Universidade de Caxias do Sul Disciplina: SIS0233 - Sistemas Operacionais I Professor(a): Daniel Luis Notari Alunos: Andr Lus Salvaggio

Reckziegel, Joo Toss Molon e Joel Fabiano Hansen

Android

Histria A plataforma Android o produto do Open Handset Alliance, um grupo de organizaes

colaborando para a construo de um telefone mvel melhor. O grupo, liderado pelo Google, inclui operadores de telefonia mvel, fabricantes de aparelhos portteis,fabricantes de componentes, provedores de plataformas e solues de software e empresas de marketing. A partir de um ponto de vista de desenvolvimento de software, o Android fica bem ao centro do mundo do software livre. O primeiro telefone porttil com capacidade para Android no mercado foi o dispositivo G1 fabricado pela HTC e fornecido pela T-Mobile. O dispositivo se tornou disponvel aps quase um ano de especulaes, quando as nicas ferramentas de desenvolvimento de software disponveis eram alguns releases do SDK em constante aprimoramento. Conforme a data de release do G1 se aproximava, a equipe do Android liberou o SDK V1.0 e os aplicativos comearam a aparecer para a nova plataforma. Para estimular a inovao, o Google patrocinou duas sries do "Android Developer Challenges," onde milhes de dlares foram envolvidos nas melhores participaes. Alguns meses depois do G1, o Android Market foi lanado, permitindo que os usurios navegassem e fizessem o download de aplicativos diretamente em seus telefones. Aps cerca de 18 meses, uma nova plataforma mvel entrava na arena pblica.

A Arquitetura do Android O Google geralmente se refere ao sistema operacional Android como uma pilha de softwares. Cada camada da pilha agrupa vrios programas que suportam funes especficas do sistema operacional. A base da pilha o kernel. O Google usou a verso 2.6 do Linux para construir o kernel do Android, o que inclui os programas de gerenciamento de memria, as configuraes de segurana, o software de gerenciamento de energia e vrios drivers de hardware. Drivers so programas que controlam dispositivos de hardware. Por exemplo, o HTC G1 tem uma cmera. O kernel do Android inclui um driver de cmera, que permite ao usurio enviar comando ao hardware da cmera. O prximo nvel de software inclui as bibliotecas do Android. Voc pode pensar em bibliotecas como um conjunto de instrues que dizem ao dispositivo como lidar com diferentes tipos de dados. Por exemplo, a biblioteca do framework de mdia suporta a reproduo e a gravao de vrios formatos de udio, vdeo e imagem. Outras bibliotecas incluem acelerao tridimensional (para dispositivos com acelermetros) e um biblioteca de navegadores Web. No mesmo nvel da camada de bibliotecas, a camada de tempo de execuo do Android inclui um conjunto de bibliotecas do ncleo Java - programadores de aplicaes Android construram suas aplicaes em linguagem de programao Java. Ele tambm inclui a Mquina Virtual Dalvik (DVM). Uma mquina virtual uma aplicao de software que se comporta como se fosse um dispositivo independente com seu prprio sistema operacional. Voc podem rodar uma mquina virtual em um computador que opera com um sistema operacional completamente diferente do sistema operacional da mquina fsica. Por exemplo: um computador Apple rodando Mac OS X pode ter uma mquina virtual rodando Windows Vista ou Ubuntu. O sistema operacional Android usa mquinas virtuais para rodar cada aplicao como seu prprio

processo. Isso importante por algumas razes. Primeiro, nenhuma aplicao dependente de outra. Segundo, se uma aplicao para, ela no afeta quaisquer outras aplicaes rodando no dispositivo. Terceiro, isso simplifica o gerenciamento de memria. A prxima camada o framework de aplicao. Isso inclui os programas que gerenciam as funes bsicas do telefone, como alocao de recursos, aplicaes de telefone, mudana entre processos ou programas e ficar de olho na localizao fsica do aparelho. Os desenvolvedores de aplicaes tm acesso total ao framework de aplicaes do Android. Isso possibilita que eles tirem vantagem das capacidades de processamento do Android e suportem recursos quando esto construindo uma aplicao Android. Pense no framework de aplicaes como um conjunto de ferramentas bsicas com o qual um desenvolvedor pode construir ferramentas muito mais complexas. No topo da pilha esto as aplicaes em si. onde voc encontra funes bsicas do dispositivo, como fazer chamadas telefnicas, acessar o navegador Web ou acessar sua lista de contatos. Se voc um usurio comum, esta a camada que voc mais usar. Voc faz isso com a interface de usurio. Apenas os programadores do Google, os desenvolvedores de aplicao e os fabricantes de hardware acessam outras camadas mais baixas da pilha.

Gerenciamento de Memria e Processos Como o Android baseado no kernel do Linux, segue os mesmos princpios para fazer o gerenciamento de memria. Quando uma aplicao est em execuo e acionada outra aplicao ou mesmo ativada a funo Home do Android, essa primeira aplicao no morta. Ela continua em memria, porm fica com status de ociosa. Uma vez estando como ociosa e no sendo mais acordada, a aplicao fica a critrio do prprio sistema operacional para ser encerrada. Porm esse tempo de espera pode ser maior do que ocorre em outros sistemas operacionais, fazendo com que haja a impresso que o Android realmente tenha esquecido tal programa na memoria. Com isso, foram surgindo ao longo das verses do sistema operacional, os chamados Task Killers. So aplicativos que rodam em background e ficam monitorando programas ociosos. Quando os detectam, tratam de mata-los, liberando assim mais memria para outras execues. O processo realizado pelos Task Killers, porm, no resolve o problema como um todo. O Android, assim como o Linux, usa a memoria liberada por um processo recm destrudo como memria cache, para otimizar seu prprio desempenho. Ou seja, no h um disperdcio de memria, e sim uma reutilizao inteligente da memria que j estava em uso anteriormente. Quando um processo novo precisa ser executado, e h pouca memoria livre para sua execuo, liberada uma parte dessa memria mantida como cache para que a mesma seja suficiente para conseguir realizar a execuo o aplicativo novo, e tambm para os aplicativos j em execuo, alm do prprio S.O. Ento, na verdade os Task Killers liberam uma quantia de memria que vai ser usada como cache, algo que naturalmente o S.O. j faria por conta. A partir disso comeouse a desenvolver Task Killers direcionados a gerenciar o uso de CPU pelos aplicativos em

execuo, e no mais prioritariamente o uso de memria.

Sistema de Arquivos O Android recentemente substituiu o sistema de arquivos usado em sua plataforma, passando a utilizar a partir da verso 2.3 o mesmo sistema de arquivos do Linux, o Ext4. Anterior verso 2.3 era usado um sistema de arquivos prprio criado pela Google para a plataforma Android. Esse sistema de arquivos do Android no comum, como os que so encontrados em sistemas operacionais desktop. Somente uma aplicao tem acesso aos dados por vez. Uma vez que certa aplicao est usando os dados as informaes sobre tal seo, todas as outras aplicaes ficam impedidas de acessar essas informaes. O mesmo ocorre quando uma aplicao quer acessar os dados de outra aplicao o a prpria aplicao secundria. Nesses casos utilizado um componente chamado de provedor de contedo. Uma sada para o compartilhamento de dados em aplicaes simultneas sua integrao atravs de arquivos gravados e lidos internamente no aparelho, ou mesmo em dispositivos de memoria removveis, como cartes de memria. Existe tambm, como componente nativo no Android, o SQLite (banco de dados SQL escrito na linguagem C), no qual as aplicaes podem armazenar as suas informaes em tabelas de um banco de dados, para que as outras aplicaes possam ter acesso simultneo. Outra possibilidade o uso dos recursos de rede para tambm manter as informaes visveis para as aplicaes concorrentes..

Escalonamento de processos Baseado em linux, o Android utiliza um algoritmo preemptivo, que divide o tempo da cpu em fatias, chamadas de quantum, onde os processos so alocados. Se o quantum do processo terminar e o processo no tiver concluido sua execuo ocorre a troca de contexto e um novo processo selecionado para utilizar a cpu. O escalonador trabalha com prioridades estaticas e dinamicas. Nas prioridades dinamicas o escalonador monitora os processos faz ajustes nas prioridades, visando equilibrar o uso da cpu, por exemplo se um processo esteve recentemente em execuo, ou executou por um tempo longo, esse processo rebece um prioridade mais baixa que outro processo que esta a mais tempo esperando pela cpu. E as prioridades estaticas so utilizadas exclusivamente por processos de tempo real, o escalonador no pode alterar essas prioridades, elas podem ser alteradas somente por um usuario com privilegios especiais. O escalonador executa os processos com prioridades dinamicas somente quando no houver mais processos de tempo real. No gerenciamento de processos aplicada a politica FIFO, para os processos de tempo real, Round-Robin para processos de usuarios. Tratamento de Deadlock

Assim como no Linux, no Android no feito tratamento de deadlocks. O sistema parte do princpio de que eles no viro a ocorrer.

Referncias http://www.ibm.com/developerworks/br/library/os-android-devel/ http://informatica.hsw.uol.com.br/google-phone.htm http://www.thiagoelias.org/blog/tag/gerenciamento-de-memoria-no-android/ http://www.thiagoelias.org/site/posts/ler/63 http://www.inf.ufrgs.br/~asc/livro/secao94.pdf http://lzanuz.sites.uol.com.br/escalonamento.htm

Вам также может понравиться