SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Sistemas Operacionais – Universidade Federal de Santa
Catarina
Sistemas Operativos para Celulares – Symbian OS
Autores
Carlos Jorge Lemos Nunes
Fábio Rafael Magalhães Malheiro
Sistemas Operativos para Celulares – Symbian OS
2
Introdução
Num mundo cada vez mais dependente dos dispositivos móveis, surgiu a necessidade de
criar sistemas operativos capazes de lidar, e potenciar, todas as funcionalidades e capacidades
oferecidas por estes.
É neste contexto que surge o Symbian OS, um sistema operativo, presente na grande
maioria dos principais modelos de smartphones actuais, estruturado como os sistemas
operativos comuns em desktop, multitarefa preemptivo e com memória protegida.
O desenvolvimento deste sistema operativo assentou em três grandes regras: a
integridade e segurança dos dados do utilizador é primordial, o tempo do utilizador não deve ser
desperdiçado, e todos os recursos são escassos.Uma vez que o hardware presente num
smartphone tem consideráveis limitações de capacidade quando comparado com um PC estas
mesmas limitações devem ser tratadas e geridas pelo sistema operativo de forma a disponibilizar
todos os recursos de forma optimizada e eficiente ao utilizador.
Com este trabalho e respeitando o âmbito curricular da disciplina de Sistemas
Operacionais pretendemos efectuar um estudo das principais características da arquitectura do
Symbian OS a nível do controlo de processos, memória, dispositivos de IO e unidades de
armazenamento de dados.
Sistemas Operativos para Celulares – Symbian OS
3
Índice
Introdução ..................................................................................................................................... 2
1.Nucleo ........................................................................................................................................ 4
1.2 Estrutura do Nucleo............................................................................................................. 5
2. Processos e Threads .................................................................................................................. 7
3. Memoria no Symbian OS.......................................................................................................... 8
4. Gerência de Processador ......................................................................................................... 11
5. Entrada e Saída........................................................................................................................ 12
BIBLIOGRAFIA.............................................................................................................................. 15
Sistemas Operativos para Celulares – Symbian OS
4
1.Núcleo
O Symbian OS era baseado no mesmo núcleo do EPOC, o EPOC Kernel 1
(EKA1). O núcleo EKA1, presente no Symbian OS até à versão 7, além de implementar
toda a base do sistema operativo, tinha alguns recursos como multi-programação pré-
emptiva e protecção de memória.
A partir da versão 8.0 do Symbian OS, passou a ser utilizado um novo núcleo, o
EKA2. As principais diferenças e inovações que diferem o EKA2 dos seus antecessores
são:
• Sistema de tempo real
• Múltiplos fluxos de execução
• Nanokernel
O suporte do sistema de tempo real no EKA2, implica um tempo limite maior
para os processos que exigem a prioridade em tempo real. Ele também faz a gestão dos
múltiplos fluxos de execução juntamente com os múltiplos processos. O nanokernel é
uma camada mais baixa do núcleo que implementa diversas tarefas num contexto
reduzido. No Symbian OS o nanokernel tem como principal função, simplificar a
supervisão dos fluxos de execução e exclusões mútuas. Porém, não aceita a alocação de
memória dinâmica, sendo apenas uma implementação mais simplória destes conceitos.
O núcleo também é composto por Dynamic Link Libraries (DLL’s). São
bibliotecas carregadas na memória do sistema, com funções básicas para as aplicações.
As DLL’s são muito utilizadas no Symbian OS, num total de quase 100 bibliotecas num
telefone móvel comum. No Symbiam OS v9.0 toda a interface gráfica do utilizador é
baseada nas DLL’s. Há dois tipos de DLL, DLL’s estáticas e DLL’s polimórficas. As
DLL’s estáticas são colecções de classes e funções básicas do sistema, ou seja, a base de
bibliotecas do sistema operativo. As DLL’s polimórficas funcionam como plugins para
as aplicações.
O núcleo do Symbian OS implementa todas as classes e funções necessárias para
o funcionamento sólido do sistema operativo. Ele também provê toda a implementação
e gerência de processos e a alocação de memória do sistema.
Sistemas Operativos para Celulares – Symbian OS
5
1.2 Estrutura do Núcleo
A plataforma de um smartphone requer que muitos serviços sejam executados em tempo
real, mas ao mesmo tempo tem que lidar com a necessidade de disponibilizar um ambiente de
operação e interacção similar a um desktop. Para responder a estes dois requisitos de forma
adequada o kernel do Symbian Os tem uma estrutura (Figura 1) mais complexa do que o dos
sistemas operativos comuns.
Consoante as necessidades poderão ser efectuados os mais diversificados percursos dentro
do kernel. Por exemplo uma aplicação a correr em modo de utilizador, que solicita uma
operação no servidor de arquivos. Esta mesma operação irá efectuar um pedido ao kernel que
por sua vez irá requisitar IO em algum dispositivo, que irá fazer uso do nanokernel.
Por sua vez se pensarmos numa chamada telefónica, este tipo de operação irá iniciar as
funções presentes no RTOS, que irá interagir directamente com o hardware.
Figura 1 : Estrutura do kernel do Symbian Os
Fonte: Smartphone Operating System Concepts with Symbian OS
• A interface que permite a comunicação entre o código e o hardware está dividida em
duas partes:
1. “Physical device driver” (PDD) que comunica directamente com o hardware.
2. “Logical Device Driver” (LDD) que estabelece uma interface de comunicação
com os níveis superiores de software.
Sistemas Operativos para Celulares – Symbian OS
6
Além disto, o kernel consegue interagir directamente com o hardware através da
“application-specific standard product” (ASSP). Por fim, todos os componentes que
precisem de interagir com o sistema operativo em tempo real podem interagir
directamente com o hardware caso corram num modo especial chamado de “Personality
layer”
• Memory model, é um modelo de como a
memória esta organizada num dispositivo e como sistema operativo irá funcionar com
esta.
• Symbian OS Kernel, depende do nanokernel embora esteja separado das partes
responsáveis por lidar com tarefas em tempo real. Implementa os diversos modelos de
memória exigidos pela plataforma
• Nanokernel, implementa as mais básicas e primitivas partes do Symbian OS e é
utilizado maioritariamente pela parte telefónica (responsável pelas envio e recepção de
comunicações) do sistema operativo.
• Tanto o “real-time OS” como os “personality layers” foram desenvolvidos para
implementar a funcionalidade telefónica. O “RTOS” implementa as funções de GSM
do smartphone através da ligação directa com o hardware. O “personality layer” permite
que o fabricante do smartphone use diferentes implementações a nível da função
telefónica (como por exemplo função analógica).
• User mode layers, inclui os microkernel servres tal como as aplicações do utilizador .
Tal como referido anteriormente estes interagem com o Symbian Os kernel para
efectuarem pedidos ou iniciarem operações em kernel-mode.
Sistemas Operativos para Celulares – Symbian OS
7
2. Processos e Threads
O processo é um programa em execução, seja essa execução uma chamada do
próprio sistema ou uma chamada do utilizador. Os sistemas operativos em geral, assim
como o Symbian OS, suportam e fazem a gerência da concorrência de processos ou
múltiplos processos. O conceito de processo, para Symbian OS, é uma colecção de
fluxos de execução que partilham um endereçamento de memória. Essa partilha de
memória comum entre processos é limitada no Symbian OS pelo núcleo, por motivos de
segurança dos recursos do sistema.
O conceito de fluxo de execução é uma entidade em que o núcleo aloca recursos
na UCP. Um processo simples é composto por um conjunto de recursos e um fluxo de
execução. Multithreading é a execução de um processo composto por vários fluxos de
execução que concorrem entre si baseada em prioridades. O núcleo do Symbian OS
disponibiliza o recurso de multithreading, onde vários fluxos de execução podem
executar paralelamente sem haver a necessidade do controlo dos fluxos de execução
explícito no código em execução.
O nanokernel do Symbian OS suporta os mais simples fluxos de execução do
sistema. O sistema também suporta a gerência e sincronização das nanothreads a partir
do nanokernel. As nanothreads utilizam uma pilha, única e simples, do administrador do
sistema, ou seja, só pode ser executável no sistema no modo administrador.
Os processos e fluxos de execução no Symbian OS, são tratados na forma de
multi-programação, a forma já conhecida em sistemas operativos em geral. O sistema
possui ainda, internamente no seu núcleo, uma implementação que facilita a gerência
dos recursos dos fluxos de execução. Esse recurso basicamente representa uma solução
para a limitação dos recursos que esse SO deve tratar.
Sistemas Operativos para Celulares – Symbian OS
8
3. Memoria no Symbian OS
Uma plataforma operada pelo Symbian OS oferece os seguintes tipos de
memória: Random Acess Memory (RAM), Read Only Memory (ROM), Flash Disk
interno e cartões de memória.
A memória RAM é utilizada durante a execução das aplicações, é nela que os
programas e o sistema operativo alocam memória durante a execução dos processos e
fluxos de execução. Geralmente os dispositivos móveis tem uma quantidade de
memória RAM muito pequena.
Parte do sistema operativo Symbian OS fica armazenado na memória do tipo
ROM, assim como a sua inicialização. A memória ROM é exclusiva do sistema, o
utilizador não pode manipular nem escrever dados nessa memória.
O Flash Disk é o disco interno para manipulação e escrita de dados pelo
utilizador e pelo sistema de arquivos do sistema operativo. O sistema suporta os
sistemas de arquivos comuns nos SO’s da Microsoft , FAT , e para além deste o sistema
de arquivos LFFS (Logging Fast File System).
O núcleo do Symbian OS é responsável por alocar a memória física, virtual e
gerir os recursos físicos da memória RAM, MMU e caches. A alocação de memória
segue uma implementação simples, baseada num heap diferenciado em três partes:
• Uso de memória pré-alocada com tamanho do heap fixo ou segmentação
dinâmica do heap.
• Um único fluxo de execução ou múltiplos fluxos de execução com baixo custo
do processador.
• Alinhamento selectivo de processos ou fluxos de execução.
Tal como a maioria dos sistemas, o Symbian OS divide a memória em páginas
lógicas e molduras físicas. O tamanho usual para as molduras é de 4KB. Visto que o
tamanho da memória poderá atingir os 4GB (por se tratar de um sistema 32-bit) e tendo
em conta o tamanho das molduras de pagina facilmente se percebe que se irá obter uma
tabela de página com mais de um milhão de entradas. Devidas às limitações do tamanho
de memória, não é viável para o Symbian OS dedicar 1MB para a tabela de página, além
disso a pesquisa e o acesso a uma tabela de página tão grande provocaria uma enorme
sobrecarga ao sistema.
Sistemas Operativos para Celulares – Symbian OS
9
Para resolver isto, o Symbian OS adoptou uma tabela de página de dois níveis,
conforme demonstrado na figura 2. O primeiro nível, page directory, que é indexado
pelos primeiros bits do endereço lógico, fornece uma ligação para o segundo nível, que
é um conjunto de tabelas de página. Estas tabelas fornecem uma ligação para uma
página específica na memória e são indexados pelos 8 bits do meio do endereço lógico.
Por fim a página em memória é indexada pelos últimos 12 bits do endereço lógico.
A tradução dos endereços lógicos em endereços físicos é feita por hardware através da
MMU e TLB presentes na arquitectura do processador ARM.
Figura 2 : Tabela de página multi-nível.
Fonte: Smartphone Operating System Concepts with Symbian OS
O que é que acontece quando uma pagina não está presente na memoria?
No Symbian OS, isto representa uma condição de erro uma vez que todas as
páginas de memória pertencentes a uma aplicação devem ser carregadas no momento
em que a aplicação é iniciada. Tendo em atenção que o endereçamento do Symbian OS
poderá atingir os 4 GB, apesar de ser improvável que um smartphone tenha tal
quantidade de memória, poderão ocorrer situações em que uma página referenciada não
esteja na memória. Tal situação causaria uma “excepção não tratada” de erro, fazendo
com que a aplicação do utilizador fosse encerrada.
Molduras de memória são atribuídas a páginas através de uma lista de molduras livres.
Se não existirem molduras disponíveis, então ocorre uma situação de erro. Não é
Sistemas Operativos para Celulares – Symbian OS
10
possível substituir molduras de memória usadas com páginas de uma futura aplicação.
Mesmo que as molduras pertençam a uma aplicação que já não esteja a executar. Isto
acontece porque não existe swapping no Symbian OS logo não existe um local para
onde possam ser copiadas estas páginas “deslocadas”.
Há quatro versões diferentes do modelo de implementação de memória
no Symbian OS. Cada modelo foi projectado para certos tipos de
configuração de hardware.
• Moving Model – Foi concebido para as arquitecturas mais recentes do ARM.
Neste modelo a page directory tem 4KB, e cada entrada possui 4 bytes, o que dá
um directório de 16 KB. Embora a segmentação não seja explicitamente
utilizada existe uma organização para o layout da memória. Existe uma parte
para guardar os dados pertencentes ao utilizador, e uma parte para guardar os
dados relativamente ao Kernel.
• Multiple Model – Modelo concebido para a versão 6 da arquitectura ARM. A
MMU nesta versão difere da utilizada nas versões anteriores. Por exemplo, a
page directory, requer um manuseamento diferente uma vez que pode ser
seccionada em duas partes, cada uma referenciando diferentes conjuntos de
tabelas de pagina, user-page tables e kernel-page tables.
• Direct Model – Este modelo assume que não existe uma MMU. É um modelo
raramente utilizado uma vez que a falta de MMU poderia causar graves
problemas de performance. Este modelo é útil para ambientes de
desenvolvimento em que por alguma razão seja útil ter a MMU desactivada
• Emulator Model – Foi desenvolvido para suportar o emulador do Symbian OS no
Microsoft Windows. Tal como seria de esperar este modelo apresenta algumas
restrições. O emulador corre como um único processo no Microsoft Windows. O
espaço de endereçamento está limitado a 2GB (ao invés dos 4GB). Toda a
memoria disponibilizada para o emulador é acessível por qualquer processo do
Symbian OS. Não existe protecção de memória. As bibliotecas do Symbian OS
são disponibilizadas como DLL’s do Microsoft Windows , cabendo a este
manusear a sua alocação e respectiva gestão de memória.
Sistemas Operativos para Celulares – Symbian OS
11
4. Gerência de Processador
Os celulares têm sua arquitectura de hardware baseada em microprocessadores
assíncronos ARM (Advanced RISC Machine) de 32bits. As características principais
destes microprocessadores são o tamanho reduzido e o baixo consumo de energia, o que
corresponde com os requisitos do Symbian OS. O desempenho alto exigido pelo
Symbian OS v9.3 é relativo, entre 100 e 200MHz, quando comparado com os CPUs dos
desktops que chegam a 3GHz. As versões mais recentes, baseadas no EKA2, do
Symbian OS são projectadas para o microprocessador ARM modelo v5T. Um processo
em Symbian OS é um executável que tem o seu próprio espaço na memória, uma pilha e
um cabeçalho. O Symbian OS também suporta múltiplos processos e múltiplos fluxos
de execução. Todo o processo tem um nome associado ao mesmo, e por padrão é
utilizado o nome do arquivo .exe em questão.
A partir da oitava versão do sistema que utiliza o EKA2, o Symbian OS inova o
tratamento de multi-programação. Para tratar os processos e fluxos de execução utiliza
escalonadores tradicionais, que são controlados pelo nanokernel. Alguns processos são
considerados de alta prioridade, como o controlo das chamadas telefónicas, aplicações
de vídeo e música, animações e outras aplicações que usam protocolos de comunicação.
A gerência desses processos é implementada com um FIFO, onde os primeiros
processos têm a prioridade mais alta da fila. O escalonamento dos fluxos de execução,
seguem essa linha híbrida, onde para cada tipo de processo ou fluxo de execução o
sistema implementa um método para gerenciar os seus recursos. O tratamento dos
múltiplos fluxos de execução, são tratados no Symbian OS com um escalonador Round-
Robin com prioridades (64níveis). O nanokernel implementa, internamente, algoritmos
escalonadores Round-Robin com prioridades, limite de tempo de execução e semáforos.
A prioridade entre os processos é tratada pelo núcleo, seguindo a prioridade dada
a cada processo, seja pelo próprio sistema, seja pelo utilizador, ou seja, pelo
programador. O processo chega ao estado final quando termina a sua execução normal
ou num processo de kill, quando o processo é encerrado por um outro motivo indicado
pelo sistema operativo através de um número inteiro. Neste caso, o processo pode ser
interrompido e finalizado de duas formas: kill itself, quando ele encerra a sua execução
ou quando ele é encerrado por meio de outro processo. Os processos nesse sistema
operativo são tratados internamente no núcleo, ou num nível mais baixo, no nanokernel.
Este último, implementa alguns escalonadores tradicionais como o FIFO, Round-Robin
e semáforos para controlar a fila de processos e fluxos de execução.
Sistemas Operativos para Celulares – Symbian OS
12
5. Entrada e Saída
O hardware do sistema como um todo, possui diversos periféricos conectados
através de uma interface. Essa interface constitui num elemento fundamental para a
comunicação do sistema operativo com esses periféricos, e para isto, usam-se os
controladores. O controlador funciona na forma de controlar cada periférico, no intuito
de realizar e fazer funcionar as tarefas deste periférico. Cada periférico deve ter um
controlador projectado para fazê-lo funcionar. O controlador é responsável por fazer
interagir o hardware e o software, no caso o sistema operativo, através das interfaces
dos dispositivos.
Para fazer a gerência dos processos de entrada e saída, existem diversas técnicas
como E/S programada, interrupções, e acesso directo à memória (DMA). O Symbian
OS utiliza duas das tradicionais técnicas, interrupções e DMA. O mecanismo de
interrupções utilizado no Symbian OS, determina as interrupções no kernel a partir dos
sinais emitidos em dois registadores do tipo PIC. Essas interrupções são divididas de
duas formas: Interrupt Request (IRQ), ou interrupção normal, e Fast Interrupt Request
(FIQ), sendo esta última com maior prioridade sobre as IRQ’s. Essa organização das
interrupções pode ser vista na Figura 3.1
Figura 3.1 - Funcionamento das Interrupções no Symbian OS.
Sistemas Operativos para Celulares – Symbian OS
13
De acordo com a Figura 3.1, o mecanismo de interrupções do sistema tem dois
níveis, separados pelos registadores PIC. O nível 1 (PIC Level 1) tem acesso directo ao
processador (CPU). Já no nível 2 (PIC Level 2) existe uma ponte entre o nível 1 e o
processador, para acontecer a interrupção do processo de E/S.
Como o mecanismo de interrupções não é sempre eficiente, os sistemas utilizam
a técnica de DMA, ou acesso directo à memória. Não diferente dos conceitos básicos de
SO’s o Symbian OS utiliza também desse mecanismo para agilizar os processos de E/S.
A técnica de DMA permite aos periféricos e/ou dispositivos alocar memória
directamente sem que exista um processo no CPU para isto. No Symbian OS é comum
o uso de DMA em multicanais, onde é permitida, mais de uma transferência de dados de
E/S na memória, divididos em canais. Um canal do DMA inicializa o processo de
transferência de dados pelo registador do periférico e endereça memória directamente.
Os canais são organizados em uma FIFO e controlados pela interface de cada periférico.
Na interacção hardware e software, o sistema operativo necessita de
controladores dos dispositivos, onde na visão do sistema operativo aplica-se o conceito
de drivers de dispositivos ou device drivers. Drivers de dispositivos são um meio das
aplicações terem acesso aos recursos dos periféricos através do sistema operativo, sem
que seja necessário ao programador implementar códigos de baixo nível para fazer uso
desses periféricos.
Os drivers de dispositivos são carregados no núcleo do Symbian OS através das
DLL’s de um modo dinâmico. A arquitectura desses drivers é divida em duas partes:
Logical Device Driver (LDD) e Physical Device Driver (PDD). As aplicações podem
utilizar os drivers mais comuns directamente da biblioteca LDD ou caso seja necessário
tem o suporte da PDD. A PDD é uma opção na arquitectura dos drivers, e funciona na
comunicação somente do hardware com a LDD, ou seja, inatingível para aplicação
directamente.
No Symbian OS há também extensões para o controlo de outros dispositivos,
que já estão compilados nativamente no núcleo do sistema. O subsistema de camadas do
Symbian OS e do EKA2 está organizado em diversos blocos modulares, não
monolíticos. Algumas camadas associadas ao EKA2, podem ser vistas na Figura 3.2.. O
sistema também é projectado para um único utilizador, diferente dos SO’s para PC,
como Microsoft Windows, GNU/Linux e Apple Mac OS X.
Sistemas Operativos para Celulares – Symbian OS
14
Figura 3.2 – Controlo de dispositivos pelo EKA2
O Symbian OS também é baseado numa arquitectura GUI (interface gráfica do
utilizador), com diversos recursos muito flexíveis.
Os periféricos disponíveis no hardware dos dispositivos têm que ser geridos, e
têm que estar disponíveis para as aplicações e para o utilizador. O controlo de E/S do
sistema operativo entra na ponte entre esses dispositivos e o suporte e funcionamento
deles para o sistema como um todo.
Sistemas Operativos para Celulares – Symbian OS
15
BIBLIOGRAFIA
http://en.wikipedia.org/wiki/Symbian_OS
http://en.wikipedia.org/wiki/Active_objects
Lucas Simões de Carvalho, Marcel Cunha Batista, Vinicius Ulbrich ,Análise de
ferramentas para o desenvolvimento de aplicações para Sistema Operacional Symbian.
Michael J. Jipping , Smartphone Operating System Concepts with Symbian

