PublicouBrian Osorio Alterado mais de 4 anos atrás
1 Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas A e B Aula 23 – Sistema Operacional para Smartphones Profa. Sarita Mazzini Bruschi
2 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
3 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 Retrieved 21 September 2009. "Google Android smacks down Windows Mobile in latest Gartner data". Press release. 19 May Retrieved 28 May 2010.
4 Sistemas Operacionais para Smartphones
5 Symbian História Psion (1980 - 1990): fabricante de PDAs EPOC (1996)
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
6 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
7 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
8 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
9 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
11 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
12 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
13 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
14 Symbian Processos 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
15 Symbian Processos 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)
16 Symbian Processos 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
17 Symbian Processos 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
18 Symbian Processos e Threads
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
19 Symbian Processos 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
20 Symbian Gerenciamento 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
21 Symbian Gerenciamento 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
22 Symbian Gerenciamento 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)
23 Symbian Gerenciamento de memória
TTBR: registrador base da tabela de tradução (translaction table base register)
24 Symbian Gerenciamento 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
25 Symbian Entrada 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
26 Symbian Entrada 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
27 Symbian Entrada 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
28 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