21
SYMBIAN OS 1

Symbian OS

Embed Size (px)

DESCRIPTION

Trabalho sobre Symbian OS

Citation preview

SYMBIAN OS

SO PAULO2014Sumrio1.Introduo32.Desenvolvimento42.1.Processos e Threads42.2.Deadlocks52.3.Kernel62.4.Entrada e Sada (I/O)82.5.Sistemas de Arquivos112.6.Gerenciamento de Memria123.Concluso134.Referncias Bibliogrficas14

1. Introduo

O Sistema Operacional Symbian, muito popular em aparelhos mveis Nokia, apresenta uma arquitetura multitarefa robusta de 32 bits. Suas linguagens de programao so C e Java.A histria do Symbian comea em 1984 com uma empresa inglesa de nome Psion, que produzia o Psion Series 5, um computador de mo com processamento modesto, mas que portava um excelente sistema operacional prprio que fazia bom uso da memria e proporcionava um incrvel desempenho, o EPOC 32. Movido a duas pilhas AA que duravam at 30 horas, o dispositivo possua uma bateria de Backup para preservar os dados durante a troca e cartes Compact Flash de at 128 MB para expandir a memria.O EPOC 32 possui aplicativos instalados como processadores de texto, planilhas; gerenciadores de contatos, agenda, calculadora e claro, leitor de e-mails e navegador (caso possusse um modem serial).Os lanamentos seguintes da marca Psion no obtiveram o sucesso esperado, fazendo com que a empresa parasse de produzir aparelhos em 2000. Entretanto, o EPOC sobreviveu, originando assim o Symbian OS. Em 2008, a Nokia (que possua 48% das aes) comprou o sistema, incluindo os seus direitos.Os cinco pontos chaves do Symbian OS so: pequenos dispositivos mveis, o mercado de massa, conexo wireless ocasional, variedade de produtos e plataforma aberta para desenvolvimento de terceiros. A famlia Symbian se divide em duas plataformas principais: S60 (encontrada em celulares LG e Samsung) e UIQ (Sony-Ericsson e Motorola). Existem ainda outras verses, como S40, que anterior ao S60, acompanhando geralmente celulares com hardwares menos robustos; MOAP (Mobile Oriented Applications Platform), exclusivo para os japoneses, contando com uma interface fechada que no permite o desenvolvimento de softwares de terceiros; dentre outros. As quatro plataformas citadas so, na realidade, interfaces que rodam a partir do Symbian, que o sistema operacional. S40, S60 e UIQ so interfaces parcialmente compatveis.Atualmente a Nokia foi comprada pela Microsoft em uma tentativa de conter os concorrentes, o que implicar no fim da plataforma Symbian dentro dos prximos anos.

2. Desenvolvimento2.1. Processos e ThreadsPara o Symbian os processos so conjuntos de threads agrupados em uma nica estrutura de controle de blocos de processos, com um nico espao de memria. A princpio temos uma thread principal marcada como o ponto de partida do processo, vale ressaltar tambm que as threads compartilham parmetros de escalonamento, ou seja, se ocorrer alguma mudana em relao ao mtodo de escalonamento, todos os parmetros, referentes as threads, vo mudar. As threads compartilham, tambm, objetos de espao de memria, ou seja, dispositivos e outros descritores de objetos. Ento, por fim, quando um processo finalizado, o ncleo elimina todas as threads no processo. Abaixo temos um circulo de vida de uma thread para melhor compreenso.

Imagem 1 Circulo de vida de uma thread, incluindo seu estado.

2.1.2 Objetos ativosOs objetos ativos so threads especializadas que so implementadas visando aliviar a carga que elas impem sobre o ambiente operacional. A princpio difcil ver a utilidade de algo assim, mas eles so muito interessantes, vamos considerar o escalonamento. Enquanto eles esperam por eventos, todos esses objetos ativos ficam em um nico processo e podem atuar como uma thread para o sistema. Qual o resultado disso? Uma quantidade menor de verificaes de threads e um desempenho mais rpido, o que crucial em sistemas para smartphones.2.1.3 ComunicaoEm um ambiente com vrias threads, a comunicao entre processos , no mnimo, fundamental. Um soquete, um pipeline de comunicao abstrata entre dois pontos, o modelo mais bsico usado pelo Symbian. Ele usa semforos amplamente, o que proporciona a sincronizao de processos e threads.

