Você está na página 1de 7

Impresso por Neto Ferreira, CPF 133.439.980-87 para uso pessoal e privado.

Este material pode ser protegido por direitos autorais e não


pode ser reproduzido ou repassado para terceiros. 10/11/2021 23:57:07

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

Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas O
Impresso por Neto Ferreira, CPF 133.439.980-87 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não
pode ser reproduzido ou repassado para terceiros. 10/11/2021 23:57:07

Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas O
Impresso por Neto Ferreira, CPF 133.439.980-87 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e
não pode ser reproduzido ou repassado para terceiros. 10/11/2021 23:57:07

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.

1
Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas O
Impresso por Neto Ferreira, CPF 133.439.980-87 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e
não pode ser reproduzido ou repassado para terceiros. 10/11/2021 23:57:07

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.

2
Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas O
Impresso por Neto Ferreira, CPF 133.439.980-87 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e
não pode ser reproduzido ou repassado para terceiros. 10/11/2021 23:57:07

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;

2
Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas O
Impresso por Neto Ferreira, CPF 133.439.980-87 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e
não pode ser reproduzido ou repassado para terceiros. 10/11/2021 23:57:07

 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.

2
Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas O
Impresso por Neto Ferreira, CPF 133.439.980-87 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e
não pode ser reproduzido ou repassado para terceiros. 10/11/2021 23:57:07

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

2
Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas O

Você também pode gostar