Professional Documents
Culture Documents
UFV-CRP
Smartphones
Telefone inteligente Aparelhos celulares que executam sistemas operacionais com funes completas e apresentam caractersticas de um desktop Qualquer pessoa pode desenvolver aplicaes que executam nos smartphones
Mercado de Smartphones
"Share of Smartphone sales by operating systems in Q2/2009(data does not include Palm WebOS, which was introduced in June, 2009). "Canalys: iPhone outsold all Windows Mobile phones in Q2 2009". AppleInsider. 21 August 2009. http://www.appleinsider.com/articles/09/08/21 /canalys_iphone_outsold_all_windows_mobile_ phones_in_q2_2009.html. Retrieved 21 September 2009.
"Google Android smacks down Windows Mobile in latest Gartner data". Press release. 19 May 2010. http://www.zdnet.com/blog/cellphones/google-android-smacks-downwindows-mobile-in-latest-gartner-data/3829. Retrieved 28 May 2010.
Symbian
Histria
EPOC (1996)
Sistema Operacional 32 bits, com suporte a touch screen Release 1: orientado a objetos Release 3: Psion srie 5 Release 5: Psion srie 7
Symbian
Histria
2000: Psion + lderes da indstria de telefonia mvel (Nokia, Ericsson, Motorola e Matsushita) criaram um empreendimento denominado Symbian
Desenvolvimento do SO Symbian Surgiu na verso 6, em 2001 (Symbian 6) Novas funcionalidades de smartphones Ncleo e servios do sist. operacional foram separados da interface com o usurio Melhorou desempenho, principalmente de funes de tempo real Adicionou conceitos de segurana
Verso 7: 2003
Verso 8: 2004
Symbian
Caractersticas
Projetado especificamente para smartphones Orientado a objetos Projeto de microncleo (microkernel) Utiliza a arquitetura cliente/servidor Possui caractersticas de um sistema operacional de desktop nfase em comunicao e multimdia
Symbian
Problemas no microncleo:
Custo de comunicao devido a comunicao entre os servidores, os quais esto no espao do usurio Desempenho das funes cai quando saem do espao do ncleo e passam para o espao do usurio Utilizao de 2 ou mais espaos de endereamento devido aos constantes chaveamentos entre espao do usurio e espao do ncleo
Symbian
Implementao de uma estrutura de nanoncleo Dentro do ncleo, separa as funes com implementao mais sofisticada, deixando no nanoncleo as funes mais bsicas O nanoncleo se torna o ncleo do sistema operacional
Symbian
Symbian
Nanoncleo:
Escalonamento e operaes de sincronizao Tratamento de interrupes e objetos de sincronizao como semforos e mutexes
Symbian
Ncleo
Implementao das funes de ncleo mais complicadas, combinadas com as operaes mais primitivas do nanoncleo
Threads em modo usurio Escalonamento de processos e mudanas de contexto Memria dinmica Sincronizao complexa Comunicao entre objetos e processos
Symbian
Processos e Threads: sistema multitarefa e multithread Suporte comum ao sistema de arquivos: compatvel com o Windows (FAT32) Rede: TCP/IP Gerenciamento de memria: mapeia a memria em pginas mesmo no usando o mapeamento de memria virtual
Nanoncleo suporta threads, fornecendo escalonamento de nanothreads, sincronizao (comunicao inter-threads) e servios de temporizao Precisam de uma pilha para armazenar as informaes de ambiente de tempo de execuo e so executadas em modo privilegiado, no podendo ser executadas em modo usurio Conjunto mnimo de dados para a execuo das nanothreads: localizao e tamanho da pilha
SO controla o restante: cdigo usado por cada thread e armazena o contexto das threads em suas pilhas de execuo
Suspenso: uma thread suspende a outra Espera por semforo rpido: espera pela sinalizao de um semforo rpido (semforo do nanoncleo) Espera DFC (delayed function call): espera a chamada atrasada de funo, utilizadas para implementao de drivers e representam chamadas ao ncleo que podem ser escalonadas para execuo pela camada do ncleo Dormindo: esto adormecidas esperando pela passagem de um perodo de tempo especfico Outro: estado genrico que pode ser utilizado pelos desenvolvedores para implementarem estados extras (expanso das funes do nanoncleo para novas plataformas)
Nanothreads:
Essencialmente um processo mais leve Possui um minicontexto que vai se alternando conforme as nanothreads vo passando pelo processador Caracterstica: controle rgido que o ncleo tem sobre elas e a mnima quantidade de informao que compe o contexto de cada uma
Threads: baseadas nas nanothreads O ncleo amplia o suporte que o nanoncleo oferece As threads definidas no modo usurio so implementadas por threads do Symbian Cada thread do Symbian contm uma nanothread e adiciona sua prpria pilha de execuo pilha usada pela nanothread O Symbiam adiciona sete novos estados em que as threads podem estar, focadas em condies bloqueantes especiais que podem ocorrer (suspenso por semforos normais, variveis mutex e variveis condicionais)
Processos
So threads agrupadas sob uma nica estrutura de controle de bloco de processos com um nico espao de memria Pode haver uma ou vrias threads de execuo sob um bloco de controle de processos O escalonamento de um processo implementado pelo escalonamento de uma thread e da inicializao do bloco de controle de processo adequado Forma especializadas de thread executada no espao do usurio, as quais foram implementadas visando diminuir a sobrecarga de se ficar verificando se uma thread que foi bloqueada j est pronta ou no Diferena principal para as threads-padro est em no perder tempo verificando se j foram desbloqueadas
Objetos ativos
Comunicao
Abstrao usada para ocultar o gerenciamento dos dados e do mtodo de transporte Comunicao entre clientes e servidores, threads e dispositivos e entre as threads Forma de comunicao tambm entre os dispositivos
Abstrao importante: soquetes que trabalham sobre TCP/IP podem ser adaptados para trabalhar em um ambiente Bluetooth alterando os parmetros no tipo do soquete usado
Sem memria virtual com paginao sob demanda Dois tipos de memria:
RAM (cdigo do SO quando inicia) e memria flash (memria operacional e armazenamento permanente)
Contm:
Ausncia de MV significa que as pginas no podem ser trocadas na memria e enviadas para armazenamento externo As pginas so substitudas, porm as que saem so descartadas ao invs de serem enviadas para disco... Isso significa que apenas as pginas de cdigo podem ser substitudas umas vez que apenas elas esto na memria flash
Gerenciamento do tamanho da aplicao: cdigo e dados. Tendncia de se utilizar POO pode ser um problema Gerenciamento da heap: uso cuidadoso. Os usurios so forados a recuperar e reutilizar esse espao o mximo possvel Execuo local: memria flash mapeada no espao de endereamento virtual e os programas podem ser executados diretamente dela sem serem copiadas para a RAM Carregar DLLs: escolha de quando carregar as DLLs: todas inicialmente ou durante a execuo Transferncia do gerenciamento de memria para o hardware: MMU
Sistema de 32 bits: enderea at 4GB Utiliza endereos virtuais que podem ser mapeados em endereos fsicos Divide a memria em pginas virtuais e quadros fsicos, normalmente de 4 KB
Tabela de pgina com mais de 1 milho de entradas... impossvel! Soluo: tabela de pgina em dois nveis
1o. Nvel: diretrio de pgina mantido na memria principal (12 bits) 2o. Nvel: coleo de tabelas de pginas, com 8 bits indicando a pgina Palavra na pgina, deslocamento (12 bits)
Modelo em movimento: projetado para as primeiras arquiteturas ARM Modelo mltiplo: utilizada a partir da verso 6 da arquitetura ARM Modelo direto: sem MMU no utilizado em smartphones Modelo emulador: dar suporte ao emulador do Symbian no Windows
Drivers de dispositivos
Driver de dispositivo lgico (LDD logical device driver): interface com as camadas altas de software Driver de dispositivo fsico (PDD physical device driver): interage diretamente com o hardware
Pode haver um LDD para dispositivos da mesma classe e PDDs diferentes para cada dispositivo
Extenses de ncleo
Drivers de dispositivos carregados pelo Symbian na inicializao Normalmente no so acompanhadas de PDDs Executam operaes essenciais
DMA
Suporte a vrias configuraes de hardware o que impede de assumir uma configurao nica de DMA
Mdia removvel
Precisa de controlador, driver, estrutura de barramento e talvez se comunicar com a CPU atravs de DMA Como o SO detecta a insero e remoo e como tratar a ausncia do dispositivo?
Todos os dispositivos devem ser inseridos e removidos Todas as mdias removveis podem ser retiradas enquanto esto sendo utilizadas Cada mdia pode reportar suas capacidades Cartes incompatveis devem ser rejeitados Cada carto precisa de energia
Caractersticas:
Controladores de software gerenciam cada carto suportado Soquete para comunicao entre os controladores de software e o dispositivo
Android
Sistema operacional para dispositivos mveis, incluindo um middleware e aplicaes padres e uma verso modificada do kernel do Linux
Android - Camadas
Links interessantes
http://cs736android.pbworks.com/FrontPage Cdigo fonte do Android
http://www.netmite.com/android/mydroid/