Mais conteúdo relacionado

Mais procurados

Sistemas Operacionais aula 02
Sistemas Operacionais  aula 02 Sistemas Operacionais  aula 02
Sistemas Operacionais aula 02 Diego Rodrigues
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisCid de Andrade
 
Sistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoSistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoLuiz Arthur
 
Sistemas operacionais lista de exercicios
Sistemas operacionais lista de exerciciosSistemas operacionais lista de exercicios
Sistemas operacionais lista de exerciciosCarlos Melo
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOMauro Duarte
 
Introducao a Sistemas Operacionais
Introducao a Sistemas OperacionaisIntroducao a Sistemas Operacionais
Introducao a Sistemas OperacionaisIsaac Vieira
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introduçãoCleber Ramos
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 
2009 1 - sistemas operacionais - aula 2 - conceitos basicos
2009 1 - sistemas operacionais - aula 2 - conceitos basicos2009 1 - sistemas operacionais - aula 2 - conceitos basicos
2009 1 - sistemas operacionais - aula 2 - conceitos basicosComputação Depressão
 
I Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas OperacionaisI Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas Operacionaisrodfernandes
 
Visão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalVisão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalAlexandre Duarte
 
Sistemas Operacionais parte 2
Sistemas Operacionais  parte 2Sistemas Operacionais  parte 2
Sistemas Operacionais parte 2Matheus Brito
 
Sistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema OperacionalSistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema OperacionalCharles Fortes
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelPablo Mariano
 

Mais procurados (19)

Sistemas Operacionais aula 02
Sistemas Operacionais  aula 02 Sistemas Operacionais  aula 02
Sistemas Operacionais aula 02
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Aula 1
Aula 1Aula 1
Aula 1
 
1ª aula sistema operacional
1ª aula  sistema operacional1ª aula  sistema operacional
1ª aula sistema operacional
 
Sistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoSistemas Operacionais - Introducao
Sistemas Operacionais - Introducao
 
Sistemas operacionais lista de exercicios
Sistemas operacionais lista de exerciciosSistemas operacionais lista de exercicios
Sistemas operacionais lista de exercicios
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 
Introducao a Sistemas Operacionais
Introducao a Sistemas OperacionaisIntroducao a Sistemas Operacionais
Introducao a Sistemas Operacionais
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introdução
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Aula 02
Aula 02Aula 02
Aula 02
 
2009 1 - sistemas operacionais - aula 2 - conceitos basicos
2009 1 - sistemas operacionais - aula 2 - conceitos basicos2009 1 - sistemas operacionais - aula 2 - conceitos basicos
2009 1 - sistemas operacionais - aula 2 - conceitos basicos
 
I Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas OperacionaisI Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas Operacionais
 
