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
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!
Top Related