Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais de Tempo Real Wellington Cássio Pâmela Raiane Jéssica Luiza Sebastião Realino Como Surgiu os RTOS ? • Os sistemas computacionais estão presentes em diversas áreas. • Novos microprocessadores com novos recursos computa- cionais, operando a frequências maiores, maior capacidade de memória e várias interfaces de comunicação de I/O embutidas num único chip, tudo isso a um custo baixo e acessível. • A evolução tem contribuído com o aumento da complexidade dos projetos de sistemas embarcados, exigido novos níveis de abstração em soluções de software que possam interagir com o hardware da forma mais eficiente possível. • Destaca-se um grupo de sistemas que trabalham com restrições de tempo, chamados Sistemas de Tempo Real. O que é um RTOS ? Um Sistema de Tempo Real é, portanto, o software que gerência os recursos de um sistema computacional, com o objetivo de garantir com que todos os eventos sejam atendidos dentro de suas restrições de tempo e gerenciados da forma mais eficiente possível. O software é responsável pelo gerencia- mento dos recursos computacionais também é chamado de Kernel do Sistema de Tempo Real e conhecido no mercado como RTOS ou Sistema Operacional de Tempo Real. Conceitos: Para entendimento da importância de um Sistema de Tempo Real é precisamos entender alguns conceitos de restrição de tempo para eventos e tarefas computacionais. Os quais são: • Restrições de Tempo • Tarefas • Interações entre Tarefas • Escalonamento de tarefas Restrições de Tempo: Toda tarefa computacional recebe um estímulo (ou evento), que pode ser interno ou externo, realiza o processamento e produz uma saída. Um evento com restrição de tempo possui um tempo limite (máximo) de processamento para que sua saída seja gerada. Restrições de Tempo: Exemplo (Hard Real-Time Systems): Um sistema de radar aeroespacial, que recebe infor- mações de posicionamento das aeronaves, para que possíveis colisões sejam detectadas e evi- tadas. Se o sistema não tratar estas entradas dentro de suas restrições de tempo, poderá causar uma tragédia. Este caso é chamado de “Hard Real-Time Systems”. Hard Real-Time Systems: é aquele que tem um comportamento determinístico, ou seja, o prazo para execução de uma tarefa não pode ser violado. Soft Real-Time Systems: é aquele que também tem o tempo como parâmetro fundamental, mas uma falha é aceitável Exemplo (Soft Real-Time Systems): Um teclado que gera inputs de teclas pressionadas para um sistema microproces- sado. Se o sistema não tratar estas teclas dentro de suas restrições de tempo, o operador poderá ter a sensação de que o sistema “travou”, o que poderá causar até a desistência da uti- lização do produto. Este caso é normalmente chamado de “Soft Real-Time Systems” Tarefas: Tarefas são pequenos trechos de programa com responsabilidades específicas e bem definidas. Cada tarefa possui um conjunto de atribu- tos, dentre eles a prioridade, que deve ser atribuída de acordo com sua importância. É a partir desta prioridade que tentamos garantir com que eventos com restrições de tempo possam ser executados de forma eficiente. Tarefas: Exemplo: Podemos citar como exemplo a leitura de sensores, tratamento de protocolos de comuni- cação, leitura de teclado, acionamento de leds indicativos, escrita em displays, comunicações seri- ais e log de informações. Portanto, um Sistema de Tempo Real é modelado através da divisão da aplicação em um conjunto de pequenas tarefas, com funções específicas, e que interagem entre si. Interações entre Tarefas: Cada tarefa é executada de forma independente, mas elas precisam interagir entre si, pois um Sistema de Tempo Real destinado à execução de múltiplas tarefas que é a característica dos sistemas operacional que permite repartir a utilização do processador entre várias tarefas aparentemente simultaneamente. Interações entre Tarefas: Exemplo: • A tarefa 1 é responsável pela leitura constante dos sensores de pre- sença. • A tarefa 2 é responsável pelo acionamento da sirene. • A tarefa 3 é responsável pelo acionamento da discagem telefônica. • A tarefa 4 é responsável pela lógica de detecção de intrusos do sis- tema de alarme. Supondo que um sensor de movimento tenha sido acionado, a tarefa 1 irá detectar esse acionamento, e precisa notificar a tarefa 4. Esta notificação é feita através do envio de uma mensagem para a tarefa 4. A tarefa 4 irá então receber esta mensagem, e de acordo com sua lóg- ica, irá enviar uma mensagem de acionamento para a tarefa 2, 3 ou para ambas. Este exemplo utiliza a troca de mensagens, como forma de comunicação entre as tarefas. Outro meio de comunicação entre as tarefas são os semá- foros. Enquanto uma tarefa utiliza um dado recurso pode bloquear um semáforo; outra tarefa antes de utilizar esse recurso verifica o estado do semáforo, e se estiver bloqueado, não utiliza o recurso. • Troca de mensagens • Semáforos Escalonamento de Tarefas: Para atender todas as tarefas solici- tadas, dentro de suas respectivas restrições de tempo, o Kernel necessita de algum mecanismo de gerenciamento de tarefas, classificando-as e ordenando de acordo com sua prioridade. O escalonamento de tarefas é uma função realizada pelo Kernel para determinar quando uma tarefa mais importante precisa ser executada. Escalonamento de Tarefas: Para exemplificar o escalonamento de tarefas, analise o seguinte caso de escalonamento: 1. Uma tarefa de prioridade menor está sendo executada. 2. Um evento esperado por uma tarefa de prioridade maior ocorre e causa uma interrupção no processador. 3. O processador salva o contexto da tarefa em execução (registros da CPU) e executa a rotina de tratamento da interrupção (ISR – Interrupt Service Routine). 4. A rotina de tratamento da interrupção completa e chama um serviço do Kernel. 5. O Kernel prepara e executa a rotina de maior prioridade. 6. A rotina de maior prioridade entra em execução. 7. A rotina de maior prioridade chama uma função do Kernel para aguardar por outro evento. Isso faz com que o Kernel seja acionado, e prepare novamente a rotina de menor prioridade para execução. 8. A rotina de menor prioridade entra em execução. Requisitos para Operação: • CPU: A CPU utilizada no projeto pode determinar se você pode ou não utilizar um RTOS no seu projeto. Por exemplo, uma CPU de 4 bits, sem os registradores necessários, ou de baixa frequência, é feita especificamente para sistemas bem simples e de baixo custo, tornando inviável a utilização de um RTOS. • ROM: Quantidade de memória de programa disponível para o projeto. Precisa ser grande o suficiente para armazenar o código do Kernel mais o código da sua apli- cação. Dependendo do Kernel, você pode precisar de memória entre 4K e 200Kb, apenas para o Kernel de RTOS’s mais simples. • RAM: Quantidade de memória disponível para os dados do seu programa. O RTOS utiliza bastante memória para armazenamento das informações de contexto de execução das tarefas no TCB e no stack. O valor da memória RAM deve ser grande o suficiente para suprir as necessidades do Kernel e das tarefas da sua aplicação. • Custo: Tanto o custo do RTOS quanto o custo extra do hardware necessário para suportar o RTOS devem ser levados em consideração. RTOS disponíveis no mercado : • Free RTOS • NetBSD(baseado no UNIX) • Windows CE Embedded • Windows NT Embedded • Tinys OS • uClinux Cada RTOS disponível no mercado possui vantagens e desvantagens. A escolha do melhor sistema dependedos requisitos de hardware e software do produto. Comparação de Alguns Sistemas de Tempo Real : FIM! Wellington Cássio Pâmela Raiane Jéssica Luiza Sebastião Realino
Compartilhar