EEA-27- P2 - Revisão
25 Questions
3 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

O que ocorre se o software não 'alimentar' o temporizador dentro de um intervalo de tempo especificado?

O temporizador aciona uma ação corretiva.

Qual é o objetivo do temporizador watchdog?

Detectar a falha (por não ser reiniciado) e realizar uma ação predeterminada para remediar a situação, como um reinício do sistema.

Qual é a função da modulação por largura de pulso (PWM)?

Inserir informações em um sinal mediante a modificação de suas características.

Como a implementação digital da modulação por largura de pulso (PWM) é realizada?

<p>Usando um relógio como base para estabelecer o período e a largura de pulso.</p> Signup and view all the answers

Qual é a razão entre a largura do pulso (tempo em nível alto) e período da onda?

<p>Duty cycle.</p> Signup and view all the answers

Quais são as duas desvantagens inerentes às formas de E/S controlada por interrupção e programada?

<p>A taxa de transferência de E/S é limitada pela velocidade do processador e o processador fica ocupado no gerenciamento da transferência de E/S.</p> Signup and view all the answers

O que o módulo de DMA pode fazer para transferir dados de e para a memória?

<p>Imitar o processador e assumir o controle do sistema do processador.</p> Signup and view all the answers

Quando o módulo de DMA precisa usar o barramento do sistema?

<p>Quando o processador não precisa dele, ou forçando o processador a suspender a operação temporariamente.</p> Signup and view all the answers

Qual é o objetivo do acesso direto à memória (DMA)?

<p>Permitir a transferência de dados de e para a memória de forma mais eficiente.</p> Signup and view all the answers

O que é o roubo de ciclo (cycle stealing)?

<p>Uma técnica em que o módulo de DMA força o processador a suspender a operação temporariamente.</p> Signup and view all the answers

Qual é o objetivo das interrupções Inter-Processor Interrupts (IPIs) em sistemas multiprocessados ou multi-core?

<p>Permitir a comunicação entre os processadores ou núcleos no mesmo sistema, coordenar tarefas, sincronizar ações entre processadores, enviar sinais de controle ou notificar outros processadores sobre eventos específicos.</p> Signup and view all the answers

Quais são as funcionalidades do Nested Vector Interrupt Controller (NVIC) em ARM?

<p>Permite a conexão de diversos periféricos ao processador, gerencia interrupções em níveis de prioridade e pode lidar com várias interrupções simultâneas.</p> Signup and view all the answers

Qual é o objetivo das interrupções entre sistemas separados ou entre componentes de hardware?

<p>Permitir a comunicação entre sistemas separados ou entre componentes de hardware, trocar informações ou coordenar ações.</p> Signup and view all the answers

Como o NVIC gerencia as interrupções?

<p>Gerencia interrupções em níveis de prioridade, permitindo que as interrupções mais urgentes sejam atendidas antes das menos prioritárias.</p> Signup and view all the answers

Qual é a função do NVIC em relação às interrupções?

<p>Gerenciar interrupções em níveis de prioridade e lidar com várias interrupções simultâneas.</p> Signup and view all the answers

Quais são os exemplos de tasks do sistema criados quando o kernel é iniciado pela primeira vez?

<p>Inicialização ou startup task, Idle task, Logging task, Exception-handling task.</p> Signup and view all the answers

Por que é necessário que o processador execute a instrução para a qual o contador de programa aponta, mesmo quando nenhuma outra tarefa existe?

<p>Para que o contador de programa sempre aponte para instruções válidas.</p> Signup and view all the answers

Em que estados pode uma tarefa variar?

<p>Ready</p> Signup and view all the answers

O que é o propósito da idle task?

<p>Utilizar os ciclos ociosos do processador.</p> Signup and view all the answers

O que pode acontecer em alguns casos, em vez de executar a idle task?

<p>Uma rotina configurada pelo usuário pode ser executada para implementar requisitos especiais.</p> Signup and view all the answers

Que é uma message queue e qual é o seu propósito em um sistema multitarefa?

<p>Uma message queue é um mecanismo de comunicação e sincronização entre tarefas que permite que tarefas enviem e recebam mensagens de maneira organizada e segura, facilitando a coordenação e o intercâmbio de dados entre diferentes partes de um sistema multitarefa.</p> Signup and view all the answers

Como as tarefas interagem com uma message queue?

<p>As tarefas podem adicionar mensagens ao final da fila e remover mensagens do início da fila.</p> Signup and view all the answers

Quais são as componentes principais de uma message queue?

<p>Uma message queue é composta por um buffer de mensagens, um cabeçalho da fila e uma fila de espera.</p> Signup and view all the answers