Visão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalVisão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema Operacional
 
Sistemas Operacionais parte 2
Sistemas Operacionais  parte 2Sistemas Operacionais  parte 2
Sistemas Operacionais parte 2
 
Sistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema OperacionalSistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
Sistemas Operacionais - Aula 6 - Estrutura do Sistema Operacional
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgel
 

Destaque

Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de SoftwareAdilmar Dantas
 
3ª maratona de games – facom ufu
3ª maratona de games – facom  ufu3ª maratona de games – facom  ufu
3ª maratona de games – facom ufuAdilmar Dantas
 
Nutec - Manual Usuário
Nutec - Manual UsuárioNutec - Manual Usuário
Nutec - Manual UsuárioAdilmar Dantas
 
Facebook Midias Sociais
Facebook Midias SociaisFacebook Midias Sociais
Facebook Midias SociaisAdilmar Dantas
 
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...Adilmar Dantas
 
Potenciação Divide and Conquer
Potenciação Divide and ConquerPotenciação Divide and Conquer
Potenciação Divide and ConquerAdilmar Dantas
 
Qualidade de Software Web
Qualidade de Software WebQualidade de Software Web
Qualidade de Software WebAdilmar Dantas
 
Reconhecimento Automático de Emoções
Reconhecimento Automático de EmoçõesReconhecimento Automático de Emoções
Reconhecimento Automático de EmoçõesAdilmar Dantas
 
Software Quality Software Testing Laboratory
Software Quality Software Testing Laboratory Software Quality Software Testing Laboratory
Software Quality Software Testing Laboratory Adilmar Dantas
 
ALgoritmo Genético - Escalonamento
ALgoritmo Genético - EscalonamentoALgoritmo Genético - Escalonamento
ALgoritmo Genético - EscalonamentoAdilmar Dantas
 
éTica para aristóteles
éTica para aristóteleséTica para aristóteles
éTica para aristótelesAdilmar Dantas
 
Compilador analise lexica
Compilador analise lexicaCompilador analise lexica
Compilador analise lexicaAdilmar Dantas
 
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...Adilmar Dantas
 
Análise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de EmoçõesAnálise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de EmoçõesAdilmar Dantas
 

Destaque (20)

Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de Software
 
3ª maratona de games – facom ufu
3ª maratona de games – facom  ufu3ª maratona de games – facom  ufu
3ª maratona de games – facom ufu
 
Nutec - Manual Usuário
Nutec - Manual UsuárioNutec - Manual Usuário
Nutec - Manual Usuário
 
Facebook Midias Sociais
Facebook Midias SociaisFacebook Midias Sociais
Facebook Midias Sociais
 
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
 
Weblab TCC
Weblab TCCWeblab TCC
Weblab TCC
 
Servidores Web
Servidores WebServidores Web
Servidores Web
 
Potenciação Divide and Conquer
Potenciação Divide and ConquerPotenciação Divide and Conquer
Potenciação Divide and Conquer
 
Qualidade de Software Web
Qualidade de Software WebQualidade de Software Web
Qualidade de Software Web
 
Comercio eletronico 3
Comercio eletronico 3Comercio eletronico 3
Comercio eletronico 3
 
Reconhecimento Automático de Emoções
Reconhecimento Automático de EmoçõesReconhecimento Automático de Emoções
Reconhecimento Automático de Emoções
 
Software Quality Software Testing Laboratory
Software Quality Software Testing Laboratory Software Quality Software Testing Laboratory
Software Quality Software Testing Laboratory
 
Robotica - Artigo1
Robotica - Artigo1Robotica - Artigo1
Robotica - Artigo1
 