2.2. Deadlocks

O Symbian se trata de um sistema multitarefa preemptivo. Com isso, podemos inferir que, por ser preemptivo, o tratamento de deadlocks realizado com o uso de escalonamento, ou seja, cada processo possui um espao de memria reservado para ele, impossibilitando a execuo de um novo processo no lugar de outro. Alm disso, cada processo recebe tambm uma prioridade do sistema. Nisto, o sistema que decide de o processo ser executado ou no. Isto pode ser reforado pela utilizao de Active Objects, ou objetos ativos, pelo sistema. Os objetos ativos podem ser utilizados para gerar o processamento cooperativo, que simula a existncia de vrias threads. Eles funcionam da seguinte maneira: um thread qualquer possui um escalonador ativo. Este escalonador, ento, fica espera de novos eventos. Quando ocorre um evento, invocado o objeto ativo que precisava deste evento. Quando este evento tratado, o escalonador volta a esperar pela ocorrncia de outros eventos a serem tratados. O problema que, uma vez que os objetos ativos so tratados ao mesmo tempo, cooperando uns com os outros, ainda h o risco de uma tarefa bloquear todo o processo, ou seja, ocorre um deadlock. Assim, deve se tomar cuidado neste aspecto.Mesmo assim, os deadlocks podem ocorrer, mesmo que raramente, mas o sistema traz algumas formas de minimizar a ocorrncia deles, citadas acima.

2.3. KernelO kernel do Symbian baseado no mesmo kernel do S.O. do Psion Series 5. O EKA1 (EPOC Kernel1), como era chamado, representa toda a base do sistema, possuindo recursos importantes como a proteo de memria e a multiprogramao preempitva. Era um microkernel, pois trata-se de um kernel voltado a dispositivos com hardware mais modesto, o que o caso dos smartphones equipados com Symbian. Este kernel foi usado at a verso 7.0 do Symbian OS. Entretanto, ele trazia alguns problemas: a comunicao entre os objetos era lenta, afetando o desempenho do sistema, pois esta comunicao era feita atravs da troca de mensagens. Assim, na verso 8.0, surgiu o kernel EKA2, que pretendia corrigir as falhas trazidas na verso anterior, trazendo 3 principais inovaes:1. Suporte do sistema de tempo real: essa funcionalidade permite que os processos que exigem a prioridade em tempo real tenham um tempo limite maior.2. Mltiplos fluxos de execuo: o kernel agora faz a gesto dos mltiplos fluxos de execuo, junto com a dos mltiplos processos.3. Nanokernel: o nanokernel simplifica a superviso dos fluxos de execuo e excluses mtuas. Porm, ele no aceita a alocao de memria dinmica. Mesmo assim, ele capaz de trazer um desempenho melhor em relao ao microkernel, pois ele traz apenas as funes bsicas do sistema dentro dele, deixando outras funes mais sofisticadas para um segundo nvel do ncleo do sistema.

