Adriel: Prova AVI - SO FAZAG 2010.2
Contents
Questão 1
Um Sistema operacional é, de modo simplificado, um gerenciador de recursos. Por exemplo, ele é o responsável por gerenciar dispositivos E/S, gerenciar a memoria (tanto física como virtual), gerenciar os arquivos, além de outras funções vitais para o funcionamento do sistema.
Um exemplo de SO seria o Android da Google. Ele é baseado em Linux e permite aos desenvolvedores escreverem softwares na linguagem Java, controlando o dispositivo via bibliotecas desenvolvidas pela própria Google.
Mesmo sendo apenas suportado por certos dispositivos móveis ele possui todas as características de um SO. De certa forma ele possui certas limitações, por exemplo, apenas são suportados os seguintes formatos de áudio e vídeo: MPEG-4, H.264, MP3 e AAC. Mais em compensação é evoluído em certos pontos como: suporte a Touch Screen, GPS, acelerómetros, aceleradores gráficos 3D e Wi-Fi.
Segundo Branscombe ([2010?]), a versão 2.2 do Android é 5 vezes mais rápida rodando aplicativos e 3 vezes mais rápida para navegação (pelo fato de possuir a Engine JavaScript V8, a mesma utilizada no navegador Chrome). Além disso, a nova versão também oferece suporte a HTML5 e Flash.
Referências
WAP, Universo. Android – Conheça um pouco mais esta plataforma. Disponível em: <http://www.universowap.com.br/smartphones/android-conheca-um-pouco-mais-esta-plataforma/>. Acesso em: 01 set. 2010.
BRANSCOMBE, Mary. Android 2.2 features: more HTML5, fastest mobile browser. [2010?]. Disponível em: <http://www.techradar.com/news/phone-and-communications/mobile-phones/android-2-2-features-more-html5-fastest-mobile-browser-691051>. Acesso em: 1 set. 2010.
WIKIPÉDIA. Android. Disponível em: <http://pt.wikipedia.org/wiki/Android>. Acesso em: 1 set. 2010.
Questão 2
Mesmo sendo um sistema operacional para dispositivos móveis, o Android possui características muito interessantes quando falamos de gerenciamento de processos. Ele permite que vários aplicativos sejam executados ao mesmo tempo (multitarefa), cada um rodando seu próprio processo, também permite o compartilhamento de um mesmo processo entre diversos aplicativos e o uso de vários processos para um único aplicativo. O Android também permite que processos de determinados aplicativos continuem em execução, mesmo que não estejam sendo utilizados naquele momento, ele decide quando é melhor manter estes processos em execução caso haja a necessidade de utilizá-lo mais a frente (função bem parecida com as memórias cache).
Escolhas como esta, de manter ou não um processo em execução, são extremamente importantes quando falamos de dispositivos móveis que, na grande maioria das vezes possuem uma quantidade de memória limitada e quando usadas da forma errada podem ocasionar em diversos problemas. Para isso existe o LifeCycle, que consiste em regras que definem a importância de cada processo, determinando assim, aqueles processos que devem continuar em execução e aqueles que devem ser interrompidos. Para que essas medidas sejam tomadas o Android determina uma hierarquia, de 5 níveis, para cada processo. Sendo assim, os processos de menor importância são eliminados primeiros, em seguida os que estão um nível depois deles também são, e assim vai. Os 5 níveis de hierarquia são:
- Processo de primeiro plano (Foreground): São determinados processos que estão sendo utilizados pelo usuário naquele determinado momento, sendo o tipo mais importante na hierarquia.
- Processo visível: São processos que mesmo não estando em primeiro plano podem afetar o que o usuário vê na tela.
- Processo de serviço: Estes processos não estão diretamente relacionados ao que o usuário vê, mas sim a coisas que ele já iniciou previamente (por exemplo, um MP3 Player rodando em background).
- Processo de plano de fundo (Background): Estes processos geralmente podem ser finalizados a qualquer momento, sem que afete diretamente o usuário.
- Processo vazio: Estes processos são os que não possuem nenhum componente ativo, eles apenas continuam sendo executados para que sua próxima inicialização ocorra de forma mais rápida. Estes são os processos que mais são finalizados, pois, consomem demasiada memória mesmo não sendo necessários naquele momento.
Atualmente na versão 2.2 o Android não oferece, nativamente, aplicativos que permitam ao usuário gerenciar os processos, isso é algo que provavelmente mudará a partir da versão 3.0.
Ele carece das seguintes funcionalidades:
- O que pode ou não ser executado ao iniciar o sistema
- Aplicativo que permita ao usuário administrar os processos
Referências
BRAY, Tim. Multitasking the Android Way. Disponível em: <http://android-developers.blogspot.com/2010/04/multitasking-android-way.html>. Acesso em: 22 ago. 2010.
BURNETTE, Ed. How Android works: The big picture. Disponível em: <http://www.zdnet.com/blog/burnette/how-android-works-the-big-picture/515>. Acesso em: 22 ago. 2010.
Questão 3
No Android existem 2 formas para se administrar a memória virtual:
- 1 - Pelo terminal: Essa é a maneira "tradicional" de se alterar a memória swap no Linux. Primeiro realiza-se um calculo para saber quanto de memória o usuário deseja inserir, por exemplo, para adicionar 50MB basta multiplicar 50*1024, para converter em KBites e em seguida digitar o seguinte comando:
su - dd if=/dev/zero of=/sdcard/swap bs=1024 count=51200
Depois:
mkswap /sdcard/swap
E por último, para checar se deu tudo certo:
swapon /sdcard/swap free
- 2 - Atraves de aplicativos: Aplicativos como o Swapper 2 e DroidSwap permitem o gerenciamento da memória virtual por parte do usuário. Eles permitem, de forma simples e intuitiva, a criação de partições swap dentro dos cartões SD.
Referências
APPS, Android. DroidSwap: Configure memory Swap!. Disponível em: <http://dailyandroid.org/droidswap-configure-memory-swap.html>. Acesso em: 1 set. 2010.
ANDROLIB. DroidSwap (For Root-Users). Disponível em: <http://www.androlib.com/android.application.com-droidheaven-droidswap-qBFw.aspx>. Acesso em: 1 set. 2010.
ANDROLIB. Swapper 2 (for Root users). Disponível em: <http://www.androlib.com/android.application.lv-n3o-swapper2-EADD.aspx>. Acesso em: 1 set. 2010.
BEEJAN, Gulshan. Android: Adding swap space. Disponível em: <http://gulshan.beejan.com/index.php/2010/05/21/android-adding-swap-space/>. Acesso em: 1 set. 2010.
Comentários do Professor
- 02/09/2010
- Explique cada comando utilizado na questão 3. O que faz o dd? o su? O mkswap? O swapon? o free?
- Há (várias) referências que foram listadas na lista de referências, porém não foram citadas.
- A citação deve ser conforme ABNT.
- Você precisa referenciar algumas informações da sua questão. Por exemplo, quem você utilizou para construir a definição de SO?
- 16/08/2010
- É importante você colocar as referências no seu texto. Ou seja, de onde você retirou estas informações? Onde pesquisou? Veja exemplo de como fazer no quadro da página 47 (24 do PDF) de MENDONÇA, Gismália Marcelino. Manual de normalização para apresentação de trabalhos acadêmicos. Salvador: Unifacs, 2009. Disponível em <http://www.unifacs.br/upload/biblioteca/ManualdeNormalizacao.pdf>. Acesso em 16 de ago. de 2010.
- Você não precisa usar br no wiki, basta colocar uma linha em branco para fazer a quebra de linha.
- Em "[...] as características de um SO mais também [...]" há um erro de português.
- 24/08/2010
- E quanto a prioridade e segurança entre processos? Como funciona o Mobile Internet Security?
- Seria interessante você apresentar os 5 níveis de hierarquia dos processos do Android.