qnx - sistema operacional tempo real

32
QNX Sistema Operacional em Tempo Real

Upload: claudio-f-pirasol

Post on 01-Jul-2015

632 views

Category:

Documents


29 download

TRANSCRIPT

QNXSistema Operacional

em Tempo Real

Sumário1. Apresentação

1.1. Definindo o QNX

2. Conceitos

2.1. Sistema de tempo real

2.2. Sistema embarcado

2.3. Microkernel, Kenel Monolít ico, Exokernel

2.4. Posix

3. Estrutura do QNX

3.1. Arquitetura Microkernel

3.2. Comunicaão entre processosć

3.3. Escalonador

3.4. Gerenciador de Processos

3.5. Genciador do Sistema de Arquivos

3.6. Gerenciador de Disposit ivos

3.7. Gerenciador de Rede

1. Apresentacão

1.1 Definindo o QNX

Sistema de tempo realSistemas embarcadosArquitetura em microkernelPOSIX

2. Conceitos

2.1. Sistemas de Tempo Real2.2. Sistemas embarcados2.3. Arquitetura em microkernel2.4. POSIX

2. Conceitos

2.1. Sistemas de tempo real

- Tarefas crít icas realizadas em tempo hábil- Consequências crít icas em caso de falhas- SOTR x Sistemas embarcados

2. Conceitos

2.2. Sistemas embarcados

- Encapsulado pelo disposit ivo- Requisistos específicos x Tarefas bem definidas

- Arquitetura simplif icada- Recursos limitados- Geralmente ausência de parts mecânicas (confiabilidade e economia de energia)

Ex: Equipamentos médicosEquipamentos de aviacão / Controle de Tráfego AéreoTelefones CelularesPDA'sSistemas de mísseis

2. Conceitos

2.3 Arquitetura em microkernel

- Kernel – Centro sistema operacional- Controle de acesso a hardware, gerenciamento de processos

Diversos cenários/ apliacacões - > diferentes t ipos de kernel:

- Monolít ico- Microkernel- Híbrido- Exokernel

2. Conceitos

2.3 Arquitetura em microkernel

- Monolít ico

Bloco únicoNecessidade de recompilacãoConsumo desnecessário de recursos

2. Conceitos

2.3 Arquitetura em microkernel

- Microkernel QNX!!!

Kernel reduzidoTarefas extremamente básicas: escalonamento, gerec. MemóriaServers (instanciados em nível de usuário)

2. Conceitos

2.3 Arquitetura em microkernel

- Híbrido

Microkernel contendo código não- essencial no nível do kernel

2. Conceitos

2.3 Arquitetura em microkernel

- Exokernel

Estrutura vert icalizadaSistema tradicionais: abstracão nível de hardwareExokernel: liberdade de acesso a mais baixo nível

2. Conceitos

2.4. POSIX

- Portable Operating System Interface X(Unix)- Padronizacão IEEE – API software – variantes Unix

- Interface de linha de comando e scripts (ex: Korn Shell)- awk, ed, grep, ...- Controle de I/ O- Gerenciamento de threads- etc

3. Estrutura do QNX

A eficiência do QNX deve- se a 2 princípios:

- Arquitetura em microkernel- Comunicacão de processos baseada em mensagens (IPC)

3. Estrutura do QNX

3.1. QNX Microkernel

O microkernel é muito pequeno, sendo armazenado nele somentecomponentes essenciais como: temporizadores, escalonador, gerenciadorde memória.

Os outros componentes ficam armazenados numa área segura da memória

O microkernel se dedica essencialmente a duas funcões:

- Passagem de mensagens- Escalonador

3. Estrutura do QNX

Diz- se que muito do poder, simplicidade e elegância do QNX deve- se aomodelo de comunicacão entre processos baseado em mensagens.

A mensagem permite sincronizacão através de requisicão de confirmacão e ou resposta

3. Estrutura do QNX

Comunicacão entre Processos

Existem 3 t ipos de mensagens:- Mensagens- Proxies- Sinais

3. Estrutura do QNX - Escalonador

O QNX suporta 32 níveis de prioridade preemptivas e oferece