Qual é o propósito da fila de espera em uma message queue?

<p>A fila de espera lista as tarefas que estão esperando para enviar ou receber mensagens.</p> Signup and view all the answers

Como as message queues facilitam a coordenação e o intercâmbio de dados entre diferentes partes de um sistema multitarefa?

<p>As message queues permitem que as tarefas enviem e recebam mensagens de maneira organizada e segura, facilitando a coordenação e o intercâmbio de dados entre diferentes partes de um sistema multitarefa.</p> Signup and view all the answers

Study Notes

Temporizador/Contador

  • Em circuitos digitais, vários flip-flops (FFs) são conectados para criar um contador.
  • Conectando 3 FFs, criamos um contador de 3 bits capaz de contar até 7 (000 - 111).
  • Todos os microcontroladores vêm com Timer/Counter em seu chip.

Temporizador

  • Um circuito capaz de medir intervalos de tempo.
  • Pode gerar eventos temporais, por exemplo, para manter o sinal verde em um semáforo por 10 segundos.
  • Pode medir o tempo decorrido entre a ocorrência de eventos, por exemplo, para computar a velocidade de um carro.

Vantagens do Temporizador

  • Precisão ajustável: possibilita a contagem de milissegundos, microssegundos e até mesmo ciclos de clock.
  • Multitarefa: enquanto o delay pausa a execução do programa, os temporizadores continuam operando em segundo plano, permitindo que outras tarefas sejam realizadas enquanto o temporizador está contando ou aguardando um determinado intervalo de tempo.
  • Interrupções: os temporizadores frequentemente têm a capacidade de gerar interrupções após um período definido, o que significa que o processador pode continuar sua operação normal até ser alertado pela interrupção do temporizador.

Medição de Tempo

  • Contando os pulsos que aparecem em um sinal de clock de entrada que possui um período/frequência conhecido.
  • Exemplo: Se a frequência de clock é igual a 1 MHz (período 1µs) e são contabilizados 2000 pulsos, o tempo decorrido é 2 milissegundos (ms).

Características do Temporizador

  • Faixa: máximo intervalo de tempo que um temporizador de 16 bits consegue medir. 65535 x 10^-6 = 65,535 ms.
  • Resolução: mínimo intervalo de tempo que o temporizador consegue medir (período do clock). 1 µs.
  • O sinal top indica que a contagem máxima foi alcançada.

Contador

  • Mesma estrutura interna de um temporizador, porém conta pulsos gerados por outro sinal de entrada no lugar do clock.
  • Por exemplo, a contagem de carros que passam por um sensor.
  • Com um seletor, controlado pelo modo de operação, é possível configurar um dispositivo como temporizador ou contador.

Estruturas Alternativas do Contador

  • Diminuindo a faixa do contador: O valor final da contagem é determinado de acordo com o intervalo de tempo a ser analisado.
  • Aumentando a faixa do contador: Contador em série (cascata) estende o valor máximo da contagem (amplia a faixa).
  • Contador com divisor de frequência: Dependendo dos bits em mode, o sinal de saída do prescaler será semelhante ao relógio de entrada, mas com metade da frequência, ou um quarto da frequência, etc.

Implementação do Temporizador

  • É possível utilizar um processador genérico para implementar um temporizador.
  • Sabendo o número de ciclos que cada instrução consome, basta escrever um laço (loop) que executa uma determinada sequência de instruções.
  • Quando o loop se encerra, sabe-se que um determinado período de tempo (ciclos) se passou.

Temporizador Watchdog

  • É um contador que é regularmente reiniciado pelo software em operação normal do sistema.
  • Se o software não "alimentar" o temporizador (ou seja, não reiniciá-lo) dentro de um intervalo de tempo especificado, o temporizador aciona uma ação corretiva.

Funcionamento do Temporizador Watchdog

  • Se o sistema trava, falha ou entra em um estado inesperado que impeça a renovação do temporizador, o watchdog entra em ação.
  • Ele detecta a falha (por não ser reiniciado) e realiza uma ação predeterminada para remediar a situação, como um reinício do sistema.

Modulação por Largura de Pulso (PWM)

  • Modular: inserir informações em um sinal mediante a modificação de suas características.
  • PWM ajusta o tempo que um sinal periódico com dois níveis (digital), alto e baixo, permanece em nível alto de acordo com a informação a ser inserida.
  • Tempo de nível alto: largura do pulso.
  • Duty cycle: razão entre a largura do pulso (tempo em nível alto) e período da onda.

Implementação Digital do PWM

  • Um relógio é usado como base para estabelecer o período e a largura de pulso.
  • Exemplo: período correspondente a 8 pulsos e tempo de nível alto a 6 pulsos de relógio.

