Você está na página 1de 5

Sistemas Embarcados

Atividade Prática 2023


Prof. Vinicius Pozzobon Borin, Me.

ATIVIDADE PRÁTICA

1. OBJETIVO

Este trabalho visa enriquecer seu conhecimento no assunto de Sistemas


Operacionais de Tempo Real, assunto estre de suma importância no
desenvolvimento de sistemas embarcados.

Responda aos questionamentos impostos neste documento de maneira


dissertativa.

Após o término do relatório, o aluno deverá entregar em um ARQUIVO


ÚNICO NO FORMATO PDF no AVA, no ícone TRABALHOS.

O intuito desta atividade é que você escreva com as suas palavras sobre
os assuntos solicitados.

É importante ressaltar que é considerado plágio quando se usa um texto


exatamente igual a um já existente. Acima de 5 palavras idênticas e na
mesma sequência em uma frase, essa frase é considerada que foi plagiada.
Em um trabalho acadêmico, deve-se ler diversos textos de referência e
reescrever com as suas palavras tudo o que foi entendido. É possível fazer
citação de trechos de um texto, mas mesmo com citação é preciso ter o
cuidado para que o seu trabalho não seja uma cópia idêntica (PORTAL
EDUCAÇÃO, 2018).

2. MATERIAL UTILIZADO

 Pesquisa em bases de dados confiáveis, livros e afins.


 Não use referências de sites, especialmente Wikipedia e afins, pois não são
científicos.
 Livro recomendado sobre o assunto (disponível na nossa Biblioteca Virtual):
Gustavo W. Denardin. Sistemas Operacionais de Tempo Real e sua
Apliocação em Sistemas Embarcados. Blucher, 2019.

Prof. Vinicius Pozzobon Borin,


Me.

1
Sistemas Embarcados
Atividade Prática 2023
Prof. Vinicius Pozzobon Borin, Me.

3. EXERCÍCIOS

Resolva os algoritmos abaixo seguindo todas as instruções listadas neste


documento. Todas as respostas podem ser encontradas de maneira direta (ou
indireta) no livro base sugerido neste documento. A leitura de alguns capítulos
deste livro se faz necessário, portanto.

Exercício 1:

Explique com suas palavras a importância de uso de um RTOS em uma


aplicação embarcada. Devemos sempre usar um RTOS? Quais as vantagens e
desvantagens de uso de um RTOS?
Um RTOS é um sistema operacional para aplicações em tempo real em
sistemas embarcados. Sua importância está em garantir que a aplicação
atenda às necessidades de tempo real da tarefa. O RTOS gerencia tarefas,
garante confiabilidade, eficiência e flexibilidade na adição ou remoção de
tarefas e mudança de prioridades. O uso de um RTOS é crucial para garantir
que a aplicação funcione de forma confiável, eficiente e previsível.
A decisão de usar um RTOS depende dos requisitos específicos da
aplicação embarcada. Se a aplicação requer um processamento em tempo
real, um RTOS pode ser uma boa escolha, pois garante que as tarefas sejam
executadas no momento certo e de forma confiável. No entanto, se a aplicação
não requer tempo real ou possui um baixo nível de complexidade, um RTOS
pode não ser necessário e pode ser suficiente utilizar um sistema operacional
mais simples.
O uso de um RTOS pode trazer vantagens como garantir que cada tarefa
seja executada no momento certo, confiabilidade, eficiência e flexibilidade. No
entanto, pode apresentar desvantagens, como aumento da complexidade do
sistema, overhead e aumento do custo em comparação com sistemas
operacionais mais simples. A escolha de usar um RTOS deve ser feita com
base nos requisitos específicos da aplicação e nas necessidades do sistema.

Exercício 2:
Prof. Vinicius Pozzobon Borin,
Me.

2
Sistemas Embarcados
Atividade Prática 2023
Prof. Vinicius Pozzobon Borin, Me.

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, baseado 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 área de memória usada para
armazenar dados temporários e variáveis locais de funções. Em sistemas com
múltiplos fluxos de execução, cada tarefa ou thread tem sua própria pilha
separada. A pilha controla o fluxo de execução do programa, armazena
endereços de retorno e gerencia interrupções no sistema. A pilha é essencial
para o funcionamento do sistema e permite que os dados temporários sejam
armazenados e recuperados corretamente.

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;


