40 Questions
Qual é o objetivo principal dos semáforos em um sistema multitarefa?
Sincronizar tarefas para compartilhar recursos
Quais são exemplos de primitivas inter-task?
Semaphores, message queues e pipes
O que é um semaphore-control block?
Um bloco de controle que armazena informações do semaphore
Quais são as duas operações básicas dos semáforos?
Pegar e liberar
Qual é o objetivo da fila de mensagens (message queues)?
Comunicar tarefas utilizando mensagens
Quais são os recursos que podem ser compartilhados entre tarefas em um sistema multitarefa?
Periféricos e memória
Qual é o papel do kernel em um sistema multitarefa?
Gerenciar tarefas e recursos do sistema
Quais são os dois tipos de semáforos?
Binary e count
Para que uma task possa obter um semaphore, qual deve ser o seu valor?
Valor maior ou igual a 1
O que acontece com o valor do semaphore quando uma task o libera?
O valor é incrementado em 1
Qual é o propósito do semaphore de Mutual Exclusion (Mutex)?
Controlar o acesso a recursos compartilhados
O que acontece quando um semaphore binário tem o valor 0?
O semaphore é considerado indisponível
Quem pode interagir com um semaphore binário?
Todas as tarefas do sistema
Por que é importante controlar as interações entre tarefas que utilizam semaphores globais?
Para evitar problemas de concorrência
Qual é o exemplo de uso de semaphore binário mencionado?
UART compartilhado
O que acontece quando uma task obtém um semaphore?
O valor do semaphore é decrementado em 1
Quais são os estados de um mutex?
Desbloqueado e bloqueado
Qual é a propriedade adquirida por uma tarefa quando trava um mutex?
Mutex ownership
O que é o objetivo do recurso Mutex?
Garantir o acesso exclusivo a um recurso compartilhado
Qual é o resultado quando uma tarefa tenta travar um mutex que já está bloqueado?
A tarefa entra em um estado de impasse (deadlock)
Qual é a vantagem de usar um mutex recursivo?
Permite que uma tarefa aninhada possa travar o mutex novamente
Quais são as duas principais diferenças entre um mutex e um binary semaphore?
O estado inicial e a forma como é liberado
Qual é o termo utilizado para descrever a liberação de um mutex?
Unlock
O que é feito quando uma tarefa libera um mutex?
O mutex retorna ao estado desbloqueado
Qual é o principal objetivo de utilizar um semáforo binário para acessar uma mensagem?
Evitar que as mensagens sejam corrompidas por acessos simultâneos
O que ocorre quando a contagem inicial de um semáforo de contagem é 0?
O semáforo é criado no estado indisponível
Qual é o efeito de uma tarefa liberar um token do semáforo de contagem quando todos os tokens foram adquiridos?
O semáforo passa do estado indisponível para o estado disponível
Qual é o exemplo de uso de um semáforo de contagem apresentado no conteúdo?
Pool de conexões
O que é um Mutex?
Um semáforo binário especial
Qual é o recurso ofrecido pelo Mutex que não é oferecido pelo semáforo binário padrão?
Ownership
Qual é o efeito de várias tarefas adquirirem tokens de um semáforo de contagem?
O semáforo passa do estado disponível para o estado indisponível
O que ocorre quando a contagem de um semáforo de contagem é maior que 0?
O semáforo é criado no estado disponível
Quais são os benefícios das filas de mensagens (Message Queues) em um sistema multitarefa?
Facilitam a coordenação e o intercâmbio de dados entre diferentes partes de um sistema
Qual é a estrutura de dados utilizada para armazenar mensagens em uma fila de mensagens?
Fila FIFO (First In, First Out)
Qual é o objetivo do cabeçalho da fila em uma fila de mensagens?
Contém informações sobre o estado da fila
Quais são as tarefas que fazem parte da fila de espera em uma fila de mensagens?
Tarefas que estão esperando para enviar ou receber mensagens
Qual é a vantagem da comunicação assíncrona em uma fila de mensagens?
A tarefa que envia uma mensagem não precisa esperar que a tarefa destinatária processe a mensagem imediatamente
Qual é o papel do buffer de mensagens em uma fila de mensagens?
Armazenar as mensagens a serem trocadas entre as tarefas
Quais são as partes que compõem uma fila de mensagens?
Buffer de mensagens, cabeçalho da fila e fila de espera
Qual é o benefício da utilização de filas de mensagens em um sistema multitarefa?
Facilita a coordenação e o intercâmbio de dados entre diferentes partes de um sistema
Study Notes
RTOS - Sincronização e Comunicação
- A sincronização entre tarefas e a comunicação entre elas ocorre por meio de primitivas inter-task, que são kernel objects que facilitam o processo.
Comunicação Inter-task
- A comunicação entre tarefas é realizada por meio de primitivas inter-task, como semaphores, message queues, signals, pipes e mutex.
- Essas primitivas facilitam a sincronização entre tarefas e permitem que elas compartilhem recursos do sistema.
Semaphores
- Um semaphore é um kernel object que permite que uma ou mais threads de execução adquiram ou liberem para o propósito de sincronização.
- Os semaphores possuem dois tipos de operações básicas: Pega (take) o semáforo para uso e Libera (give) para outra tarefa.
- Existem três tipos de semaphores: Binary, Counting e Mutual Exclusion (Mutex).
Semaphores - Binary
- Um semaphore binário pode ter o valor “0” ou “1”, indicando se ele está disponível ou indisponível.
- Binary semaphores são tratados como recursos globais, acessíveis a todas as tarefas do sistema.
Semaphores - Counting
- Um semaphore contabiliza o número de tokens que ele possui, permitindo que ele seja adquirido ou liberado múltiplas vezes.
- Counting semaphores são utilizados para controlar o número de recursos disponíveis, como o número de conexões simultâneas.
Semaphores - Mutual Exclusion (Mutex)
- Mutex é um binary semaphore especial que oferece suporte a ownership e recursive locking.
- Um mutex é criado inicialmente no estado desbloqueado e pode ser adquirido por uma tarefa, tornando-se bloqueado.
- Quando a tarefa libera o mutex, ele retorna ao estado desbloqueado.
Fila de mensagens (Message Queues)
- Uma message queue é um mecanismo de comunicação e sincronização entre tarefas que permitem que tarefas enviem e recebam mensagens de maneira organizada e segura.
- Ela é 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 todos os objetos ativos com comportamento reativo.
- Atribuir responsabilidades e recursos aos objetos.
- Identificar eventos do sistema.
- Utilizar diagramas de classe e de sequência.
Aula sobre RTOS, abordando tópicos como comunicação inter-task, semaphores, fila de mensagens e modelagem de sistemas. Prof.Dr.Harlei M.A.Leite, ITA.
Make Your Own Quizzes and Flashcards
Convert your notes into interactive study material.
Get started for free