Imagem 2 Camadas do Kernel do SymbianEste kernel tambm traz um recurso importante, os chamados Dinamic Link Libraries, tambm chamados de DLLs. As DLLs so bibliotecas acopladas a memria do sistema, trazendo funes bsicas para as aplicaes. O Symbian traz mais de 100 DLL's em um smartphone comum. Para se ter uma ideia da importncia delas, na verso 9 do sistema, a interface grfica formada totalmente por DLLs. Existem dois tipos de DLLs: as estticas (funes mais simples do sistema) e as polimrficas (so como plug-in's para os aplicativos).O kernel do Symbian OS foi construdo pensando-se em 2 aspectos importantes que um smartphone deve ter: a possibilidade se executar vrios servios ao mesmo tempo e, simultaneamente, disponibilizar um ambiente similar a um Desktop comum. Por conta disso, ele possui uma estrutura mais complexo do que os sistemas convencionais. A nvel de administrador, a estrutura do Kernel possui os seguintes componentes: PDD (Physical Device Driver): responsvel pela comunicao direta com o hardware do aparelho; LDD (Logical Device Driver): trata da interface de com os nveis superiores do software. Os drivers de dispositivos encontrados no sistema so formados pelo LDD e tambm pelo PDD. ASSP (Application Specific Standard Product): pode realizar a comunicao direta com o processador do dispositivo, podendo fazer diversas funes, como o controle do acesso direto memria, a realizao de interrupes, a gesto de energia do aparelho, etc. RTOS (Real Time OS): basicamente, atravs de uma ligao direta com o hardware, ele implementa as funcionalidades que possibilitam que um aparelho possa realizar operaes telefnicas, ou seja, implementa as funes de GSM no celular. Memory Model: este modelo diz como a memria organizada e como o S.O. poder funcionar com ela. Nanokernel: executa as partes mais bsicas do sistema. Symbian OS Kernel: implementa os diversos Memory Model (modelos de memria) do sistema.A nvel de usurio, a estrutura do Kernel possui os seguintes componentes: Microkernel Servers: componente responsvel por realizar a requisies das operaes para rodar em modo Kernel, ou seja, em nvel de administrador. HAL: o Hardware Abstraction Layer, como j diz o nome, camada de abstrao do hardware. Ele oferece o suporte a diversos recursos de multimdia ao dispositivo, como o udio, vdeo, tecnologias de acelerao de reconhecimento de voz, entre outros.Os outros componentes executados a nvel de usurio so bibliotecas do sistema e threads a nvel de usurio (User Thread).

2.4. Entrada e Sada (I/O)

A estrutura de entrada/sada do Symbian bastante semelhante a de outros sistemas operacionais comuns. Essa estrutura tem como principais caractersticas, as seguintes: Drivers de Dispositivos: como na maioria dos S.O., os drivers permitem o acesso do software ao hardware. O driver executado em modo Kernel, para que seja possvel que ele permita a utilizao de recursos protegidos pelo sistema por um cdigo do nivel de usurio requisitante. Um driver em Symbian dividido em 2 setores: LDD: O Logical Device Driver trata-se de um driver de dispositivo lgico, o qual realiza a interao com as camadas mais altas do software. Ele pode ser utilizado para um conjunto especfico de dispositivos, ou seja, pode ser usado o mesmo driver de dispositivo lgico para um conjunto de aparelhos semelhantes. PDD: O Physical Device Driver trata-se de um driver de dispositivo fsica, responsvel pela comunicao direta com o hardware do dispositivo. Diferentemente do LDD, ele deve sempre mudar de acordo o dispositivo, ou seja, ele no poder ser usado para um conjunto de aparelhos semelhantes. Assim, podemos inferir que 2 dispositivos semelhantes podem ter o mesmo LDD, porm, possuiro PDDs diferentes.O Symbian oferece uma facilidade de implementao de novas funes ao sistema. Assim, se o sistema no apresentar LDD's e PDD's, possvel adicion-los atrves de aplicaes de usurio, sendo que a necessidade de implementao dos mesmos detectada pelo sistema. Extenses de kernel: so casos diferenciados de drivers de dispositivos. Isso se deve ao fato de que eles so carregados na inicializao do sistema. Portanto, eles so tratados de forma diferente do sistema em relao aos drivers convencionais do Symbian. So especialmente direcionados a alguns dispositivos. A maioria destas extenses adicionada ao sistema como LDDs, trazendo junto com eles os PDDs, e podem ser executados conforme as aplicaes do usurio solicitarem.De forma geral, as extenses so montadas no momento em que o sistema inicializado, para s depois que o escalonador do sistema esteja ativo, serem carregadas e iniciadas, prontas para serem utilizadas. Elas podem trazer diversas funes bastante importantes, como, por exemplo, o gerenciamento de monitor, o DMA, o controle dos perifricos do dispositivo (como a entrada USB, encontrado em muitos aparelhos Symbian), entre outros.

Geralmente, as extenses so usadas principalmente para que as funes que trazem consigo no precisem que o kernel seja recompilado para poderem serem montadas e executadas. Por exemplo, quando so necessrios drivers para dispositivos especficos, que, geralmente, no so encontrados dentro do kernel. Outro motivo, que, por conta do Symbian ser um sistema orientado a objetos, estas funes representam bem a abstrao, que uma caracterstica encontrada em sistemas orientados a objetos.

