Baixe o app para aproveitar ainda mais
Prévia do material em texto
CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER ESCOLA SUPERIOR POLITÉCNICA BACHARELADO EM ENGENHARIA ELÉTRICA DISCIPLINA DE SISTEMAS EMBARCADOS SISTEMAS OPERACIONAIS DE TEMPO REAL MARIANO ANDRÉ ANDERSON PROF. RAFAEL VILAS BOAS WIECHETECK TAQUARA – RS 2020 - B FASE I 1 1 INTRODUÇÃO O uso de sistemas embarcados tem sido cada vez mais frequente à medida que é neces- sário incorporar certa inteligência em máquinas, equipamentos e dispositivos. Neste contexto destacam-se os sistemas embarcados de tempo real (RTOS) que têm premissa a execução de tarefas com a previsibilidade do tempo para execução. Este documento tem como objetivo trazer uma breve análise sobre a importância de um do RTOS, suas vantagens e desvantagens, o funcionamento da pilha do processador, o bloco de controle de tarefas e as interrupções de um processador. O estudo foi realizado com base em estudos bibliográficos e não tem a pretensão de esgotar o assunto, mas sim trazer elementos relevantes para compreensão e análise de um sis- tema embarcado de tempo real. 1.1 OBJETIVOS Trazer uma breve análise sobre a importância de um do RTOS; suas vantagens e des- vantagens; o funcionamento da pilha do processador; o bloco de controle de tarefas e as inter- rupções de um processador. 2 DESENVOLVIMENTO A primeira etapa do estudo foi realizar uma análise do princípio de funcionamento de um sistema embarcado de tempo real, onde são identificados os componentes principais do sistema. A partir desta análise o estudo foi direcionado a responder as questões estabelecidas no roteiro da atividade prática elaborada para disciplina de Sistemas Embarcados. As questões são apresentadas nos subitens seguintes e as respostas são apresentadas na sequência. 2 2.1 EXERCÍCIO 1 Explique com suas palavras a importância de uso de um RTOS em uma aplicação em- barcada. Devemos sempre usar um RTOS? Quais as vantagens e desvantagens de uso de um RTOS? Um sistema operacional é um programa que funciona como interface entre o sistema computacional e usuário. Um sistema operacional é considerado embarcado quando é desen- volvido para funcionar em sistemas computacionais com poucos recursos de hardware (proces- samento, memória, periféricos de I/O e energia). Os sistemas operacionais de tempo real - RTOS são desenvolvidos para aplicações em- barcadas ondem o tempo é essencial, ou seja, não precisa ter alta velocidade de processamento, mas o tempo de resposta deve ser conhecido ou previsível em qualquer situação durante a exe- cução das rotinas. Um RTOS pode ser considerado: • Crítico: quando a execução de uma tarefa fora do tempo previsto vier causar graves consequências afetando pessoas, economia ou ambiente. • Não-crítico: quando a execução de uma tarefa fora do tempo previsto vier causar a de- gradação de uma informação ou processo sem grandes consequências e que seja aceitá- vel. Os sistemas operacionais de tempo real podem ser utilizados nos mais variados tipos de aplicações, desde os mais simples aos mais complexos, mas é preciso considerar os fatores relacionados ao grau de confiabilidade de acordo com a necessidade de cada aplicação. Sua utilização requer avaliação para que haja equilíbrio entre disponibilidade de hardware, desem- penho de execução, flexibilização na configuração, ferramentas de desenvolvimento e apoio técnico. Entre as vantagens destacam-se a implementação simplificada, baixo custo adicional e comportamento previsível. Em relação às desvantagens podemos citar a operação sequencial, maior dificuldade para tratar eventos imprevisíveis e a implementação de código com escalo- namento manual. 3 2.2 EXERCÍCIO 2 Descreva o que é a pilha de um processador e qual sua utilidade para a concepção de um sistema que possui múltiplos fluxos de execução. Note que em um sistema tradicional, ba- seado em superlaço, existem múltiplos fluxos de execução concorrentes devido às rotinas de tratamento de interrupções. A pilha de um processador é uma estrutura utilizada como elo entre as sub-rotinas de chamada e a rotina principal do programa, isto é, um bloco de posições da memória principal utilizado para repassar os dados necessários para execução da sub-rotina, durante a troca de contexto. A pilha utiliza basicamente 3 endereços da memória: endereço da base da pilha, en- dereço de limite da pilha e o endereço de topo, um registrador especial denominado Stack Po- inter (SP), que tem a finalidade de apontar para o último elemento inserido na pilha. 2.3 EXERCÍCIO 3 Considerando que duas tarefas utilizam uma mesma função, a qual é não reentrante, sugira, pelo menos, uma solução para evitar a corrupção dos dados quando utilizando um: a) Núcleo não preemptivo; b) Núcleo preemptivo. Em um núcleo não-preemptivo nenhum evento externo deve causar a perda de uso do processador. Uma solução alternativa para evitar a corrupção de dados é desligar as interrup- ções, internas e externas, e utilizar um registrador para armazenar a condição de chamada de sub-rotinas, ou seja, se a sub-rotina pode ou não ser executada. Em um núcleo preemptivo um processo em execução pode ser interrompido e ser subs- tituído por outro. Uma alternativa para evitar a corrupção de dados é criar uma seção crítica e não compartilhável. Assim os dados que estavam em uso pelo processo interrompido não po- derão ser acessados pelo processo substituído. 4 2.4 EXERCÍCIO 4 Descreva com suas palavras a finalidade do bloco de controle de tarefa (TCB) no RTOS. Tipicamente, que informações são contidas no TCB? Qual a diferença de TCB e con- texto de uma tarefa? O Task Control Block (TCB) é uma estrutura padronizada pela qual os sistemas embar- cados de tempo real onde ficam armazenadas as informações de controle das tarefas. A imple- mentação do TCB nos diferentes RTOSs podem variar conforme o desenvolvedor. Tipicamente as informações contidas no TCB são: nome da tarefa; estado da tarefa; prioridade da tarefa; ponteiro da pilha; e parâmetros de memória. As tarefas são processos que são executados pelo sistema, conforme suas solicitações. O contexto de uma tarefa inclui o valor dos registrados de CPU, o estado da tarefa e as informações relacionadas à memória. Para uma troca de contexto é necessário salvar o contexto da tarefa antiga e carregar o contexto do novo processo. O con- texto de uma tarefa é armazenado no TCB. 2.5 EXERCÍCIO 5 Explique o que ocorre em um processador quando uma interrupção ocorre. Qual o pa- pel da pilha nesse processo? Por que o alinhamento de interrupções deve ser controlado por um núcleo preemptivo? As interrupções têm a função de interromper o fluxo que está sendo executado pela CPU e desviar o fluxo de processamento para uma sub-rotina em atendimento à solicitação da inter- rupção. A pilha é utilizada para fazer a troca de contexto entre a rotina principal e a sub-rotina a ser executada. Após a execução da sub-rotina, a CPU recarrega as informações da tarefa an- terior, ou a própria rotina principal, armazenadas na pilha e continua a execução do programa do mesmo ponto onde ocorreu a interrupção. O gerenciamento das interrupções é realizado por um núcleo preemptivo fazendo que sejam respeitadas a ordem de prioridade de cada interrupção. Também controla as interrupções que estão ativas ou inativas, conforme determinado pelo desenvolvedor do sistema operacional. 5 3 CONCLUSÕES Um sistema embarcado é sem dúvida algo que está cada vez mais presente nos equipa- mentos e dispositivos eletrônicos. O avanço da tecnologia permite que os sistemas embarcados possam ser desenvolvidos para serem executados em dispositivos o mínimo de recursos de hardware, podendo ser executado desde um simples microcontrolador até um microprocessador mais robusto. O estudo foi realizado com base emestudos bibliográficos e não pretende esgotar o assunto, mas sim apresenta elementos relevantes para compreensão e análise de um sistema embarcado de tempo real. 6 4 REFERÊNCIAS BIBLIOGRÁFICAS GIMENEZ, Salvador Pinillos. Microcontroladores 8051: Teoria do hardware e do sof- tware. Pearson Education: São Paulo, 2002. SILBERSCHATZ, Abraham. Sistemas Operacionais: conceitos e aplicações. 8ª Ed. Campus: São Paulo, 2000. TANENBAUM, Andrew S. Sistemas operacionais modernos. 4ª Ed. Peason Education: São Paulo, 2016. PEREIRA, Fábio. Microcontroladores PIC: Programação em C. Érica: São Paulo, 2003. NICOLOSI, Denys Emílio Campion. Microcontroladores 8051 com linguagem C: prático e didático. 2ª Ed. Érica: São Paulo, 2008. OLIVEIRA, Rômulo Silva de. Sistemas operacionais. 2ª Ed. Sagra Luzzatto: Porto Alegre, 2001. SOUZA, Daniel Rodrigues de. Microcontroladores ARM7: o poder dos 32 bits. Érica: São Paulo, 2006. OLIVEIRA, André Schneider de. Sistemas embarcados: hardware e o firmware na prá- tica. Érica: São Paulo, 2006.
Compartilhar