Sistemas Operacionais
TV e WEB
RAFAEL TAVARES ANDRADE TOLEDO
Agenda
 Visão Geral
 Gerenciamento de Processos
 Gerenciamento de Memória
 Entrada e Saída
 Sistemas de Arquivos
 Va...
Visão Geral – Firefox OS
• O Firefox OS é um Sistema Operacional desenvolvido pela Mozilla,
baseado no motor de funcioname...
Arquitetura
GAIA
• O Gaia é a interface gráfica do Firefox OS.
• Tudo que você precisa saber para criar
aplicativos são tecnologias we...
GECKO
Gecko é o nome do motor de layout desenvolvido
pelo Projeto Mozilla.
A função do Gecko é ler o conteúdo da web,
como...
GONK
• Gonk é o nível mais baixo da
plataforma do sistema
operacional Firefox OS, composto por
um kernel Linux baseado no ...
Gerenciamento de Processos
• Firefox OS usa threads POSIX para implementar as threads de
aplicações, isso inclui a thread ...
Gerenciamento de Processos
• Alguns níveis possuem os mesmos "nice
values", isso acontece porque esses níveis
diferem da f...
Gerenciamento de Processos
• Dentro de um processo a thread principal herda o "nice value" do
processo, enquanto às thread...
Gerenciamento de Memória
Dois subsistemas são usados para gerenciar:
 Low memory killer (LMK - Finalizador de memória bai...
Low memory Killer - LMK
• O LMK é um subsistema do kernel do Android que encerra
automaticamente os processos para dar lug...
Low memory Killer - LMK
• O LMK oferece múltiplos níveis, cada um correspondendo a uma
certa quantidade de memória livre e...
Prioridade de Processos - LMK
• No Firefox OS os aplicativos são encerrados seguindo a política
de ordem de prioridade, qu...
Prioridade de Processos
3. Em seguida, são encerrados os aplicativos em segundo plano que são
perceptíveis pelo usuário (p...
Prioridade de Processos
• Existe algumas exceções para essas regras:
 O processo principal nunca é terminado pelo LMK, po...
Low memory notifications - LMN
 O LMK fornece um limite especial que quando ultrapassa pode enviar
notificações para o us...
Como LMK e LMN trabalham juntos
 Atualmente o limite de pouca memória é definido abaixo do
nível do LMK. Assim, as ações ...
Como LMK e as notificações de
pouca memória trabalham juntos
3. Se a condição persistir é renviado um evento memory-pressu...
Entrada e Saída
Componente Descrição
Kernel Linux Usa bibliotecas do Android (GPS, câmera, etc.) e outros
projetos de códi...
Sistema de Arquivos
• FAT32
• A tabela de alocação de arquivos (FAT) é uma tabela que guarda
informações sobre a localizaç...
Vantagens e Desvantagens
• Vantagens
 Sistema Operacional totalmente aberto
 Opção “não me ratrei”(funcionalidade do fir...
Vantagens e Desvantagens
• Desvantagens
 Hardware simples
 Poucas APIS de acesso para desenvolvedores
 Falta de aplicat...
Curiosidades SO para TV
• SO
 Android TV
 Tizen
 WebOS – LG
 Firefox OS
 Linux
• Streaming de mídias - TV
 Android –...
Obrigado !
Referências
 https://developer.mozilla.org/
 http://www.mozilla.org/en-US/firefoxos/
 https://wiki.mozilla.org/Gonk
 h...
Sistemas Operacionais - FFXOS
Sistemas Operacionais - FFXOS
Sistemas Operacionais - FFXOS
Próximos SlideShares
Carregando em…5
×

Sistemas Operacionais - FFXOS

347 visualizações

Publicada em

Apresentação da disciplina de Sistemas Operacionais da Universidade Tiradentes

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
347
No SlideShare
0
A partir de incorporações
0
Número de incorporações
107
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Interface Portável entre Sistemas Operacionais
    POSIX define a interface de programação de aplicações (API)
  • Muitos "processos filhos" são executados com oom_adj 2 enquanto estão em primeiro plano. Ao serem executados em segundo plano o valor de oom_adj ficam entre 3 e 6(inclusive).  O valor exato de oom_adj de um processo filho depende de vários de fatores: se está tocando uma música, se é o aplicativo de tela inicial, etc.
  • Muitos "processos filhos" são executados com oom_adj 2 enquanto estão em primeiro plano. Ao serem executados em segundo plano o valor de oom_adj ficam entre 3 e 6(inclusive).  O valor exato de oom_adj de um processo filho depende de vários de fatores: se está tocando uma música, se é o aplicativo de tela inicial, etc.
  • Esse parâmetro é utilizado quando continuamos com a condição de pouca memória e gostaríamos de liberar caches e utlizar outras formas "mais baratas" de minimizar o uso da memória, mas sabendo que abordagens mais pesadas como GC (Garbage Collector) provavelmente não terão sucesso
  • Muitos "processos filhos" são executados com oom_adj 2 enquanto estão em primeiro plano. Ao serem executados em segundo plano o valor de oom_adj ficam entre 3 e 6(inclusive).  O valor exato de oom_adj de um processo filho depende de vários de fatores: se está tocando uma música, se é o aplicativo de tela inicial, etc.
  • Sem uma estrutura de armazenamento de dados como o FAT32, nenhum procedimento de acesso a disco é possível.
    O qual é o sistema de arquivos usado pelo Firefox OS, precisando está no formato FAT32 o cartão SD do dispositivo, ao contrário não é reconhecido.
  • Sistemas Operacionais - FFXOS

    1. 1. Sistemas Operacionais TV e WEB RAFAEL TAVARES ANDRADE TOLEDO
    2. 2. Agenda  Visão Geral  Gerenciamento de Processos  Gerenciamento de Memória  Entrada e Saída  Sistemas de Arquivos  Vantagens e Desvantagens
    3. 3. Visão Geral – Firefox OS • O Firefox OS é um Sistema Operacional desenvolvido pela Mozilla, baseado no motor de funcionamento do navegador Firefox o Gecko. • Também conhecido como B2G (Boot to Gecko). Seu alicerce é constituído 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 gráfica do Firefox OS. • Tudo que você precisa saber para criar aplicativos são tecnologias web como JavaScript, HTML e CSS. • As APIs de acesso são definidas pela W3C DAP (DeviceAPis).
    6. 6. GECKO Gecko é o nome do motor de layout desenvolvido pelo Projeto Mozilla. A função do Gecko é ler o conteúdo da web, como HTML, CSS, XUL, JavaScript e renderiza-lo na tela do usuário.
    7. 7. GONK • Gonk é o nível 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 aplicações, isso inclui a thread principal de cada aplicação bem como as Web workers e helper threads. Valores "Nice" são usados para priorizar os processos e a execução das threads confiando no agendador padrão do kernel do Linux. Dependendo do status do processo nós atribuimos um diferente valor "Nice" do nível. Temos atualmente 7 níveis:
    9. 9. Gerenciamento de Processos • Alguns níveis possuem os mesmos "nice values", isso acontece porque esses níveis diferem da forma que são tratados pelo "out- of-memory killer". Todas as prioridades podem ser ajustadas em tempo de compilação via "Preferências". 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 são alterados sempre que acontece um grande evento como quando uma aplicação é enviada para rodar em background ou foreground, uma nova aplicação é iniciada, ou uma aplicação existente executa uma wake-lock da CPU. Toda vez que a prioridade de um processo é ajustada todas as prioridades de suas threads também são ajustadas em conformidade.
    11. 11. Gerenciamento de Memória Dois subsistemas são usados para gerenciar:  Low memory killer (LMK - Finalizador de memória baixa)  Low memory notifications ( LMN - Notificações de pouca memória)
    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 memória. Para escolher qual o processo deve ser encerrado primeiro para liberar memória, a cada processo é atribuido uma prioridade através dos arquivos /proc/<pid>/oom_adj ou /proc/<pid>/oom_score_adj. Um processos tem uma prioridade conhecida como prontuação 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 múltiplos níveis, cada um correspondendo a uma certa quantidade de memória livre e uma mínima de pontuação de ajuste. Sempre que a quantidade de memória livre no sistema cair abaixo de um certo nível, todos os processos com uma pontuação de ajuste maior do que o mínimo especificado para este nível são elegíveis para ser encerrado. O LMK irá começar a encerrar esses processos, os maiores em primeiro lugar, e continuará até que tenha liberado memória suficiente de acordo com o limite definido.
    14. 14. Prioridade de Processos - LMK • No Firefox OS os aplicativos são encerrados seguindo a política de ordem de prioridade, que é imposta dando a cada aplicação um nível de prioridade e associando uma pontuação de ajuste (OOM) a esses níveis. (os valores correntes são definidos em prefs): 1. Os primeiros aplicativos a serem encerrados serão os aplicativos em segundo plano, iniciando pelos menos utilizados recentemente. 2. O aplicativo homescreen é o próximo a ser encerrado.
    15. 15. Prioridade de Processos 3. Em seguida, são encerrados os aplicativos em segundo plano que são perceptíveis pelo usuário (por exemplo, um leitor de música reproduzindo áudio em segundo plano. 4. Se o teclado estiver em uso, será o próximo a ser encerrado. 5. Aplicações em primeiro plano serão as próximas a serem encerradas. 6. Finalmente, aplicações em primeiro plano que solicitaram um wakelock high-priority ou cpu serão as últimas a serem encerradas.
    16. 16. Prioridade de Processos • Existe algumas exceções para essas regras:  O processo principal nunca é terminado pelo LMK, pois se isso for feito todos os demais processos serão terminados e o sistema operacional seria reiniciado. O processo principal é executado com oom_adj 0.  Nós mantemos um processo que é utilizado para acelerar o início de novos aplicativos chamado preallocated process. Normalmente esse processo é mantido ativo pois consome pouca memória e permite uma maior velocidade ao iniciar um aplicativo. A única situação na qual esse processo pode ser terminado é se não existir memória suficiente para o processo principal manter-se ativo após os outros processos terem sido terminados.
    17. 17. Low memory notifications - LMN  O LMK fornece um limite especial que quando ultrapassa pode enviar notificações para o userspace informando que o sistema está sendo executado com pouca memória.  Quando for encontrada uma condição de pouca memória o primeiro evento memory-pressure enviado possuirá o parâmetro low-memory. Se após um período pré-definido (5s) persistir a condição de pouca memória, um outro evento memory-pressure será disparado, mas dessa vez com o parâmetro low-memory-ongoing.
    18. 18. Como LMK e LMN trabalham juntos  Atualmente o limite de pouca memória é definido abaixo do nível do LMK. Assim, as ações agregadas para o LMK e LMN quando um dispositivo possui pouca memória: 1. Terminar aplicativos em segundo plano em ordem dos menos usados recentemente. 2. Se não for liberada memória suficiente envia o evento memory-pressure para os aplicativos remanescentes.
    19. 19. Como LMK e as notificações de pouca memória trabalham juntos 3. Se a condição persistir é renviado um evento memory-pressure a cada 5 segundos, mas marcando-os como em execução para que os processos de GC/CC (Garbage Collector e Cycle Collector) não respondam a eles. 4. Terminar o aplicativo Tela Inicial. 5. Terminar aplicações em segundo plano perceptíveis 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 Saída Componente Descrição Kernel Linux Usa bibliotecas do Android (GPS, câmera, etc.) e outros projetos de código 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 reprodução de áudio e vídeo. Gecko se comunica com o servidor de mídia através 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 nível de serviço daemons que dão acesso ao hardware capacidades.
    21. 21. Sistema de Arquivos • FAT32 • A tabela de alocação de arquivos (FAT) é uma tabela que guarda informações sobre a localização de cada arquivo dentro da unidade física para que elas possam ser salvas, recuperadas, alteradas ou deletadas posteriormente. • Elas são armazenadas em blocos dispostos em diferentes posições 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  Opção “não me ratrei”(funcionalidade do firefox)  Baixo Custo  Poucos Aplicativos (Bom para desenvolvedores)  Linguagem de desenvolvimento (Padrões WEB)  Totalmente personalizável (Acesso ao código 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 (Não tem Whatsapp Oficial)
    24. 24. Curiosidades SO para TV • SO  Android TV  Tizen  WebOS – LG  Firefox OS  Linux • Streaming de mídias - TV  Android – Chrome Cast  Firefox OS – Matchstick  Amazon Fire TV  Roku  Apple TV
    25. 25. Obrigado !
    26. 26. Referências  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

    ×