DMA (Direct Memory Access): a possibilidade de se ter o acesso direto a memria do sistema por um dispositivo. um recurso bastante utilizado pelos drivers de dispositivos, de forma geral. No Symbian, suportado o uso de hardware de DMA, que nada mais do que um controlador de canais de DMA, sendo que cada canal oferece um meio de comunicao entre o dispositivo e a memria (o que evidencia o conceito de DMA) unidirecional, ou seja, em apenas uma direo. Ou seja, se for preciso que ocorra uma comunicao em duas direes (bidirecional), preciso ter 2 canais pra que isso seja possvel. Um exemplo disso que para um controlador LCD de tela em um sistema, Symbian realizar o DMA, so necessrios 2 canais de DMA, pois necessria uma comunicao bidirecional. Podem tambm existir canais DMA de uso geral no sistema.Esta comunicao ocorre da seguinte maneira: no momento em que os dados de uma aplicao so transferidos para a memria do sistema, uma interrupo disparada. Em seguida, o hardware do DMA oferece este servio de DMA ao PDD, que usado no dispositivo transmissor (responsvel por criar a interface com o hardware). Nisso, so criadas duas camadas de software, entre o PDD e controlador de DMA: uma extenso do kernel que faz a interface com o hardware de DMA e a camada de DMA de software. Esta ltima camada tambm se divide em 2 outras camadas: a camada de DMA dependente da plataforma e a camada de DMA independente da plataforma.A camada de DMA, por se tratar de um driver bastante importante, um dos primeiros a serem iniciados no sistema.Infelizmente, o suporte ao DMA no Symbian dificultoso, por que este sistema suporta diversas configuraes de hardware diferentes, e o DMA no possui uma configurao unificada para todos os tipos de hardware. Pensando desse modo, o Symbian traz uma forma de burlar esta dificuldade.Cada fabricante traz as extenses de kernel e a camada dependente de plataforma nica para o seu dispositivo, sendo que a interface com o hardware do DMA acoplada a camada independentemente da plataforma. O diferencial aqui que o hardware de DMA tratado como se fosse um dispositivo comum, que traz consigo um driver de disposto convencional, trazendo o seu LDD e o seu PDD. Isto vai de acordo com a forma como o Symbian abrangente no quesito de suporte a diversos dispositivos diferentes.

Existem tambm casos especiais, que tambm so tratados pelo Symbian: Mdia de armazenamento: o sistema Symbian oferece suporte a dispositivos de armazenamento fixos e removveis, podendo dar suporte a at 26 unidades distintos ao mesmo tempo, apenas diferenciando-as por letras, de forma semelhante a sistemas Windows. Isso deve a um tipo especial de driver, chamado driver de mdia, que nada mais do que um PDD que usado apenas pelo servidor de arquivos, o qual possibilita o acesso dos dispositivos das mdias de armazenamento. Estes ltimos devem suportar uma grande gama de forma de armazenamento. Por padro, o Symbian, para poder suportar este tipo de mdia, inclui um LDD-padro e uma interface API para usurios.

Bloqueio de E/S: o sistema Symbian utiliza os objetos ativos como um meio de bloquear a entrada/sada de dados. Isso se deve ao fato de que objetos ativos, diferentemente das threads comuns, so coordenados por um nico escalonador e implementados dentro de apenas um thread, sendo que as suas chamadas bloqueantes so tratadas pelo sistema operacional. Levando isso em conta, se ocorrer uma chamada bloqueante de E/S, este objeto ativo ir avisar o sistema e ir se suspender. Ao trmino da chamada, o processo suspenso acordado e continua a ser executado. Na verdade, os objetos ativos possuem uma perspectiva diferente: eles chamam uma funo especial que dever ser retorna imediatamente. Ou seja, chamando uma funo para o bloqueio de E/S, o bloqueio imediato, enquanto isso, o S.O. continuar esperando o trmino da chamada bloqueante.