Sistema ocr
Sistema ocrSistema ocr
Sistema ocr
 
Wifi
WifiWifi
Wifi
 
ALgoritmo Genético - Escalonamento
ALgoritmo Genético - EscalonamentoALgoritmo Genético - Escalonamento
ALgoritmo Genético - Escalonamento
 
éTica para aristóteles
éTica para aristóteleséTica para aristóteles
éTica para aristóteles
 
Compilador analise lexica
Compilador analise lexicaCompilador analise lexica
Compilador analise lexica
 
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
 
Análise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de EmoçõesAnálise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de Emoções
 

Semelhante a Symbian

Symbian os
Symbian osSymbian os
Symbian osrenan9
 
Programando symbian aula_1
Programando symbian aula_1Programando symbian aula_1
Programando symbian aula_1Talita Carvalho
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionaisSuperTec1
 
M1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxM1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxDoraestevao
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosCharles Fortes
 
UM CURSO DE INFORMATICA BASICA PARA IDOSOS
UM CURSO DE INFORMATICA BASICA PARA IDOSOSUM CURSO DE INFORMATICA BASICA PARA IDOSOS
UM CURSO DE INFORMATICA BASICA PARA IDOSOSdjgsantos1981
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas OperativosJoseVieira75
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional Rodrigo Rodrigues
 
Cópia de apostila nova curso idosos
Cópia de apostila nova curso idososCópia de apostila nova curso idosos
Cópia de apostila nova curso idososPaulo Rosa
 
Cópia de apostila nova curso idosos
Cópia de apostila nova curso idososCópia de apostila nova curso idosos
Cópia de apostila nova curso idososPaulo Rosa
 
Artigo sistemas embarcados 2011
Artigo sistemas embarcados 2011Artigo sistemas embarcados 2011
Artigo sistemas embarcados 2011afranio47
 
Apresentação Semi-Final
Apresentação Semi-FinalApresentação Semi-Final
Apresentação Semi-FinalJordan Claussen
 
Sistemas Operacionais parte 1
Sistemas Operacionais parte 1Sistemas Operacionais parte 1
Sistemas Operacionais parte 1Matheus Brito
 
Introdução a Arquitetura Android
Introdução a Arquitetura AndroidIntrodução a Arquitetura Android
Introdução a Arquitetura AndroidMaycon Viana Bordin
 

Semelhante a Symbian (20)

Symbian os
Symbian osSymbian os
Symbian os
 
Programando symbian aula_1
Programando symbian aula_1Programando symbian aula_1
Programando symbian aula_1
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
 
Progeto pim ii
Progeto pim iiProgeto pim ii
Progeto pim ii
 
So rosa coimbra
So rosa coimbraSo rosa coimbra
So rosa coimbra
 
M1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptxM1_Sistemas Operativos.pptx
M1_Sistemas Operativos.pptx
 
Arquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completaArquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completa
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
 
So cap01
So cap01So cap01
So cap01
 
UM CURSO DE INFORMATICA BASICA PARA IDOSOS
UM CURSO DE INFORMATICA BASICA PARA IDOSOSUM CURSO DE INFORMATICA BASICA PARA IDOSOS
UM CURSO DE INFORMATICA BASICA PARA IDOSOS
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
 
Cópia de apostila nova curso idosos
Cópia de apostila nova curso idososCópia de apostila nova curso idosos
Cópia de apostila nova curso idosos
 
Cópia de apostila nova curso idosos
Cópia de apostila nova curso idososCópia de apostila nova curso idosos
Cópia de apostila nova curso idosos
 
Artigo sistemas embarcados 2011
Artigo sistemas embarcados 2011Artigo sistemas embarcados 2011
Artigo sistemas embarcados 2011
 
Apresentação Semi-Final
Apresentação Semi-FinalApresentação Semi-Final
Apresentação Semi-Final
 
Sistemas Operacionais parte 1
Sistemas Operacionais parte 1Sistemas Operacionais parte 1
Sistemas Operacionais parte 1
 
Introdução a Arquitetura Android
Introdução a Arquitetura AndroidIntrodução a Arquitetura Android
Introdução a Arquitetura Android
 

Mais de Adilmar Dantas

Programação Android Phonegap 1
Programação Android Phonegap 1Programação Android Phonegap 1
Programação Android Phonegap 1Adilmar Dantas
 
Reconhecimento automático de emoções
Reconhecimento automático de emoçõesReconhecimento automático de emoções
Reconhecimento automático de emoçõesAdilmar Dantas
 
Detecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLPDetecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLPAdilmar Dantas
 
Rede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de FacesRede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de FacesAdilmar Dantas
 
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOSBIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOSAdilmar Dantas
 
Alinhamento de Sequencia DNA
Alinhamento de Sequencia DNAAlinhamento de Sequencia DNA
Alinhamento de Sequencia DNAAdilmar Dantas
 
Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Adilmar Dantas
 
Algoritmo clique maximo - Analise de Algoritmos
Algoritmo clique maximo  - Analise de AlgoritmosAlgoritmo clique maximo  - Analise de Algoritmos
Algoritmo clique maximo - Analise de AlgoritmosAdilmar Dantas
 
TCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação RemotaTCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação RemotaAdilmar Dantas
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testesAdilmar Dantas
 
Artigo Certificação Digital
Artigo Certificação DigitalArtigo Certificação Digital
Artigo Certificação DigitalAdilmar Dantas
 

Mais de Adilmar Dantas (14)

Querying nosql stores
Querying nosql storesQuerying nosql stores
Querying nosql stores
 
Programação Android Phonegap 1
Programação Android Phonegap 1Programação Android Phonegap 1
Programação Android Phonegap 1
 
Reconhecimento automático de emoções
Reconhecimento automático de emoçõesReconhecimento automático de emoções
Reconhecimento automático de emoções
 
Detecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLPDetecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLP
 
Rede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de FacesRede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de Faces
 
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOSBIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
 
Alinhamento de Sequencia DNA
Alinhamento de Sequencia DNAAlinhamento de Sequencia DNA
Alinhamento de Sequencia DNA
 
Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino
 
Algoritmo clique maximo - Analise de Algoritmos
Algoritmo clique maximo  - Analise de AlgoritmosAlgoritmo clique maximo  - Analise de Algoritmos
Algoritmo clique maximo - Analise de Algoritmos
 
TCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação RemotaTCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação Remota
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testes
 
Artigo Certificação Digital
Artigo Certificação DigitalArtigo Certificação Digital
Artigo Certificação Digital
 
Certificado digital
Certificado digitalCertificado digital
Certificado digital
 
Symbian so
Symbian soSymbian so
Symbian so
 