escolha de algorít imo de escalonamento para processos com mesma prioridade

FIFO

Round-Robin

Adaptat ivo

Servidores definem prioridade

Gerenciador de ProcessosTrabalha próximo ao Microkernel mas funciona com outro processo

Cria processos

Controla os serviços fundamentais aos processos

Primitivas para criação de Processos

fork() – cria um processo igual ao processo chamador. Compartilha o mesmo código e herda todos os dados.

exec() – o novo processo criado substitui o processo chamador.

spawn() – cria uma novo processo, f ilho do processo chamador

o fork() e o exec() estão definidos por POSIX, enquanto que spawn() é original do QNX.

Herdando do pai

opcionalsimsimsession IDopcionalopcionalsimenvironment variablesnãonãosimsignal handlersopcionalopcionalsimignored signalsopcionalopcionalsimsignal masknãosimnãopending signalsnãosimnãofile locksopcionalopcional simopen f ilesnãosimnãoprocess IDspawn() exec() fork() Artigo Herdado

Cliclo de Vida dos ProcessosCriação

Consiste e alocar um ID para o novo processo e configurar as informações do seu ambiente (Herança)

Carregando

É feito pelo loader thread. Apesar de residir no gerenciador de processo o carregador roda sob o ID do processo, deixando o Gerenciador livre enquanto carrega o processo

Cliclo de Vida dos ProcessosExecutanto

Uma vez carregado o processo compete pelos recursos da CPU, inclusive com o processo PAI.

Terminando

um sinal é enviado para o processo terminando- o

o processo invoca o exit() , explicitamente ou pela ação de retorno do main()

Estados dos Processos

READY

BLOCKEDSEND- blocked RECEIVE- blocked REPLY- blocked SIGNAL- blocked SEMAPHORE- blocked

Estados dos ProcessosHELD – sigstop()/ sigcont(), não pode usar a CPU

WAIT- blocked - wait() ou waitpid(), aguardando status de processos filhos

DEAD - zombie processSPAWN_NOZOMBIE flag

Estados dos Processos

TemporizadoresMuito utilizado por aplicações de tempo real

Implementado em Hardware – SO simula vários temporizadores lógicos

O QNX provê as seguintes funções:

Criar t imer - t imer_create()

Remover t imer - t imer_delete()

Configurar t imer - qnx_ticksize()

Ler t imer - t imer_gett ime()

Tratadores de InterrupçãoQNX provê chamadas de sistemas que permitem a escrita em linguagem de alto nível de tratadores de interrupção

Tratadores residem fora do Kernel

Instalação e desinstalação dinâmica de tratadores de interrupção

Métricas

1522,6386/ 33

76,75486DX4

4,42,6Pentium/ 100

4,31,95Pentium/ 133

Latência de Interrupção

Chaveamento de contextoProcessador

Tempo em microsegundos

Monitoração de Processos críticos

Para conseguir uma disponibilidade elevada, o QNX tem como base um princípio simples:

Examinar se demora menos tempo reiniciar um único componente do que restaurar o sistema inteiro. Se o QNX encontrar um problema, ele pode imediatamente terminar e restaurar o sistema em alguns mile-segundos não precisando reiniciar. Por que ele consegue isolar a falha de maneira precisa.

3.4. Gerenciador de Sistema de Arquivos

FsysPOSIX- Compatível

leitura, escrita, abertura, fechamento

Arquivos regularesDiretoriosLinks simbólicosPipesArquivos especiais de bloco

Propriedade de arquivos (user, group, other)Permissão de arquivos (read, write, execution)

3.7. Gerenciador de Rede

Reforco a funcionalidade do sistema de mensagens primit ivas extendendo agora a propagacão para máquinas remotas.

Três característ icas básicas avancadas:- Incrementa o throughput via balanceamento de carga- tolerância a falha via conectividade redundante- bridging entre redes QNX

Dinamicamente alocado

4. Referências

http:/ / www.qnx.com

http:/ / www.openqnx.com

http:/ / en.wikipedia.org/ wiki/ QNX

Obrigado!