Módulo de E/S

  • O módulo de E/S é responsável pela comunicação entre o dispositivo periférico e o processador.
  • A comunicação envolve comandos, informações de estado e dados.

Função do Módulo de E/S

  • O módulo de E/S realiza armazenamento temporário (buffering) de dados.
  • Isso é necessário devido à diferença de taxa de transferência entre a memória principal e os dispositivos periféricos.
  • Os dados são enviados do processador para o módulo de E/S e, em seguida, para o dispositivo periférico.

Detecção de Erro

  • O módulo de E/S é responsável por relatar erros ao processador.
  • Exemplos de erros incluem erros mecânicos e elétricos, como papel atolado em uma impressora.

Estrutura do Módulo de E/S

  • O módulo de E/S tem uma estrutura de blocos específicos para realizar suas funções.

Técnicas de Operações de E/S

  • Existem três técnicas de operações de E/S: E/S programada, E/S controlada por interrupção e acesso direto à memória (DMA).

E/S Programada

  • Na E/S programada, os dados são trocados entre o processador e o módulo de E/S.
  • O processador precisa permanecer em um ciclo de verificação de estado até que determine que a palavra está disponível no registrador de dados do módulo de E/S.

E/S Controlada por Interrupção

  • Na E/S controlada por interrupção, o módulo de E/S interrompe o processador para solicitar atendimento quando estiver pronto para trocar dados.
  • O processador, então, executa a transferência de dados e retoma seu processamento anterior.

Acesso Direto à Memória (DMA)

  • O DMA é uma técnica mais eficiente que E/S controlada por interrupção.
  • No DMA, um módulo adicional no barramento do sistema assume o controle do sistema do processador e transfere dados de e para a memória pelo barramento do sistema.

Interrupção

  • A rotina de serviço de interrupção (ISR) é comumente chamada de rotina de serviço de interrupção ou manipulador de interrupção.
  • Quando um periférico ativa um sinal de interrupção, os seguintes passos são executados:
    • Uma interrupção é acionada (Interrupt Requests, IRQ);
    • A CPU empilha o registrador PC na pilha e carrega o registrador PC com o endereço do ISR;
    • O processador suspende a execução do código;
    • O processador executa a rotina de serviço de interrupção (ISR);
    • O processador recarrega o valor de PC armazenado na pilha;
    • O processador retoma a execução do código para o estado anterior da interrupção acontecer.

Tipos de Interrupção

  • Interrupção de Software:
    • Produzida por um software;
    • Usada para solicitar ao SO que execute um determinado serviço ou atividade;
    • Um programa normalmente cria uma interrupção de software utilizando uma instrução específica, como INT em assembly x86 ou uma chamada de sistema em uma linguagem de programação de alto nível.
  • Interrupção de Hardware:
    • Chamada de funções (eventos) realizados pelo uC para eventos detectados pelos periféricos;
    • Existe para isso as interrupções de hardware, que são chamadas de funções (eventos) realizados pelo uC para eventos detectados pelos periféricos.

Contextualização

  • Na computação, existe a necessidade de realizar ações com base em eventos, que podem ser classificados como:
    • Internos ao uP/uC (por exemplo, término de um cálculo realizado por um dos núcleos de um processador multicore ou a detecção de um overflow de memória);
    • Externos ao uP/uC (por exemplo, novo pacote oriundo da comunicação ethernet ou a leitura de um sensor conectado a um pino do uC).
  • Vantagens de um programa orientado a eventos:
    • Facilidade de implementação;
    • Facilidade de manutenção;
    • Definição de prioridades;
    • Modularização.

Visão Geral

  • É um mecanismo usado para sinalizar à CPU a ocorrência de eventos importantes relacionados a dispositivos periféricos e outros elementos do sistema.
  • Considera que um microprocessador deve realizar, entre outras tarefas, a leitura e o processamento de dados de um periférico toda vez que este periférico tiver um novo dado.
  • O instante de chegada de novos dados é absolutamente imprevisível da perspectiva do microprocessador / programa em execução.

Pooling vs. Interrupção

  • A principal diferença entre pooling e interrupção é que a CPU verifica os periféricos em intervalos regulares no pooling para verificar se eles solicitam serviços de CPU.
  • Por outro lado, na interrupção os periféricos interrompem a CPU para avisar da necessidade de serviços de CPU.

Rotina de Serviço de Interrupção (ISR)

  • Para cada interrupção deve haver um programa associado a ela.
  • Quando ocorre uma interrupção, este programa é executado para realizar determinado serviço para a interrupção.

