310 likes | 465 Views
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação. SSC 140 - SISTEMAS OPERACIONAIS I Turmas A e B Aula 23 – Sistema Operacional para Smartphones Profa. Sarita Mazzini Bruschi. Smartphones. “Telefone inteligente”
E N D
Universidade de São PauloInstituto de Ciências Matemáticas e de ComputaçãoDepartamento de Sistemas de Computação SSC 140 - SISTEMAS OPERACIONAIS I Turmas A e B Aula 23 – Sistema Operacional para Smartphones Profa. Sarita Mazzini Bruschi
Smartphones • “Telefone inteligente” • Aparelhos celulares que executam sistemas operacionais com funções completas e apresentam características de um desktop • Qualquer pessoa pode desenvolver aplicações que executam nos smartphones
Mercado de Smartphones "Google Android smacks down Windows Mobile in latest Gartner data". Press release. 19 May 2010. http://www.zdnet.com/blog/cell-phones/google-android-smacks-down-windows-mobile-in-latest-gartner-data/3829. Retrieved 28 May 2010. "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.
Symbian • História • Psion (1980 - 1990): fabricante de PDAs • Série 3, 3c (1996), 3mx (1998) • Melhoria no processador e com mais memória • EPOC (1996) • Sistema Operacional 32 bits, com suporte a touch screen • Release 1: orientado a objetos • Release 3: Psion série 5 • Release 5: Psion série 7
Symbian • História • 2000: Psion + líderes da indústria de telefonia móvel (Nokia, Ericsson, Motorola e Matsushita) criaram um empreendimento denominado Symbian • Desenvolvimento do SO Symbian • Surgiu na versão 6, em 2001 (Symbian 6) • Versão 7: 2003 • Novas funcionalidades de smartphones • Núcleo e serviços do sist. operacional foram separados da interface com o usuário • Versão 8: 2004 • Melhorou desempenho, principalmente de funções de tempo real • Versão 9.1: 2005 • Adicionou conceitos de segurança • Versão 9.2 e 9.3: 2006 • Versão 9.4 e 9.5: 2007
Symbian • Características • Projetado especificamente para smartphones • Orientado a objetos • Projeto de micronúcleo (microkernel) • Utiliza a arquitetura cliente/servidor • Possui características de um sistema operacional de desktop • Ênfase em comunicação e multimídia
Symbian • Problemas no micronúcleo: • Custo de comunicação devido a comunicação entre os servidores, os quais estão no espaço do usuário • Desempenho das funções cai quando saem do espaço do núcleo e passam para o espaço do usuário • Utilização de 2 ou mais espaços de endereçamento devido aos constantes chaveamentos entre espaço do usuário e espaço do núcleo
Symbian • Solução para os problemas do micronúcleo: • Implementação de uma estrutura de nanonúcleo • Dentro do núcleo, separa as funções com implementação mais sofisticada, deixando no nanonúcleo as funções mais básicas • O nanonúcleo se torna o núcleo do sistema operacional
Symbian • Nanonúcleo: • Funções mais básicas, como operações em threads em modo privilegiado: • Escalonamento e operações de sincronização • Tratamento de interrupções e objetos de sincronização como semáforos e mutexes • Funções preemptáveis e primitivas, tornando-as mais rápidas
Symbian • Núcleo • Implementação das funções de núcleo mais complicadas, combinadas com as operações mais primitivas do nanonúcleo • Threads em modo usuário • Escalonamento de processos e mudanças de contexto • Memória dinâmica • Sincronização complexa • Comunicação entre objetos e processos
Symbian • Funções de um sistema operacional maior: • Processos e Threads: sistema multitarefa e multithread • Suporte comum ao sistema de arquivos: compatível com o Windows (FAT32) • Rede: TCP/IP • Gerenciamento de memória: mapeia a memória em páginas mesmo não usando o mapeamento de memória virtual
SymbianProcessos e Threads • Threads: unidade central de processamento • Nanothreads: threads no nanonúcleo • Nanonúcleo suporta threads, fornecendo escalonamento de nanothreads, sincronização (comunicação inter-threads) e serviços de temporização • Precisam de uma pilha para armazenar as informações de ambiente de tempo de execução e são executadas em modo privilegiado, não podendo ser executadas em modo usuário • Conjunto mínimo de dados para a execução das nanothreads: localização e tamanho da pilha • SO controla o restante: código usado por cada thread e armazena o contexto das threads em suas pilhas de execução
SymbianProcessos e Threads • Nanothreads: estados possíveis, além dos convencionais: • Suspenso: uma thread suspende a outra • Espera por semáforo rápido: espera pela sinalização de um semáforo rápido (semáforo do nanonúcleo) • Espera DFC (delayed function call): espera a chamada atrasada de função, utilizadas para implementação de drivers e representam chamadas ao núcleo que podem ser escalonadas para execução pela camada do núcleo • Dormindo: estão adormecidas esperando pela passagem de um período de tempo específico • Outro: estado genérico que pode ser utilizado pelos desenvolvedores para implementarem estados extras (expansão das funções do nanonúcleo para novas plataformas)
SymbianProcessos e Threads • Nanothreads: • Essencialmente um processo mais leve • Possui um minicontexto que vai se alternando conforme as nanothreads vão passando pelo processador • Característica: controle rígido que o núcleo tem sobre elas e a mínima quantidade de informação que compõe o contexto de cada uma
SymbianProcessos e Threads • Threads: baseadas nas nanothreads • O núcleo amplia o suporte que o nanonúcleo oferece • As threads definidas no modo usuário são implementadas por threads do Symbian • Cada thread do Symbian contém uma nanothread e adiciona sua própria pilha de execução à pilha usada pela nanothread • O Symbiam adiciona sete novos estados em que as threads podem estar, focadas em condições bloqueantes especiais que podem ocorrer (suspensão por semáforos normais, variáveis mutex e variáveis condicionais) • Esses estados são implementados de acordo com os estados das nanothreads
SymbianProcessos e Threads • Processos • São threads agrupadas sob uma única estrutura de controle de bloco de processos com um único espaço de memória • Pode haver uma ou várias threads de execução sob um bloco de controle de processos • O escalonamento de um processo é implementado pelo escalonamento de uma thread e da inicialização do bloco de controle de processo adequado • Objetos ativos • Forma especializadas de thread executada no espaço do usuário, as quais foram implementadas visando diminuir a sobrecarga de se ficar verificando se uma thread que foi bloqueada já está pronta ou não • Diferença principal para as threads-padrão está em não perder tempo verificando se já foram desbloqueadas
SymbianProcessos e Threads • Comunicação • Soquete: pipeline de comunicação abstrata entre dois pontos • Abstração usada para ocultar o gerenciamento dos dados e do método de transporte • Comunicação entre clientes e servidores, threads e dispositivos e entre as threads • Forma de comunicação também entre os dispositivos • Abstração é importante: soquetes que trabalham sobre TCP/IP podem ser adaptados para trabalhar em um ambiente Bluetooth alterando os parâmetros no tipo do soquete usado • Implementa também sincronziação padrão: semáforos e mutexes
SymbianGerenciamento de memória • Modelo de memória restrito • Sem memória virtual com paginação sob demanda • Dois tipos de memória: • RAM (código do SO quando inicia) e memória flash (memória operacional e armazenamento permanente) • Ausência de MV com paginação por demanda não implica ausência de gerenciamento de memória • Contém: • Paginação • Tradução de endereços • Abstração de endereços físicos e virtuais • Ausência de MV significa que as páginas não podem ser trocadas na memória e enviadas para armazenamento externo • As páginas são substituídas, porém as que saem são descartadas ao invés de serem enviadas para disco... Isso significa que apenas as páginas de código podem ser substituídas umas vez que apenas elas estão na memória flash
SymbianGerenciamento de memória • Tarefas do gerenciador de memória: • Gerenciamento do tamanho da aplicação: código e dados. Tendência de se utilizar POO pode ser um problema • Gerenciamento da heap: uso cuidadoso. Os usuários são forçados a recuperar e reutilizar esse espaço o máximo possível • Execução local: memória flash mapeada no espaço de endereçamento 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 execução • Transferência do gerenciamento de memória para o hardware: MMU
SymbianGerenciamento de memória • Sistema de 32 bits: endereça até 4GB • Utiliza endereços virtuais que podem ser mapeados em endereços físicos • Divide a memória em páginas virtuais e quadros físicos, normalmente de 4 KB • Tabela de página com mais de 1 milhão de entradas... impossível! • Solução: tabela de página em dois níveis • 1o. Nível: diretório de página mantido na memória principal (12 bits) • 2o. Nível: coleção de tabelas de páginas, com 8 bits indicando a página • Palavra na página, deslocamento (12 bits)
SymbianGerenciamento de memória • TTBR: registrador base da tabela de tradução (translaction table base register)
SymbianGerenciamento de memória • Modelos de implementação de memória • Modelo em movimento: projetado para as primeiras arquiteturas ARM • Modelo múltiplo: utilizada a partir da versão 6 da arquitetura ARM • Modelo direto: sem MMU – não utilizado em smartphones • Modelo emulador: dar suporte ao emulador do Symbian no Windows
SymbianEntrada e Saída • Drivers de dispositivos • Executados como código privilegiado de núcleo • Dois níveis: • Driver de dispositivo lógico (LDD – logical device driver): interface com as camadas altas de software • Driver de dispositivo físico (PDD – physical device driver): interage diretamente com o hardware • Pode haver um LDD para dispositivos da mesma classe e PDDs diferentes para cada dispositivo
SymbianEntrada e Saída • Extensões de núcleo • Drivers de dispositivos carregados pelo Symbian na inicialização • Normalmente não são acompanhadas de PDDs • Executam operações essenciais • Serviços de DMA • Gerenciamento do monitor • Controle do barramento para dipositivos periféricos • DMA • Fornece suporte • Problema: • Suporte a várias configurações de hardware o que impede de assumir uma configuração única de DMA
SymbianEntrada e Saída • Mídia removível • Ao ser inserida, é considerada como um dispositivo • Precisa de controlador, driver, estrutura de barramento e talvez se comunicar com a CPU através de DMA • Como o SO detecta a inserção e remoção e como tratar a ausência do dispositivo? • Características: • Todos os dispositivos devem ser inseridos e removidos • Todas as mídias removíveis podem ser retiradas enquanto estão sendo utilizadas • Cada mídia pode reportar suas capacidades • Cartões incompatíveis devem ser rejeitados • Cada cartão precisa de energia • Controladores de software gerenciam cada cartão suportado • Soquete para comunicação entre os controladores de software e o dispositivo
Android • Sistema operacional para dispositivos móveis, incluindo um middleware e aplicações padrões e uma versão modificada do kernel do Linux • Foram alterados 75 arquivos e adicionados 88 no kernel 2.6.25
Links interessantes • http://cs736-android.pbworks.com/FrontPage • Código fonte do Android • http://www.netmite.com/android/mydroid/