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 DA COMPUTAÇÃO DISCIPLINA DE SISTEMAS EMBARCADOS ATIVIDADE PRÁTICA RTOS SISTEMAS OPERACIONAIS EM TEMPO REAL PROFESSOR VINICIUS POZZOBON BORIN, ME SANTOS - SP 2020 SUMÁRIO 1 INTRODUCAO ..................................................................................................................... 1 2 RESULTADOS E DISCUSSÕES ..................... ERRO! INDICADOR NÃO DEFINIDO. 4 CONCLUSÕES ..................................................................................................................... 1 5 REFERÊNCIAS BIBLIOGRÁFICAS .............................................................................. 4 1 1 INTRODUCAO Os sistemas embarcados são softwares embutidos em microprocessadores a fim de executarem tarefas utilizando dos recursos do hardware onde o sistema está embarcado. Pode- mos encontrar exemplos de sistemas embarcados em equipamentos de medição de temperatura, controle de pressão de um processo ou de nível de um vaso. Devido às dificuldades de escalo- namento, qualidade de entrega e baixa performance dos sistemas embarcados tradicionais, os Sistemas Operacionais em Tempo Real (Real Time Operational Systems - RTOS) foram desen- volvidos para resolver estes problemas em casos onde o sistema embarcado é responsável por executar múltiplas tarefas com diferentes contextos de hardware, como sensores, atuadores, outros equipamentos analógicos e também o seu próprio processador. Onde antes dos RTOS, tarefas concorrentes e ciclos de operação síncronos e assíncronos geravam problemas de per- formance do sistema e até mesmo erros e divergência de dados e comportamentos resultantes. 2 EXERCÍCIOS 2.1 EXERCÍCIO 1 Com o foco em sistemas embarcados mais complexos, onde os recursos de hardware são maiores e em mais quantidade, os RTOS têm como seu principal compromisso o prazo de entrega. Baseando-se no tempo, e a partir deste parâmetro ocorrer a decisão entre interrupção e escalonamento, as tarefas são sincronizadas e, portanto, o processamento é mais adaptado e o número de tarefas agregadas ao sistema é maior e mais aproveitado. Um Sistema Embarcado em Tempo Real é caracterizado pela sincronização de ta- refas e seu comportamento previsível. Neste tipo de sistema é mandatório e vantajoso a utiliza- ção de interrupções de tarefas, há possibilidade de troca das tarefas em execução quando ne- cessário e o tempo determinar esta ação. Além da implementação ser mais simplificada existem certos pontos negativos no uso do RTOS. Este tipo de aplicação é utilizado apenas em sistemas embarcados complexos, onde há a necessidade de integração e divisão de recursos em diferen- tes tarefas a serem executadas pelo mesmo software embarcado. Isso o faz ser mais caro pois conta com maiores recursos de hardware e maior processamento. Por fim, como último detalhe, quando não temos o tempo como principal base de atuação e execução, não temos um bom funcionamento do sistema, pois é completamente dependente deste fator. Somando isso à real necessidade e complexidade do sistema a ser desenvolvido, o RTOS não se faz válido quando há apenas aplicações singulares e básicas. 2.2 EXERCÍCIO 2 A pilha é basicamente uma forma de utilização de memória. As tarefas armazenam suas variáveis e seus registradores em uma determinada região da memória dedicada para exe- cução de tarefas. Essa região é distribuída dentre as tarefas de forma que cada tarefa terá seu espaço designado, ou seja, sua pilha de execução. Os dados utilizados para alternância de tarefas e mudança de contextos, também ficam armazenados nesta pilha. O funcionamento é simples, baseando-se em um sistema com múltiplas tarefas impostas ao processador, a última rotina é a primeira a executada. 2.3 EXERCÍCIO 3 Existem casos nestes sistemas em que uma determinada função é compartilhada por diferentes tarefas. Considerando essas situações, existem mecanismos utilizados para evitar corrupção dos dados utilizados pelas diferentes tarefas. Em um contexto onde a tarefa sendo executada necessita ser interrompida pois o tempo de execução foi expirado ou uma nova tarefa com prioridade maior é levantada, o pro- cesso de mudança de tarefa em execução e interrupção da tarefa é executado pelo núcleo do sistema. O núcleo pode ser classificado entre preemptivo ou não preemptivo. No primeiro caso a tarefa está suscetível às interrupções em qualquer momento, onde no segundo caso a nova tarefa só será iniciada quando a tarefa atual não requisita mais ações do processador e disponi- bilize o recurso. Considerando essas interrupções e trocas de tarefas, nos sistemas com núcleo pre- emptivo dispõe de interrupção de software e nos casos de núcleo não preemptivo, podemos utilizar de marcação de tempo nas linhas de programação a fim de evitar que a tarefa atual nunca desocupe os recursos do processador causando travamento. 2.4 EXERCÍCIO 4 O bloco de controle de tarefa dos Sistemas em Tempo Real é um organizador de instruções do processador, para que o processador execute as instruções de forma que não há sobrecarga ou interpolação de tarefas diferentes. Os blocos TCB, como são chamados, estão presentes na memória RAM do processador. Um TCB detém das seguintes informações em seu bloco: identificação da tarefa, nome da tarefa, prioridade, localização (endereço em memória), tamanho da tarefa e estado da tarefa (pronto, suspenso, em execução, em espera). O que basicamente diferencia um TCB de um contexto de tarefa é que o bloco TCB contém as informações de contexto da tarefa, dados necessários para o gerenciamento da tarefa e também as informações de identificação da tarefa para o processador. Já no contexto de tarefa, temos as informações com os quais são definidos o estado da tarefa propriamente. 2.5 EXERCÍCIO 5 Quando há uma interrupção, o processador interrompe a tarefa em execução e exe- cuta o tratador de interrupções, que é parte do Sistema Operacional. Após o processo de trata- mento finalizado a tarefa é retomada. A pilha atua para armazenamento das informações atuais da tarefa interrompida, na qual serão retornados os dados após a retomada da tarefa que foi interrompida pelo sistema. A funcionalidade preemptiva de núcleo se caracteriza pela possibi- lidade de interrupção temporária da tarefa atual para execução de uma outra tarefa com priori- dade maior, sendo assim, este tipo de núcleo é mais apropriado para um processo de interrupção e tratamento das tarefas envolvidas neste evento. 3 CONCLUSÃO Após todas as pesquisas e propriedades encontradas em um RTOS e seus projetos, vimos a complexidade da programação e de projeto desses sistemas. Com a evolução da tecno- logia na indústria com mais dados gerados, tratados e analisados nas empresas, vemos a real necessidade da atuação desses sistemas e o por quê sua demanda tem aumentado com o tempo. As necessidades estão aumentando e sistemas capazes de realizar multitarefas, guiadas pelo tempo e realizando tarefas de diferentes contextos é o que soluciona estas questões. Com certeza o custo ainda é algo de peso para projetos e avaliação de viabilidade de uso, porém, mesmo com este contra, as necessidades estão sendo levantadas e com esse tipo de solução se torna vantajoso e competitivo entre as diferentes empresas do mercado. O tempo é dominante em ambos os lados. 4 REFERÊNCIAS BIBLIOGRÁFICAS DENARDIN, G. W. Sistemas Operacionais de Tempo Real e Sua Aplicação em Sistemas Embarcados. Blucher, 2019.
Compartilhar