Symbian

  • 1. Sistemas Operacionais – Universidade Federal de Santa Catarina Sistemas Operativos para Celulares – Symbian OS Autores Carlos Jorge Lemos Nunes Fábio Rafael Magalhães Malheiro
  • 2. Sistemas Operativos para Celulares – Symbian OS 2 Introdução Num mundo cada vez mais dependente dos dispositivos móveis, surgiu a necessidade de criar sistemas operativos capazes de lidar, e potenciar, todas as funcionalidades e capacidades oferecidas por estes. É neste contexto que surge o Symbian OS, um sistema operativo, presente na grande maioria dos principais modelos de smartphones actuais, estruturado como os sistemas operativos comuns em desktop, multitarefa preemptivo e com memória protegida. O desenvolvimento deste sistema operativo assentou em três grandes regras: a integridade e segurança dos dados do utilizador é primordial, o tempo do utilizador não deve ser desperdiçado, e todos os recursos são escassos.Uma vez que o hardware presente num smartphone tem consideráveis limitações de capacidade quando comparado com um PC estas mesmas limitações devem ser tratadas e geridas pelo sistema operativo de forma a disponibilizar todos os recursos de forma optimizada e eficiente ao utilizador. Com este trabalho e respeitando o âmbito curricular da disciplina de Sistemas Operacionais pretendemos efectuar um estudo das principais características da arquitectura do Symbian OS a nível do controlo de processos, memória, dispositivos de IO e unidades de armazenamento de dados.
  • 3. Sistemas Operativos para Celulares – Symbian OS 3 Índice Introdução ..................................................................................................................................... 2 1.Nucleo ........................................................................................................................................ 4 1.2 Estrutura do Nucleo............................................................................................................. 5 2. Processos e Threads .................................................................................................................. 7 3. Memoria no Symbian OS.......................................................................................................... 8 4. Gerência de Processador ......................................................................................................... 11 5. Entrada e Saída........................................................................................................................ 12 BIBLIOGRAFIA.............................................................................................................................. 15
  • 4. Sistemas Operativos para Celulares – Symbian OS 4 1.Núcleo O Symbian OS era baseado no mesmo núcleo do EPOC, o EPOC Kernel 1 (EKA1). O núcleo EKA1, presente no Symbian OS até à versão 7, além de implementar toda a base do sistema operativo, tinha alguns recursos como multi-programação pré- emptiva e protecção de memória. A partir da versão 8.0 do Symbian OS, passou a ser utilizado um novo núcleo, o EKA2. As principais diferenças e inovações que diferem o EKA2 dos seus antecessores são: • Sistema de tempo real • Múltiplos fluxos de execução • Nanokernel O suporte do sistema de tempo real no EKA2, implica um tempo limite maior para os processos que exigem a prioridade em tempo real. Ele também faz a gestão dos múltiplos fluxos de execução juntamente com os múltiplos processos. O nanokernel é uma camada mais baixa do núcleo que implementa diversas tarefas num contexto reduzido. No Symbian OS o nanokernel tem como principal função, simplificar a supervisão dos fluxos de execução e exclusões mútuas. Porém, não aceita a alocação de memória dinâmica, sendo apenas uma implementação mais simplória destes conceitos. O núcleo também é composto por Dynamic Link Libraries (DLL’s). São bibliotecas carregadas na memória do sistema, com funções básicas para as aplicações. As DLL’s são muito utilizadas no Symbian OS, num total de quase 100 bibliotecas num telefone móvel comum. No Symbiam OS v9.0 toda a interface gráfica do utilizador é baseada nas DLL’s. Há dois tipos de DLL, DLL’s estáticas e DLL’s polimórficas. As DLL’s estáticas são colecções de classes e funções básicas do sistema, ou seja, a base de bibliotecas do sistema operativo. As DLL’s polimórficas funcionam como plugins para as aplicações. O núcleo do Symbian OS implementa todas as classes e funções necessárias para o funcionamento sólido do sistema operativo. Ele também provê toda a implementação e gerência de processos e a alocação de memória do sistema.
  • 5. Sistemas Operativos para Celulares – Symbian OS 5 1.2 Estrutura do Núcleo A plataforma de um smartphone requer que muitos serviços sejam executados em tempo real, mas ao mesmo tempo tem que lidar com a necessidade de disponibilizar um ambiente de operação e interacção similar a um desktop. Para responder a estes dois requisitos de forma adequada o kernel do Symbian Os tem uma estrutura (Figura 1) mais complexa do que o dos sistemas operativos comuns. Consoante as necessidades poderão ser efectuados os mais diversificados percursos dentro do kernel. Por exemplo uma aplicação a correr em modo de utilizador, que solicita uma operação no servidor de arquivos. Esta mesma operação irá efectuar um pedido ao kernel que por sua vez irá requisitar IO em algum dispositivo, que irá fazer uso do nanokernel. Por sua vez se pensarmos numa chamada telefónica, este tipo de operação irá iniciar as funções presentes no RTOS, que irá interagir directamente com o hardware. Figura 1 : Estrutura do kernel do Symbian Os Fonte: Smartphone Operating System Concepts with Symbian OS • A interface que permite a comunicação entre o código e o hardware está dividida em duas partes: 1. “Physical device driver” (PDD) que comunica directamente com o hardware. 2. “Logical Device Driver” (LDD) que estabelece uma interface de comunicação com os níveis superiores de software.
  • 6. Sistemas Operativos para Celulares – Symbian OS 6 Além disto, o kernel consegue interagir directamente com o hardware através da “application-specific standard product” (ASSP). Por fim, todos os componentes que precisem de interagir com o sistema operativo em tempo real podem interagir directamente com o hardware caso corram num modo especial chamado de “Personality layer” • Memory model, é um modelo de como a memória esta organizada num dispositivo e como sistema operativo irá funcionar com esta. • Symbian OS Kernel, depende do nanokernel embora esteja separado das partes responsáveis por lidar com tarefas em tempo real. Implementa os diversos modelos de memória exigidos pela plataforma • Nanokernel, implementa as mais básicas e primitivas partes do Symbian OS e é utilizado maioritariamente pela parte telefónica (responsável pelas envio e recepção de comunicações) do sistema operativo. • Tanto o “real-time OS” como os “personality layers” foram desenvolvidos para implementar a funcionalidade telefónica. O “RTOS” implementa as funções de GSM do smartphone através da ligação directa com o hardware. O “personality layer” permite que o fabricante do smartphone use diferentes implementações a nível da função telefónica (como por exemplo função analógica). • User mode layers, inclui os microkernel servres tal como as aplicações do utilizador . Tal como referido anteriormente estes interagem com o Symbian Os kernel para efectuarem pedidos ou iniciarem operações em kernel-mode.
  • 7. Sistemas Operativos para Celulares – Symbian OS 7 2. Processos e Threads O processo é um programa em execução, seja essa execução uma chamada do próprio sistema ou uma chamada do utilizador. Os sistemas operativos em geral, assim como o Symbian OS, suportam e fazem a gerência da concorrência de processos ou múltiplos processos. O conceito de processo, para Symbian OS, é uma colecção de fluxos de execução que partilham um endereçamento de memória. Essa partilha de memória comum entre processos é limitada no Symbian OS pelo núcleo, por motivos de segurança dos recursos do sistema. O conceito de fluxo de execução é uma entidade em que o núcleo aloca recursos na UCP. Um processo simples é composto por um conjunto de recursos e um fluxo de execução. Multithreading é a execução de um processo composto por vários fluxos de execução que concorrem entre si baseada em prioridades. O núcleo do Symbian OS disponibiliza o recurso de multithreading, onde vários fluxos de execução podem executar paralelamente sem haver a necessidade do controlo dos fluxos de execução explícito no código em execução. O nanokernel do Symbian OS suporta os mais simples fluxos de execução do sistema. O sistema também suporta a gerência e sincronização das nanothreads a partir do nanokernel. As nanothreads utilizam uma pilha, única e simples, do administrador do sistema, ou seja, só pode ser executável no sistema no modo administrador. Os processos e fluxos de execução no Symbian OS, são tratados na forma de multi-programação, a forma já conhecida em sistemas operativos em geral. O sistema possui ainda, internamente no seu núcleo, uma implementação que facilita a gerência dos recursos dos fluxos de execução. Esse recurso basicamente representa uma solução para a limitação dos recursos que esse SO deve tratar.
  • 8. Sistemas Operativos para Celulares – Symbian OS 8 3. Memoria no Symbian OS Uma plataforma operada pelo Symbian OS oferece os seguintes tipos de memória: Random Acess Memory (RAM), Read Only Memory (ROM), Flash Disk interno e cartões de memória. A memória RAM é utilizada durante a execução das aplicações, é nela que os programas e o sistema operativo alocam memória durante a execução dos processos e fluxos de execução. Geralmente os dispositivos móveis tem uma quantidade de memória RAM muito pequena. Parte do sistema operativo Symbian OS fica armazenado na memória do tipo ROM, assim como a sua inicialização. A memória ROM é exclusiva do sistema, o utilizador não pode manipular nem escrever dados nessa memória. O Flash Disk é o disco interno para manipulação e escrita de dados pelo utilizador e pelo sistema de arquivos do sistema operativo. O sistema suporta os sistemas de arquivos comuns nos SO’s da Microsoft , FAT , e para além deste o sistema de arquivos LFFS (Logging Fast File System). O núcleo do Symbian OS é responsável por alocar a memória física, virtual e gerir os recursos físicos da memória RAM, MMU e caches. A alocação de memória segue uma implementação simples, baseada num heap diferenciado em três partes: • Uso de memória pré-alocada com tamanho do heap fixo ou segmentação dinâmica do heap. • Um único fluxo de execução ou múltiplos fluxos de execução com baixo custo do processador. • Alinhamento selectivo de processos ou fluxos de execução. Tal como a maioria dos sistemas, o Symbian OS divide a memória em páginas lógicas e molduras físicas. O tamanho usual para as molduras é de 4KB. Visto que o tamanho da memória poderá atingir os 4GB (por se tratar de um sistema 32-bit) e tendo em conta o tamanho das molduras de pagina facilmente se percebe que se irá obter uma tabela de página com mais de um milhão de entradas. Devidas às limitações do tamanho de memória, não é viável para o Symbian OS dedicar 1MB para a tabela de página, além disso a pesquisa e o acesso a uma tabela de página tão grande provocaria uma enorme sobrecarga ao sistema.
  • 9. Sistemas Operativos para Celulares – Symbian OS 9 Para resolver isto, o Symbian OS adoptou uma tabela de página de dois níveis, conforme demonstrado na figura 2. O primeiro nível, page directory, que é indexado pelos primeiros bits do endereço lógico, fornece uma ligação para o segundo nível, que é um conjunto de tabelas de página. Estas tabelas fornecem uma ligação para uma página específica na memória e são indexados pelos 8 bits do meio do endereço lógico. Por fim a página em memória é indexada pelos últimos 12 bits do endereço lógico. A tradução dos endereços lógicos em endereços físicos é feita por hardware através da MMU e TLB presentes na arquitectura do processador ARM. Figura 2 : Tabela de página multi-nível. Fonte: Smartphone Operating System Concepts with Symbian OS O que é que acontece quando uma pagina não está presente na memoria? No Symbian OS, isto representa uma condição de erro uma vez que todas as páginas de memória pertencentes a uma aplicação devem ser carregadas no momento em que a aplicação é iniciada. Tendo em atenção que o endereçamento do Symbian OS poderá atingir os 4 GB, apesar de ser improvável que um smartphone tenha tal quantidade de memória, poderão ocorrer situações em que uma página referenciada não esteja na memória. Tal situação causaria uma “excepção não tratada” de erro, fazendo com que a aplicação do utilizador fosse encerrada. Molduras de memória são atribuídas a páginas através de uma lista de molduras livres. Se não existirem molduras disponíveis, então ocorre uma situação de erro. Não é
  • 10. Sistemas Operativos para Celulares – Symbian OS 10 possível substituir molduras de memória usadas com páginas de uma futura aplicação. Mesmo que as molduras pertençam a uma aplicação que já não esteja a executar. Isto acontece porque não existe swapping no Symbian OS logo não existe um local para onde possam ser copiadas estas páginas “deslocadas”. Há quatro versões diferentes do modelo de implementação de memória no Symbian OS. Cada modelo foi projectado para certos tipos de configuração de hardware. • Moving Model – Foi concebido para as arquitecturas mais recentes do ARM. Neste modelo a page directory tem 4KB, e cada entrada possui 4 bytes, o que dá um directório de 16 KB. Embora a segmentação não seja explicitamente utilizada existe uma organização para o layout da memória. Existe uma parte para guardar os dados pertencentes ao utilizador, e uma parte para guardar os dados relativamente ao Kernel. • Multiple Model – Modelo concebido para a versão 6 da arquitectura ARM. A MMU nesta versão difere da utilizada nas versões anteriores. Por exemplo, a page directory, requer um manuseamento diferente uma vez que pode ser seccionada em duas partes, cada uma referenciando diferentes conjuntos de tabelas de pagina, user-page tables e kernel-page tables. • Direct Model – Este modelo assume que não existe uma MMU. É um modelo raramente utilizado uma vez que a falta de MMU poderia causar graves problemas de performance. Este modelo é útil para ambientes de desenvolvimento em que por alguma razão seja útil ter a MMU desactivada • Emulator Model – Foi desenvolvido para suportar o emulador do Symbian OS no Microsoft Windows. Tal como seria de esperar este modelo apresenta algumas restrições. O emulador corre como um único processo no Microsoft Windows. O espaço de endereçamento está limitado a 2GB (ao invés dos 4GB). Toda a memoria disponibilizada para o emulador é acessível por qualquer processo do Symbian OS. Não existe protecção de memória. As bibliotecas do Symbian OS são disponibilizadas como DLL’s do Microsoft Windows , cabendo a este manusear a sua alocação e respectiva gestão de memória.
  • 11. Sistemas Operativos para Celulares – Symbian OS 11 4. Gerência de Processador Os celulares têm sua arquitectura de hardware baseada em microprocessadores assíncronos ARM (Advanced RISC Machine) de 32bits. As características principais destes microprocessadores são o tamanho reduzido e o baixo consumo de energia, o que corresponde com os requisitos do Symbian OS. O desempenho alto exigido pelo Symbian OS v9.3 é relativo, entre 100 e 200MHz, quando comparado com os CPUs dos desktops que chegam a 3GHz. As versões mais recentes, baseadas no EKA2, do Symbian OS são projectadas para o microprocessador ARM modelo v5T. Um processo em Symbian OS é um executável que tem o seu próprio espaço na memória, uma pilha e um cabeçalho. O Symbian OS também suporta múltiplos processos e múltiplos fluxos de execução. Todo o processo tem um nome associado ao mesmo, e por padrão é utilizado o nome do arquivo .exe em questão. A partir da oitava versão do sistema que utiliza o EKA2, o Symbian OS inova o tratamento de multi-programação. Para tratar os processos e fluxos de execução utiliza escalonadores tradicionais, que são controlados pelo nanokernel. Alguns processos são considerados de alta prioridade, como o controlo das chamadas telefónicas, aplicações de vídeo e música, animações e outras aplicações que usam protocolos de comunicação. A gerência desses processos é implementada com um FIFO, onde os primeiros processos têm a prioridade mais alta da fila. O escalonamento dos fluxos de execução, seguem essa linha híbrida, onde para cada tipo de processo ou fluxo de execução o sistema implementa um método para gerenciar os seus recursos. O tratamento dos múltiplos fluxos de execução, são tratados no Symbian OS com um escalonador Round- Robin com prioridades (64níveis). O nanokernel implementa, internamente, algoritmos escalonadores Round-Robin com prioridades, limite de tempo de execução e semáforos. A prioridade entre os processos é tratada pelo núcleo, seguindo a prioridade dada a cada processo, seja pelo próprio sistema, seja pelo utilizador, ou seja, pelo programador. O processo chega ao estado final quando termina a sua execução normal ou num processo de kill, quando o processo é encerrado por um outro motivo indicado pelo sistema operativo através de um número inteiro. Neste caso, o processo pode ser interrompido e finalizado de duas formas: kill itself, quando ele encerra a sua execução ou quando ele é encerrado por meio de outro processo. Os processos nesse sistema operativo são tratados internamente no núcleo, ou num nível mais baixo, no nanokernel. Este último, implementa alguns escalonadores tradicionais como o FIFO, Round-Robin e semáforos para controlar a fila de processos e fluxos de execução.
  • 12. Sistemas Operativos para Celulares – Symbian OS 12 5. Entrada e Saída O hardware do sistema como um todo, possui diversos periféricos conectados através de uma interface. Essa interface constitui num elemento fundamental para a comunicação do sistema operativo com esses periféricos, e para isto, usam-se os controladores. O controlador funciona na forma de controlar cada periférico, no intuito de realizar e fazer funcionar as tarefas deste periférico. Cada periférico deve ter um controlador projectado para fazê-lo funcionar. O controlador é responsável por fazer interagir o hardware e o software, no caso o sistema operativo, através das interfaces dos dispositivos. Para fazer a gerência dos processos de entrada e saída, existem diversas técnicas como E/S programada, interrupções, e acesso directo à memória (DMA). O Symbian OS utiliza duas das tradicionais técnicas, interrupções e DMA. O mecanismo de interrupções utilizado no Symbian OS, determina as interrupções no kernel a partir dos sinais emitidos em dois registadores do tipo PIC. Essas interrupções são divididas de duas formas: Interrupt Request (IRQ), ou interrupção normal, e Fast Interrupt Request (FIQ), sendo esta última com maior prioridade sobre as IRQ’s. Essa organização das interrupções pode ser vista na Figura 3.1 Figura 3.1 - Funcionamento das Interrupções no Symbian OS.
  • 13. Sistemas Operativos para Celulares – Symbian OS 13 De acordo com a Figura 3.1, o mecanismo de interrupções do sistema tem dois níveis, separados pelos registadores PIC. O nível 1 (PIC Level 1) tem acesso directo ao processador (CPU). Já no nível 2 (PIC Level 2) existe uma ponte entre o nível 1 e o processador, para acontecer a interrupção do processo de E/S. Como o mecanismo de interrupções não é sempre eficiente, os sistemas utilizam a técnica de DMA, ou acesso directo à memória. Não diferente dos conceitos básicos de SO’s o Symbian OS utiliza também desse mecanismo para agilizar os processos de E/S. A técnica de DMA permite aos periféricos e/ou dispositivos alocar memória directamente sem que exista um processo no CPU para isto. No Symbian OS é comum o uso de DMA em multicanais, onde é permitida, mais de uma transferência de dados de E/S na memória, divididos em canais. Um canal do DMA inicializa o processo de transferência de dados pelo registador do periférico e endereça memória directamente. Os canais são organizados em uma FIFO e controlados pela interface de cada periférico. Na interacção hardware e software, o sistema operativo necessita de controladores dos dispositivos, onde na visão do sistema operativo aplica-se o conceito de drivers de dispositivos ou device drivers. Drivers de dispositivos são um meio das aplicações terem acesso aos recursos dos periféricos através do sistema operativo, sem que seja necessário ao programador implementar códigos de baixo nível para fazer uso desses periféricos. Os drivers de dispositivos são carregados no núcleo do Symbian OS através das DLL’s de um modo dinâmico. A arquitectura desses drivers é divida em duas partes: Logical Device Driver (LDD) e Physical Device Driver (PDD). As aplicações podem utilizar os drivers mais comuns directamente da biblioteca LDD ou caso seja necessário tem o suporte da PDD. A PDD é uma opção na arquitectura dos drivers, e funciona na comunicação somente do hardware com a LDD, ou seja, inatingível para aplicação directamente. No Symbian OS há também extensões para o controlo de outros dispositivos, que já estão compilados nativamente no núcleo do sistema. O subsistema de camadas do Symbian OS e do EKA2 está organizado em diversos blocos modulares, não monolíticos. Algumas camadas associadas ao EKA2, podem ser vistas na Figura 3.2.. O sistema também é projectado para um único utilizador, diferente dos SO’s para PC, como Microsoft Windows, GNU/Linux e Apple Mac OS X.
  • 14. Sistemas Operativos para Celulares – Symbian OS 14 Figura 3.2 – Controlo de dispositivos pelo EKA2 O Symbian OS também é baseado numa arquitectura GUI (interface gráfica do utilizador), com diversos recursos muito flexíveis. Os periféricos disponíveis no hardware dos dispositivos têm que ser geridos, e têm que estar disponíveis para as aplicações e para o utilizador. O controlo de E/S do sistema operativo entra na ponte entre esses dispositivos e o suporte e funcionamento deles para o sistema como um todo.
  • 15. Sistemas Operativos para Celulares – Symbian OS 15 BIBLIOGRAFIA http://en.wikipedia.org/wiki/Symbian_OS http://en.wikipedia.org/wiki/Active_objects Lucas Simões de Carvalho, Marcel Cunha Batista, Vinicius Ulbrich ,Análise de ferramentas para o desenvolvimento de aplicações para Sistema Operacional Symbian. Michael J. Jipping , Smartphone Operating System Concepts with Symbian