Professional Documents
Culture Documents
por
DIAS D’ÁVILA
Março de 2016
1
DANIEL TOSTA RÊGO
DIAS D’ÁVILA
Março de 2016
2
SUMÁRIO
1. INTRODUÇÃO 05
2. CARACTERÍSTICAS E EXEMPLOS 06
2.1 ALGUMAS ESTRUTURAS COMUNS PARA A TROCA DE
INFORMAÇÕES 07
3. EXEMPLOS 08
3.1 EXEMPLO 1 08
3.2 EXEMPLO 2 09
4. VANTAGENS 13
5. CONSIDERAÇÕES FINAIS 13
REFERÊNCIAS
3
RESUMO
4
1.0 INTRODUÇÃO
5
implica na degradação do serviço prestado”, tendo como exemplo o suporte à
gravação de CDs ou à reprodução de músicas, que caso aconteça o atraso do
sistema ocorre a perda da mídia em gravação ou falhas na música que está sendo
tocada. E temos o hard real-time systems quando a perda de prazos pelo sistema
pode perturbar o objeto controlado, com graves consequências humanas,
econômicas ou ambientais, como exemplo temos o controle de funcionamento de
uma turbina de avião a jato ou de uma caldeira industrial.
2.0 CARACTERÍSTICAS
6
Há muitos detalhes num Sistema Operacional de Tempo Real que merecem
ser apresentados. O principal é que as rotinas de processamento em geral são
bastante especializadas e curtas, pois devem executar a sua tarefa no menor
tempo possível. Há um forte paralelismo na execução das atividades e um
estabelecimento de prioridades, onde as atividades mais prioritárias interrompem as
menos prioritárias e assumem o controle do processador. A divisão de tarefas em
rotinas especializadas requer que haja alguma forma de sincronismo ou troca de
informação entre elas, por exemplo, para que seja informado que tarefa já foi
concluída ou não por outra rotina.
O sistema operacional de tempo real deve apresentar a previsibilidade, que é
uma importante propriedade de um sistema em tempo-real, que dita seu
comportamento funcional e temporal que deve ser tão determinístico quanto impõe
as especificações do sistema. Além dessa característica tem-se a confiabilidade,
que está relacionada à exatidão no funcionamento do sistema, ou seja, a falha do
sistema é que pode gerar uma resposta fora do tempo esperado.
O RTOS apresentam, também, as seguintes características:
- Utilizam-se diversos processos concorrentes;
- É preciso escalonar os processos e determinar prioridades;
- Existe necessidade de comunicação (sincronizada) entre os diversos processos;
- Existe necessidade de sincronismo entre processos;
- Existe necessidade de sincronismo com eventos externos
- Necessário lidar com diferentes escalas de arquiteturas, desde pequenos
microprocessadores de 4-bits ou 8-bits, até computadores de grande porte
interligados em rede;
- Possuem forte interação com o ambiente externo.
7
- Áreas de troca de mensagens, filas ou buffers: memórias temporárias que com
auxílio dos semáforos permitem a transferência de estruturas de dados maiores
entre as rotinas.
3.0 EXEMPLOS
3.1 EXEMPLO 1
8
flag "buffer vazio" = 0, significa que há dados novos no buffer temporário.
Programa principal:
O programa principal inicialmente testa se o buffer temporário está disponível ou
vazio (flag "buffervazio" = 1);
Se estiver vazio, monta a mensagem numa estrutura temporária (buffer);
Dispara a transmissão do conteúdo do buffer temporário alterando
o flag "buffer vazio" para "não está vazio" (flag "buffer vazio" = 0);
Continua a execução das outras atividades enquanto é realizada a transmissão.
Rotina de Transmissão:
Fica dormente ou então testa periodicamente o flag "buffer vazio";
Se o flag "buffer vazio" indicar que há dados novos (flag "buffer vazio" = 0),
transfere os dados dobuffer temporário para o buffer de transmissão;
Altera o flag de "buffer vazio" sinalizando que o buffer está disponível para novos
dados (flag "buffer vazio" = 1);
Transmite os caracteres, um de cada vez, até transmitir o último;
Sinaliza que "Terminou a transmissão" (flag).
Observe que em geral a rotina de transmissão é programada para ser ativada
por interrupção, de forma que ela não gaste ciclos de máquina enquanto espera o
término de transmissão de um caracter. Assim é aproveitado o hardware do
microcontrolador para realizar tarefas em paralelo com o programa principal.
2.3 EXEMPLO 2
Esse exemplo é baseado num projeto real. Trata-se de uma placa mezanino
cuja função é processar simultaneamente os dados referentes a 4 canais telefônicos
em tempo real de forma a implementar as seguintes funções:
9
Implementação parcial de call-progress, focando na detecção do tom de
"ocupado" e de "linha".
O sistema operacional de tempo real para esse caso foi projetado em camadas,
com prioridades atribuídas decrescentes nas camadas conforme vai crescendo o
índice da camada. O fluxo de dados tem taxas decrescentes das camadas inferiores
para as superiores. Veja na Figura 2. Observe que a comunicação entre as
camadas é realizada através de filas ou buffers circulares, dimensionados de forma
que num regime de atendimento simultâneo de quatro linhas telefônicas, o fluxo
médio de dados nunca provoque o "estouro" dessas filas. A cada buffer estão
associados ponteiros de início e final da fila ("primeira livre") e uma variável
indicando o número de dados que estão na fila.
10
CAMADA 0
Trata basicamente dos eventos gerados externamente ao programa. Há
eventos assíncronos gerados pela placa-mãe e outros síncronos gerados por
temporizadores de hardware. Esses eventos são:
Chegada de mensagem enviada pela placa-mãe. Essa mensagem é inserida na
fila de entrada de mensagens, que será tratada pela CAMADA 1;
Interrupção de hardware com frequência de 10 Hz para a atualização dos
estados de cada linha telefônica;
Interrupção de hardware com frequência de 8 kHz onde são lidos os dados das
4 linhas telefônicas, e
o é realizada a decodificação dos dados recebidos;
o é aplicada uma rotina de cancelamento de eco com filtragem digital
adaptativa;
o o sinal filtrado segue por 3 caminhos:
é utilizado como sinal de erro para cálculo do ajuste dos coeficientes do
filtro adaptativo;
é transferido para a fila que alimenta a CAMADA 1. (Taxa de 8.000
amostras/s);
é novamente codificado e retorna à placa-mãe
CAMADA 1
Realiza o loop principal do programa com funções de pré-processamento dos
sinais entregues pela CAMADA 0 na fila de dados e o tratamento das mensagens
vindas e que são endereçadas à placa-mãe. A CAMADA 0 é composta pelo
encadeamento das seguintes rotinas:
11
endereçada ao detetor de pulsos decádicos. Também repassa
uma mensagem para a placa mãe quando a CAMADA 2 detectar um pulso;
o Descarta dados das filas e atualiza os ponteiros.
Chamada das rotinas que compõem a CAMADA 2
CAMADA 2
Realiza a análise dos dados gerados na CAMADA 1 e gera as saídas
endereçadas à CAMADA 1 ou à placa-mãe. É composta pelas rotinas:
Realiza a análise dos dados para detecção de pulsos decádicos. Gera
mensagens endereçadas à placa-mãe;
Realiza a identificação dos tons de "ocupado" e de linha e sinaliza por meio de
mensagens à placa-mãe.
4.0 VANTAGENS
Baixo preço;
Latência de interrupção reduzida;
Tempo de execução determinístico em todos os serviços do kernel;
Capacidade de gerir pelo menos 20 tarefas em simultâneo;
Criação e eliminação dinâmicas de tarefas;
Serviço de gestão de semáforos
A definição de timeout's e delay's para os serviços do kernel;
13
REFERÊNCIAS
14