Baixe o app para aproveitar ainda mais
Prévia do material em texto
i CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER ESCOLA SUPERIOR POLITÉCNICA BACHARELADO EM ENGENHARIA ELÉTRICA DISCIPLINA DE SISTEMAS EMBARCADOS SISTEMAS OPERACIONAIS DE TEMPO REAL ALUNO – RODRIGO RAMOS PEREIRA PROFESSOR- VINICIUS POZZOBON BORIN, ME. JANDIRA – SP 2020 – FASE I 1 1 INTRODUCAO Um computador, um smartphone ou um tablete são construídos, em seus sistemas lógicos e suas programações, como uma série de níveis, sempre acrescentando ao nível abaixo uma funcionalidade. Falaremos aqui de um dos níveis dessas arquiteturas, nível no âmbito do sis- tema operacional, que nada mais é um conjunto de instruções para realizar a interação de um usuário com um sistema microprocessado. Um sistema operacional é um programa que, do ponto de vista do programador, acrescenta diversas novas instruções e características, acima e além do que o nível de arquitetura do conjunto de instrução (ISA - Instruction Set Architecture) fornece (TANENBAUM, 2013). Sabemos que, em geral, se executa o sistema operacional, em software, mas também podemos faze-lo em hardware. O chamado tempo real em processamento de dados deve atender às necessidades impostas pelo processo que é controlado. Deste modo, em um sistema operacional de tempo real existe um controle de tempo para que as instruções possam ser atendidas. Ou seja, cada atividade do sistema operacional será executada com tempo conhecido e esperado. Esta é justamente a dife- rença entre um Sistema Operacional de Tempo Real a um sistema operacional convencional. O núcleo principal componente de um sistema operacional (kernel) que fica numa camada entre o hardware e o programa do usuário. O núcleo do sistema operacional faz o gerenciamento das tarefas, que nada mais que uma sequência de instruções, como por exemplo, a leitura de um teclado ou sensor. Cada tarefa pode ter uma necessidade e restrição de tempo diferente, e esta é uma das características de um RTOS. 1.1 OBJETIVOS O objetivo desta pesquisa é apresentar os conceitos básicos e enriquecer nosso conheci- mento no assunto de Sistemas Operacionais de Tempo Real, conhecido pela sigla em inglês “RTOS”, de Real-Time Operating System. Este é um assunto de grande importância para o desenvolvimento de sistemas embarcados. 2 RTOS Um RTOS é um sistema operacional de tempo real (Real-Time Operating System), ele minimiza o tempo do desenvolvedor tirando a complexidade do sistema para este, fazendo com que ele se concentre nos principais objetivos do sistema em desenvolvimento. 2 O tempo de resposta de um sistemas de freios ABS parece ser de zero segundos, imediato. As manobras realizadas por um caça da força aérea também, para o piloto, são realizadas ime- diatamente junto ao comando realizado. Esses dois são apenas alguns exemplos da importância de se usar um RTOS em um sistema embarcado. Os RTOS estão presentes em equipamentos que usam um sistema embarcado mais complexo e utilizam periféricos como conexões ethernet, wireless e USB. Eles gerenciam os recursos limitados e atuam em situações das quais o tempo é um parâmetro essencial da aplicação controlada. Então se há restrições de tempo, de maneira que, processamento e seus resultados, são finalizados no momento certo, e é neste momento que temos o deadline. E é no momento em que o final dessa execução é perdido que podemos fazer a divisão de um RTOS. A aplicação de um RTOS é sempre fundamental quando temos uma funcionalidade que precise de executar tarefas concorrentes, e isso pode exigir um alto grau de programação, o que deixa o projeto complexo. Podemos utilizar outros sistemas embarcados para solucionar este problema ou um sistema computacional multi-core, o que, em ambos os casos, acabam aumen- tando muito o custo de um projeto. É importante salientar que Sistemas Operacionais de Tempo Real (Real Time Operating Systems - RTOS) se diferem em alguns aspectos de um Sistema Operacional Genérico (Generic Purpose Operating System - GPOS) como Windows, Mac e baseados em Linux. Existem sistemas operacionais de tempo real que não precisam de inter- rupção periódicas de tempo, operando a partir de eventos assíncronos. Segundo Ganssle (Ganssle 2006) a maioria dos artigos científicos geram a impressão que todo sistema embarcado necessita exclusivamente de um RTOS, porem existe algumas questões que desclassifica eles como sistemas únicos para sistemas embarcados como a falta de suporte e certificação. 3 PILHA DE UM PROCESSADOR Linguagens de programação utilizam o conceito de procedimentos ou métodos e possuem variáveis locais. Elas podem ser acessadas de dentro dos métodos, mas deixam de ter acesso assim que o método volta. Então, em qual partição da memória devemos manter essas variáveis? A solução mais simples que seria dar a cada variável um endereço de memória, não funciona. Se um procedimento for chamado duas vezes, não é possível armazenar suas variáveis em partes absolutas da memória pois a segunda chamada irá prejudicar a primeira. Então usamos uma área reservada da memória, a qual chamamos de pilha. 3 Pilhas, além de conter variáveis locais, elas podem ser usadas para reter operandos durante uma expressão aritmética. Quando usada dessa forma é denominada de pilha de operandos. Para sistemas embarcados a importância da pilha é justamente que, ao instalar-se uma tarefa ou processo que pensa possuir o processador só pra si, ela vai particionar o processador para esta tarefa, ou seja, ela recebe sua pilha no processador, podendo assim ser executada de forma concorrente. 4 NÚCLEO PREEMPTIVO E NÃO PREEMPTIVO Quando temos uma tarefa em execução e ela é interrompida para a execução de outra tarefa de maior prioridade ou quando se expira o tempo de execução da tarefa e esta é interrompida são motivos para a alteração de tarefa. Quem é responsável por gerenciar essas execuções é o núcleo do sistema operacional que pode ser preemptivo ou não preemptivo. Ele é preemptivo quando a tarefa em execução pode ser interrompida a qualquer momento. Já nos núcleos não preemptivo outra tarefa só é executada quando aquela que está em execução desiste de usar o processador. Para evitar a corrupção de dados de tarefas distintas que utilizam uma mesma função em um núcleo não preemptivo podemos usar a marcação de tempo nas linhas de programação do sistema, evitando que uma tarefa não termine de usar a função antes de sua interrupção. Em núcleos preemptivos a interrupção de software é uma forma de evitar a corrupção de dados. 5 BLOCO DE CONTROLE DE TAREFA (TCB) Um bloco de controle de tarefa (TCB) em um RTOS é um conjunto de instruções para o processador. É uma facilidade para o processador executar tarefas de forma organizada, sem sobreposições de tarefas. São blocos armazenados na memória RAM do processador. Nos TCB’s são contidas as seguintes informações: Identificador da tarefa; Nome da tarefa (uma string com um nome fantasia para representa-la); Prioridade da tarefa; Localização e tamanho na memória virtual da tarefa; Ponteiro de pilha de tarefa; 4 Estado relativo ao processador (pronto, executando, suspenso, etc.); Regiões da memória protegida. O contexto da tarefa são as informações que permitem definir o estado da tarefa. Já o TCB é a estrutura de dados dessa tarefa ativa no sistema, onde são armazenadas as informações do contexto e outros dados necessários ao seu gerenciamento. 6 INTERRUPÇÃO As interrupções em um processador permitem que este responda a eventos quando esses ocorrem, o que evita que uma aplicação fique verificando se um evento ocorreu. Como vimos, quando o núcleo é preemptivo ele permite a interrupção da tarefa em qual- quer momento, é por esse motivo que o aninhamento das interrupções deve ser controlado por um núcleo desse tipo.7 CONCLUSÕES Sistemas embarcados estão cada vess mais presentes em nosso dia-a-dia. Essa pesquisa nos mostrou a complexidade de projetar e aplicar um sistema por mais simples que pareça. A im- portância da seleção de qual tipo de arquitetura usaar já mostra que uma aplicação errada pode gerar prejuízos e fatalidades. 5 8 REFERÊNCIAS BIBLIOGRÁFICAS Artigos em periódicos: MAZIERO, C. A. Sistemas Operacionais II - Gerência de tarefas - PPGIA CCET PUCPR http://www.ppgia.pucpr.br/∼maziero - 9 de maio de 2008. Livros: DENARDIN, G. W. Sistemas Operacionais de Tempo Real e sua Apliocação em Sistemas Embarcados - Blucher, 2019. TANENBAUM, A. S., AUSTIN T. - Organização estruturada de computadores. – São Paulo - Pearson Prentice Hall, 2013. Tese/Dissertação/Monografia: BORGES, R. W. Aplicabilidade de sistemas operacionais de tempo real para sistemas embarcados de baixa custo – dissertação de mestrado apresentada à USP São Carlos - 2011
Compartilhar