A maior rede de estudos do Brasil

Grátis
6 pág.
ATIVIDADE PRÁTICA RODRIGO 1329431

Pré-visualização | Página 1 de 2

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.