Mdia removvel: este requisito bastante difcil de se tratar em um S.O., pois, ao ser inserido no aparelho, ele tratado com um dispositivo comum. Ento, o Symbian levou em conta uma srie de similaridades entres as mdias removveis em seu projeto: eles podem ser inseridos e removidos; podem ser removidos mesmo quando estiverem em uso; cada uma pode reportar as suas capacidades; os cartes incompatveis com o sistema devem ser rejeitados e que cada carto precisa de energia.Pensando nisso, o Symbian traz em seu interior controladores de software que gerenciam cada um destes dispositivos removveis que so suportados pelo sistema. Estes controladores trabalham com drivers especficos para cada tipo de carto, isso tambm a nvel de software. Quando um carto inserido no aparelho, criado um objeto soquete que passa a se comportar como um canal por onde os dados navegam. Quando ocorre alguma mudana de estado, o Symbian retorna uma srie de eventos que s so iniciados com esta mudana. Para isso, estes drivers so configurados como objetos ativos, para pode trabalhar com esses eventos.

2.5. Sistemas de Arquivos

O Sistema Operacional Symbian suporta dois sistemas de arquivo: FAT32 (File Allocation Table - Tabela de Alocao de Arquivos), que compatvel com o Windows e funciona a partir de uma tabela que indica a localizao dos dados de cada arquivo (o 32 faz referncia ao endereamento em 32 bits); e o LFFS (Logging Fast File System).O Symbian OS permite ainda implementaes de Sistemas de Arquivos atravs de uma interface no estilo plug-in, alm de suportar FAT16, NTFS e outros formatos de carto de memria.Utiliza-se o Flash Disk como um disco rgido para a manipulao e escrita de dados, que pode ser realizada tanto sistema de arquivos quanto pelo utilizador do Sistema Operacional.O Symbian possui para o Sistema de Gestor de Pacotes (Package management system) os formatos .sis e .sisx. Enquanto os arquivos de formato .sis fazem referncia as verses antigas do sistema operacional (anteriores ao Symbian 8.1), os arquivos com terminao .sisx funcionam em sistemas operacionais Symbian de Terceira Gerao (Symbian S60 3rd Edition) que comeam a partir da verso 9.1.Arquivos do formato .sis ainda podem funcionar em verses mais recentes do Symbian, embora o seu funcionamento no seja totalmente garantido.

2.6. Gerenciamento de Memria

Como sabemos, o armazenamento nos smartphones limitado, o modelo de memria restrito e no usa um esquema de memria virtual ou de espao de troca de gerenciamento, ou seja, tem suas limitaes. Porm, o fato de no possuir memria virtual no quer significa a ausncia de gerenciamento de memria, essa ausncia significa apenas que as pginas no podem ser trocadas nas memrias enviadas para armazenamento externo, porm, as pginas no so substitudas, mas as que esto sendo trocadas so apenas descartadas. O gerenciamento de memria flash consiste nas seguintes tarefas:1. Gerenciamento do tamanho de aplicaes:O tamanho de uma aplicao tem um efeito decisivo em como a memria usada.2. Gerenciamento do heap:O heap, espao para alocao dinmica de memria, possui tamanho limitado nas plataformas desse tipo, e deve ser gerenciado com rigor.3. Execuo local:Aqui a memria mapeada no espao de endereamento virtual e os programas so executados diretamente dela, sem que antes tenham que ser copiados para a RAM, isso faz com que a aplicao inicie instantaneamente, e o melhor de tudo, no ocupa a RAM, que costuma ser bem pequena em dispositivos mveis.4. Carregar DLLs:Pode no parecer, mas a escolha do momento que as DLLs so carregadas podem influenciar no desempenho de um sistema. mais aceitvel carreg-las enquanto a aplicao estiver iniciando, pois mais confortvel esperar para a aplicao iniciar do que atrasos na execuo.5. Transferncia do gerenciamento de memria para o hardware:Se existe uma MMU (unidade de gerenciamento de memria, um dispositivo de hardware que traduz endereos virtuais em fsicos) ela utilizada em sua capacidade total.

3. Concluso

O Symbian, embora j esteja beira da morte, foi um sistema operacional eficiente e de custo popular. Com o passar do tempo, passou a ser substitudo por outros sistemas mveis que possuam um maior nmero de aplicativos, embora nem mesmo o Android tenha conseguido repetir o seu excelente projeto de baixo consumo de energia.

4. Referncias Bibliogrficas

TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3. ed. So Paulo: Pearson, 2010.

http://www.oficinadanet.com.br/artigo/outros_sistemas/sistema_operacional_symbian_os

http://www.allaboutsymbian.com/

http://www.hardware.com.br/dicas/celulares-nokia.html

14