Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

SISTEMA OPERACIONAL
ANDROID
Enildo Gabriel Matos
Luciano Batista Monteiro
John Michael A.Gomes
Gabriel Saturnino Coelho Rodrigues
Rafael Marques Martins
Geanderson Washinton da Silva
O Android é um sistema operacional projetado para smartphones e tablets, porém pode ser encontrado em outros dispositivos hoje em dia como câmeras digitais, TVs e até vídeo games. Tem como base a arquitetura do Linux e seguindo a característica do mesmo, permite que o código fonte seja modificado, mas o Google exige que a versão modificada “rode” todos os aplicativos disponíveis na Google Play 
Esta Foto de Autor Desconhecido está licenciado em CC BY
A Android Inc. foi comprada pelo Google em 2005 e o lançamento do Android ficou para 2007 junto com a OPEN HANDSET ALLIANCE que é um consórcio de empresas de telecomunicação, hardware e software. O primeiro aparelho utilizando Android só foi comercializado em outubro de 2008. Fabricado pela HTC, o modelo TMobile G1 foi o primeiro aparelho vendido com sistema operacional Android no mundo. 
Esta Foto de Autor Desconhecido está licenciado em CC BY-SA
A ideia inicial do Google era por o nome de robôs em cada versão. A primeira versão era chamada de Astro, em referência ao Astro Boy e a segunda recebeu o nome de Bender em referência ao Futurama. Porém, como seria necessário o pagamento de direitos aos detentores, isso se tornaria caro, então surgiu a ideia dos doces, dando uma pitada divertida a cada lançamento e mantendo assim a ordem alfabética. 
Esta Foto de Autor Desconhecido está licenciado em CC BY-ND
O escalonamento de processos no Android é baseado em time-sharing, ou seja, cada processo possui o seu quantum ou fatia de tempo para executar e a cada término de tempo para um processo ocorre a troca de contexto. O Android divide seus processos em classe de prioridade dinâmica e estática a saber: 
Prioridade Dinâmica – Neste tipo de prioridade o escalonador realiza ajustes nas prioridades visando o uso equilibrado do processador. Por exemplo, o nível de prioridade dos processos podem ser atribuídos pelo tempo de sua execução, logo se uma execução permanece por longo período, esta receberá nível de prioridade mais baixa do que um processo que permanece na fila de uso do processador. 
Prioridade Estática – Nessa classe o escalonador não faz alterações como no modelo anterior, aqui as prioridades são utilizadas por processos de tempo real. Quando não há mais processos em execução de tempo real, o escalonador abre espaço para processos de prioridade dinâmica. 
O escalonador distingue processos de tempo real utilizando a política FIFO, de processos de usuários que são escalonados utilizando a política Round Robin. Cabe enfatizar que todos os processos são carregados e mantidos na memória e escalonados de acordo com o nível de prioridade. 
O Android mantém uma espécie de processo “pai” denominado zygote, que pode ser comparado ao sentido literal da palavra em seu significado biológico, qual seja o de ser formador de um organismo. De forma semelhante o zygote é o processo principal do Android e que carrega consigo todas as bibliotecas do núcleo, assim ele é também responsável por inicializar a máquina virtual Dalvik e todos os processos e serviços Java. 
O tempo de vida dos processos é administrado pelo Android seguindo alguns critérios, dentre os quais a quantidade de memória global disponível e a importância de determinados processos para o sistema. Nessa discussão acerca do ciclo de vida dos processos vimos que o Android dá prioridade aos processos dentre os quais os usuários estão interagindo, escolhendo os demais para descartar caso ocorra falta de memória e de outros recursos. A organização dos processos é feita como na figura da pilha de execução, onde quem ocupa o topo dessa pilha é exatamente o processo que está interagindo com o usuário. 
Esta Foto de Autor Desconhecido está licenciado em CC BY-NC-ND
Ao lado pode-se observar na figura o ciclo de vida dos processos compostos por sete fases ou estados: 
Durante todo estudo da disciplina de Sistemas Operacionais, vimos que os So’s mais modernos a todo tempo procura prover meios de acompanhar e dar suporte as tarefas mais complexas que foram sendo executadas com o passar do tempo, dois fatores que sem dúvidas se destacam se referem a otimização de uso do processador e memória. Nesse ponto com o Android não é diferente, conforme abordado anteriormente, ele foi desenvolvido sobre o kernel do Linux e algumas adaptações foram feitas de modo a atender as necessidades dos dispositivos móveis. Com relação a essas inovações gostaríamos de evidenciar três delas no gerenciamento dos processos: 
Esta Foto de Autor Desconhecido está licenciado em CC BY-SA-NC
Binder – Alguns serviços necessitam de comunicação entre processos e o mecanismo responsável por essa função é o Binder, um módulo implementado no kernel que provê a comunicação entre processos de aplicativos e processos de sistema, através dele é possível que um processo possa chamar uma rotina em outro processo. 
Ashmem – A novidade trazida por esse mecanismo permite que dois processos se comuniquem compartilhando um mesmo espaço de memória. 
Wakelocks – Para controlar a escassez de energia, este recurso mantém o dispositivo em modo de baixo consumo quando não há processos em execução no sistema. Este módulo é flexível, permitindo ser desabilitado por uma aplicação, caso um processo precise ser executado em plano de fundo sem interrupção. 
Gestão de memória 
 
