Rede de computadores
QNX
Antonio Carlos dos Santos Tiago Motta Jorge
O que é QNX ?
Sistema operacional de tempo real, multiusuário e multitarefa muito utilizado nos últimos anos Reconhecido por ser confiável, tolerante a falhas e escalável
Usos
Sistemas de controle aéreo Instrumento médicos Sistemas de produção Usinas nucleares Lugares onde uma tela azul não pode aparecer
Empresas que usam QNX
Motorola Correio Americano Audi Chrysler
A história
Desenvolvido por Dan Dogde e Gordon Bell em 1980 na Universidade de Waterloo Inicialmente, chama-se Qunix, derivado de “QuickUnix” Dogde e Gordon fundaram a QSSL, que produz e comercializa o QNX
Filosofia do QNX
Microkernel Processos (serviços ou de usuário) são executados no espaço do usuário com memória protegida Comunicação entre processos por mensagens Uso do POSIX
Outros SO's
Sistemas monolíticos
O microkernel
Extremamente pequeno (~10 KB) Escrito em C Os algoritmos e as estruturas de dados garantem a performance Apenas serviços essenciais estão presentes
Serviços do microkernel
Threads Sinais Passagem de mensagens Sincronização Escalonamento Timer Gerenciamento de processos
Preempção e interrupção
O sistema procura ser totalmente preemptível Apenas durante poucos momentos a preempção é desabilitada Devido à estrutura de microkernel, apenas durante alguns nanosegundos as interrupções são desabilitadas. Isto ocorre apenas no início e no final do procedimento
Totalmente preemptível
Passagem de mensagens
Threads
Unidade de escalonamento e execução do microkernel Dados privados das threads: tid register set stack (no espaço de end do processo) ... Estados possíveis: ready ou blocked
Processos
“Container” de threads Possui pelo menos uma thread Com proteção de memória: Cada processo não interfere no outro
IPC
Sempre entre threads: De um mesmo processo De processos diferentes
Suspensão de threads
Quando ocorre uma suspensão? Kernel call Exceção