Sistemas Operacionais - FFXOS

29
Sistemas Operacionais TV e WEB RAFAEL TAVARES ANDRADE TOLEDO

Transcript of Sistemas Operacionais - FFXOS

  1. 1. Sistemas Operacionais TV e WEB RAFAEL TAVARES ANDRADE TOLEDO
  2. 2. Agenda Viso Geral Gerenciamento de Processos Gerenciamento de Memria Entrada e Sada Sistemas de Arquivos Vantagens e Desvantagens
  3. 3. Viso Geral Firefox OS O Firefox OS um Sistema Operacional desenvolvido pela Mozilla, baseado no motor de funcionamento do navegador Firefox o Gecko. Tambm conhecido como B2G (Boot to Gecko). Seu alicerce constitudo com HTML5 e Web APIs. A base do Sistema o Android Open Source que usa o Kernel do Linux mais o Gecko. Basicamente um browser como sistema operacional.
  4. 4. Arquitetura
  5. 5. GAIA O Gaia a interface grfica do Firefox OS. Tudo que voc precisa saber para criar aplicativos so tecnologias web como JavaScript, HTML e CSS. As APIs de acesso so definidas pela W3C DAP (DeviceAPis).
  6. 6. GECKO Gecko o nome do motor de layout desenvolvido pelo Projeto Mozilla. A funo do Gecko ler o contedo da web, como HTML, CSS, XUL, JavaScript e renderiza-lo na tela do usurio.
  7. 7. GONK Gonk o nvel mais baixo da plataforma do sistema operacional Firefox OS, composto por um kernel Linux baseado no (AOSP). uma camada de portabilidade do dispositivo: um adaptador entre o hardware e o Gecko.
  8. 8. Gerenciamento de Processos Firefox OS usa threads POSIX para implementar as threads de aplicaes, isso inclui a thread principal de cada aplicao bem como as Web workers e helper threads. Valores "Nice" so usados para priorizar os processos e a execuo das threads confiando no agendador padro do kernel do Linux. Dependendo do status do processo ns atribuimos um diferente valor "Nice" do nvel. Temos atualmente 7 nveis:
  9. 9. Gerenciamento de Processos Alguns nveis possuem os mesmos "nice values", isso acontece porque esses nveis diferem da forma que so tratados pelo "out- of-memory killer". Todas as prioridades podem ser ajustadas em tempo de compilao via "Preferncias". Os valores relevantes podem ser encontrados no arquivo b2g/app/b2g.js
  10. 10. Gerenciamento de Processos Dentro de um processo a thread principal herda o "nice value" do processo, enquanto s threads do web worker atribuido um "nice value" um ponto maior que a thread principal que roda na menor prioridade. Isso feito para evitar que processos que utilizem muita CPU degradem a performance da thread principal. Prioridades de processos so alterados sempre que acontece um grande evento como quando uma aplicao enviada para rodar em background ou foreground, uma nova aplicao iniciada, ou uma aplicao existente executa uma wake-lock da CPU. Toda vez que a prioridade de um processo ajustada todas as prioridades de suas threads tambm so ajustadas em conformidade.
  11. 11. Gerenciamento de Memria Dois subsistemas so usados para gerenciar: Low memory killer (LMK - Finalizador de memria baixa) Low memory notifications ( LMN - Notificaes de pouca memria)
  12. 12. Low memory Killer - LMK O LMK um subsistema do kernel do Android que encerra automaticamente os processos para dar lugar a pedidos de memria. Para escolher qual o processo deve ser encerrado primeiro para liberar memria, a cada processo atribuido uma prioridade atravs dos arquivos /proc//oom_adj ou /proc//oom_score_adj. Um processos tem uma prioridade conhecida como prontuao de ajuste, ou oom_adj. Valores menores de oom_adj corresponde a processos de maior prioridade.
  13. 13. Low memory Killer - LMK O LMK oferece mltiplos nveis, cada um correspondendo a uma certa quantidade de memria livre e uma mnima de pontuao de ajuste. Sempre que a quantidade de memria livre no sistema cair abaixo de um certo nvel, todos os processos com uma pontuao de ajuste maior do que o mnimo especificado para este nvel so elegveis para ser encerrado. O LMK ir comear a encerrar esses processos, os maiores em primeiro lugar, e continuar at que tenha liberado memria suficiente de acordo com o limite definido.
  14. 14. Prioridade de Processos - LMK No Firefox OS os aplicativos so encerrados seguindo a poltica de ordem de prioridade, que imposta dando a cada aplicao um nvel de prioridade e associando uma pontuao de ajuste (OOM) a esses nveis. (os valores correntes so definidos em prefs): 1. Os primeiros aplicativos a serem encerrados sero os aplicativos em segundo plano, iniciando pelos menos utilizados recentemente. 2. O aplicativo homescreen o prximo a ser encerrado.
  15. 15. Prioridade de Processos 3. Em seguida, so encerrados os aplicativos em segundo plano que so perceptveis pelo usurio (por exemplo, um leitor de msica reproduzindo udio em segundo plano. 4. Se o teclado estiver em uso, ser o prximo a ser encerrado. 5. Aplicaes em primeiro plano sero as prximas a serem encerradas. 6. Finalmente, aplicaes em primeiro plano que solicitaram um wakelock high-priority ou cpu sero as ltimas a serem encerradas.
  16. 16. Prioridade de Processos Existe algumas excees para essas regras: O processo principal nunca terminado pelo LMK, pois se isso for feito todos os demais processos sero terminados e o sistema operacional seria reiniciado. O processo principal executado com oom_adj 0. Ns mantemos um processo que utilizado para acelerar o incio de novos aplicativos chamado preallocated process. Normalmente esse processo mantido ativo pois consome pouca memria e permite uma maior velocidade ao iniciar um aplicativo. A nica situao na qual esse processo pode ser terminado se no existir memria suficiente para o processo principal manter-se ativo aps os outros processos terem sido terminados.
  17. 17. Low memory notifications - LMN O LMK fornece um limite especial que quando ultrapassa pode enviar notificaes para o userspace informando que o sistema est sendo executado com pouca memria. Quando for encontrada uma condio de pouca memria o primeiro evento memory-pressure enviado possuir o parmetro low-memory. Se aps um perodo pr-definido (5s) persistir a condio de pouca memria, um outro evento memory-pressure ser disparado, mas dessa vez com o parmetro low-memory-ongoing.
  18. 18. Como LMK e LMN trabalham juntos Atualmente o limite de pouca memria definido abaixo do nvel do LMK. Assim, as aes agregadas para o LMK e LMN quando um dispositivo possui pouca memria: 1. Terminar aplicativos em segundo plano em ordem dos menos usados recentemente. 2. Se no for liberada memria suficiente envia o evento memory-pressure para os aplicativos remanescentes.
  19. 19. Como LMK e as notificaes de pouca memria trabalham juntos 3. Se a condio persistir renviado um evento memory-pressure a cada 5 segundos, mas marcando-os como em execuo para que os processos de GC/CC (Garbage Collector e Cycle Collector) no respondam a eles. 4. Terminar o aplicativo Tela Inicial. 5. Terminar aplicaes em segundo plano perceptveis e de alta prioridade. 6. Terminar o aplicativo teclado se estiver sendo executado. 7. Terminar aplicativos em primeiro plano. 8. Terminar aplicativos em primeiro plano de alta prioridade. 9. Terminar os processos pr-alocados.
  20. 20. Entrada e Sada Componente Descrio Kernel Linux Usa bibliotecas do Android (GPS, cmera, etc.) e outros projetos de cdigo aberto (Linux, libusb, bluez, e assim por diante). Radio Interface Layer (RIL) Interage com o hardware modem (telefonia) no telefone. Consiste em duas componentes: rild daemon fala com o firmware do modem rilProxy proxies mensagens entre rild eo processo B2G Media process Controles de reproduo de udio e vdeo. Gecko se comunica com o servidor de mdia atravs de um mecanismo RPC Android. Network process Daemon de rede que interage diretamente com interfaces de rede (Wi-fi) no hardware. Bluethoof e outros Bluetooth e outros de nvel de servio daemons que do acesso ao hardware capacidades.
  21. 21. Sistema de Arquivos FAT32 A tabela de alocao de arquivos (FAT) uma tabela que guarda informaes sobre a localizao de cada arquivo dentro da unidade fsica para que elas possam ser salvas, recuperadas, alteradas ou deletadas posteriormente. Elas so armazenadas em blocos dispostos em diferentes posies do disco, justificando a necessidade de uma tabela que aponte para cada um destes blocos.
  22. 22. Vantagens e Desvantagens Vantagens Sistema Operacional totalmente aberto Opo no me ratrei(funcionalidade do firefox) Baixo Custo Poucos Aplicativos (Bom para desenvolvedores) Linguagem de desenvolvimento (Padres WEB) Totalmente personalizvel (Acesso ao cdigo de gerenciamento do Sistema) Um simples site definido como favorito considerado um aplicativo
  23. 23. Vantagens e Desvantagens Desvantagens Hardware simples Poucas APIS de acesso para desenvolvedores Falta de aplicativos (No tem Whatsapp Oficial)
  24. 24. Curiosidades SO para TV SO Android TV Tizen WebOS LG Firefox OS Linux Streaming de mdias - TV Android Chrome Cast Firefox OS Matchstick Amazon Fire TV Roku Apple TV
  25. 25. Obrigado !
  26. 26. Referncias https://developer.mozilla.org/ http://www.mozilla.org/en-US/firefoxos/ https://wiki.mozilla.org/Gonk https://developer.mozilla.org/en- US/docs/Mozilla/Firefox_OS/Platform/Gonk https://developer.mozilla.org/en- US/docs/Mozilla/Boot_to_Gecko/Building_Boot_to_Gecko https://developer.mozilla.org/enUS/docs/Mozilla/Firefox_OS/Customizati on_with_the_.userconfig_file https://developer.mozilla.org/en- US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS https://developer.mozilla.org/en- US/docs/Mozilla/Firefox_OS/Debugging