Assim como na gestão de processos, o Android implementa algumas modificações na gestão de memória, em relação ao kernel do Linux. O uso de memória virtual pelos SO’s de forma genérica, tem como principal finalidade suprir as aplicações em casos de falta da memória física. O Android segue essa política, sobretudo pelo fato dele ser um sistema embarcado pensado para dispositivos móveis que tem bem menos memória física do que um computador, além disso o uso de memória virtual é herdado do kernel do Linux que é o gerenciador de memória em baixo nível do Android. Abaixo destacamos alguns recursos para gerência de memória: 
OOM (out of memory) – Mecanismo utilizado na ocorrência de falta de memória, ele termina os processos quando a memória física apresenta nível abaixo do mínimo aceitável. 
PMEM – Utilizado na administração de grandes blocos contíguos de memória física compartilhados entre os drivers do kernel e espaço dos usuários. 
O garbage collector é um mecanismo que traduzido, tem função de coletor de lixo. Ele tem ação de varrer a memória a fim de eliminar lixos e objetos desnecessários desocupando-a. Em versões menores que a Froyo ele congelava a aplicação. Sua leitura era executada em todo heap de memória o que causava um tempo de parada nas aplicações que chegava a ser maior que 100 ms. Essa tentativa do sistema em manter espaço de memória livre gera uma contrapartida que é um gasto maior de processamento e consequentemente de energia. Em versões superiores a Gingerbread o garbage collector passa a funcionar como um processo concorrente, agora ele faz a leitura parcial do heap de memória retirando os objetos não mais utilizados, essa mudança de desempenho ocasionou um ganho de tempo de parada que diminuiu para menos que 5 ms. O incômodo de interrupção que era constantemente percebido em mini paradas em aplicações de jogos e vídeo por exemplo, foi corrigida a partir da otimização do garbage collector que possibilitou que as aplicações “rodem” mais rápido. 
Conclusão 
Após ter um conhecimento básico sobre a plataforma Android, observa-se que em muitos aspectos o Android se difere do Kernel do Linux, apesar de ter nele suas raízes. Conforme apontado no desenvolvimento da pesquisa essas alterações visam atender as peculiaridades de um sistema que foi desenvolvido para atuar em dispositivos móveis. 
A maioria das fontes pesquisadas neste trabalho são de autoria de desenvolvedores de software que tem voltado seus olhares sobre a plataformaAndroid, sobretudo por se tratar de um sistema de código livre e que vive momento de crescimento exponencial, com foco na inovação e melhoramento de diversas aplicações e serviços.

Mais conteúdos dessa disciplina