Uma abordagem possível seria implementar um esquema de bloqueio
mútuo, em que as tarefas esperam a outra terminar de executar a
função antes de começar a executá-la. Por exemplo, uma tarefa pode
solicitar acesso exclusivo à função e esperar até que o acesso seja
concedido antes de executar a função. Enquanto isso, a outra tarefa
teria que esperar até que a primeira tarefa libere o acesso à função
antes de tentar executá-la. Isso garantiria que a função não seja
executada simultaneamente por ambas as tarefas, evitando a
corrupção dos dados.

b) Núcleo preemptivo;
Em sistemas com núcleo preemptivo, a solução para evitar a corrupção
dos dados em uma função não reentrante é geralmente implementar
mecanismos de exclusão mútua para garantir que apenas uma tarefa
possa acessar a função em um determinado momento. Existem várias
maneiras de implementar exclusão mútua, como semáforos, mutexes
ou monitores. Por exemplo, pode-se usar um mutex para proteger o
acesso à função. Quando uma tarefa deseja acessar a função, ela deve
primeiro adquirir o mutex. Se o mutex já estiver bloqueado por outra
tarefa, a tarefa atual será colocada em espera até que o mutex esteja
disponível.

Prof. Vinicius Pozzobon Borin,


Me.

3
Sistemas Embarcados
Atividade Prática 2023
Prof. Vinicius Pozzobon Borin, Me.

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 contexto de uma tarefa?

O TCB é uma estrutura de dados usada pelo RTOS para gerenciar


informações sobre uma tarefa, armazenando seu ID, prioridade, tempo de
execução, estado de bloqueio e contexto de registro. Ele permite que o RTOS
controle as tarefas de forma eficiente, decidindo qual deve ser executada em
seguida e salvando e restaurando o contexto durante trocas de contexto. Além
disso, o TCB fornece informações como: seu ID, estado (ativo, suspenso,
bloqueado ou em espera), prioridade, ponteiro de pilha, contador de
programa, contexto de registro, recursos alocados, tempo de CPU, tempo de
espera e lista de tarefas bloqueadas. As aplicações podem usar para tomar
decisões em tempo de execução e ajustar a execução da tarefa de acordo com
as necessidades do sistema.

Exercício 5:

Explique o que ocorre em um processador quando uma interrupção


ocorre. Qual o papel da pilha nesse processo? Por que o aninhamento de
interrupções deve ser controlado por um núcleo preemptivo?
Quando ocorre uma interrupção em um processador, a execução normal
do programa é interrompida e o processador entra no modo de interrupção,
salvando o contexto atual da tarefa em execução na pilha. A rotina de
tratamento de interrupção correspondente é executada e, quando concluída, o
contexto da tarefa é recuperado da pilha e a execução normal do programa é
retomada. Em sistemas com várias interrupções, o aninhamento de
interrupções pode ocorrer, levando a problemas de segurança e perda de
dados. Em um núcleo preemptivo, é necessário controlar o aninhamento de
interrupções para garantir que as interrupções sejam tratadas em ordem de
prioridade e que a execução normal do programa não seja interrompida por
interrupções de baixa prioridade, usando técnicas como a desabilitação
temporária de interrupções de baixa prioridade ou o uso de níveis de
interrupção. O aninhamento de interrupções deve ser controlado por um
Prof. Vinicius Pozzobon Borin,
Me.

4
Sistemas Embarcados
Atividade Prática 2023
Prof. Vinicius Pozzobon Borin, Me.

núcleo preemptivo porque em um sistema com várias interrupções ocorrendo


simultaneamente, uma interrupção pode ocorrer enquanto outra interrupção
ainda está sendo tratada. Isso pode levar a problemas de segurança, perda de
dados e corrupção de recursos compartilhados. Para evitar esses problemas, é
necessário controlar o aninhamento de interrupções para garantir que as
interrupções sejam tratadas em ordem de prioridade e que a execução normal
do programa não seja interrompida por interrupções de baixa prioridade.

Prof. Vinicius Pozzobon Borin,


Me.

Você também pode gostar