Nested Vector Interrupt Controller (NVIC) em ARM

  • O NVIC permite a conexão de diversos periféricos ao processador, cada um gerando interrupções em momentos específicos.
  • Ele gerencia essas interrupções em níveis de prioridade, permitindo que as interrupções mais urgentes sejam atendidas antes das menos prioritárias.
  • Além disso, o NVIC é "vetorizado", o que significa que ele pode lidar com várias interrupções simultâneas e direcioná-las para os respectivos tratadores de interrupção, conhecidos como ISRs (Interrupt Service Routines).

Escalonamento de Processos

  • O escalonador mantém uma lista de processos executáveis.
  • Quando um processo consome seu quantum, ele é colocado no fim da lista.
  • A troca da CPU é feita no momento em que o processo é bloqueado ou finalizado antes de consumir seu quantum.

Escalonamento Round-Robin

  • Cada tarefa executa por um intervalo definido em um ciclo contínuo.
  • Um contador de tempo de execução (quantum) acompanha a fatia de tempo para cada tarefa.
  • Quando o intervalo de tempo para uma tarefa é concluído, o contador é zerado e a tarefa é colocada no final do ciclo.
  • Tarefas recém criadas com a mesma prioridade são colocadas no final do ciclo.

Context Switch (Troca de Contexto)

  • Cada tarefa possui seu próprio contexto, que é o estado dos registradores da CPU necessários sempre que é escalonada para executar.
  • Uma troca de contexto ocorre quando o escalonador muda de uma tarefa para outra.
  • O kernel cria e mantém um bloco de controle de tarefa associado (TCB) para cada tarefa.

Dispatcher (Despachante)

  • O dispatcher é a parte do escalonador que realiza a troca de contexto e altera o fluxo de execução.
  • O dispatcher é responsável por passar o controle para uma das tarefas.

Algoritmos de Escalonamento

  • O escalonador determina qual tarefa é executada seguindo um algoritmo de escalonamento.
  • Dois algoritmos de escalonamento comuns são o escalonamento preemptivo baseado em prioridade e o escalonamento Round-Robin.

Tasks (Tarefas)

  • Na programação sequencial, as instruções são executadas uma por vez, em uma cadeia predefinida de instruções.
  • O kernel cria seu próprio conjunto de tasks do sistema e aloca a prioridade para cada uma a partir de um conjunto de níveis de prioridade reservados.

Idle Task

  • A tarefa ociosa é criada na inicialização do kernel e configurada como menor prioridade.
  • Ela é composta por um loop infinito e executada quando nenhuma outra tarefa pode ser executada ou quando nenhuma outra tarefa exista.
  • O único propósito é utilizar os ciclos ociosos do processador.

Comunicação Inter-Task

  • A comunicação entre tarefas ocorre por meio de primitivas inter-task, que são kernel objects que facilitam o processo.
  • Exemplos de primitivas inter-task: semaphores, message queues, signals, pipes, mutex, etc.

Semaphores

  • Em um sistema multitarefa, as tarefas competem por recursos e devem se sincronizar para compartilhar recursos do sistema.
  • Semaphores são objetos kernel que fornecem serviços de gerenciamento para facilitar o sincronismo.
  • Um semaphore é um kernel object onde uma ou mais threads de execução podem adquirir ou liberar para o propósito de sincronização.
  • Operações básicas de semaphores: pegar (take) e liberar (give).

Tipos de Semaphores

  • Binary (Binário): pode ter o valor “0” ou “1”, é considerado indisponível (empty) quando o valor é “0” e disponível (full) quando o valor é “1”.
  • Counting (Contador): utiliza uma contagem para permitir que ele seja adquirido ou liberado múltiplas vezes.
  • Mutual Exclusion (Mutex) Semaphores: oferece suporte a ownership e recursive locking.

Fila de Mensagens (Message Queues)

  • Message queues são mecanismos de comunicação e sincronização entre tarefas.
  • Permitem que tarefas enviem e recebam mensagens de maneira organizada e segura.
  • Uma message queue é uma estrutura de dados que armazena mensagens em uma ordem específica, geralmente em uma fila FIFO (First In, First Out).

Modelando um Sistema

  • Heurística para projetar um sistema: Identificar objetos ativos com comportamento reativo, atribuir responsabilidades e recursos, identificar eventos do sistema, utilizar diagramas de classe e de sequência, etc.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Description

Entenda como conectam-se flip-flops para criar contadores e como funcionam os Timer/Counter em microcontroladores.

More Like This

Digital Circuits Quiz
16 questions

Digital Circuits Quiz

InfluentialYttrium avatar
InfluentialYttrium
Digital Circuits and Logic Gates Quiz
48 questions
Use Quizgecko on...
Browser
Browser