home

X Real Time Kernel

Funcionalidades do X Real Time Kernel

O X Real Time Kernel oferece ao desenvolvedor um conjunto de funcionalidades a serem empregadas dentro dos programas de aplicação.

Gerência de Tarefas

O X Real Time Kernel permite a programação de múltiplas tarefas concorrentes (threads). Todas as tarefas compartilham a mesma área de dados e heap, mas com uma pilha (stack) por tarefa. As funções para gerência de tarefas são:

  • Criação de tarefas: CreateThread
  • Destruição de tarefas: KillThread
  • Reinício de tarefas: RestartThread
  • Identificação de tarefas: GetTId, GetMyTId, GetTaskName

Escalonamento

O X Real Time Kernel emprega uma política do tipo Round Robin para distribuição do tempo do processador entre as tarefas. Cada tarefa possui um nível de prioridade variando de 0 (maior prioridade) à 7 (menor prioridade). As tarefas são escalonadas obedecendo os níveis de prioridade. As tarefas de maior prioridade, desde que habilitadas, são sempre executadas antes das de menor prioridade. As funções relacionadas com escalonamento são:

  • Liberação espontânea do processador: Yield
  • Mudança de prioridade de tarefa: ChangePriority, ReturnToOriginalPriority

Temporização

O X Real Time Kernel oferece funções permitindo que as aplicações realizem ações em tempos determinados ou controlem suas ações em função do tempo, conforme relacionado a seguir:

  • Leitura do relógio do kernel: GetTime
  • Programação de mensagem: MsgAt
  • Mensagens periódica: PeriodicMsg
  • Desprogramação de mensagem: ClearMsg
  • Temporização: SleepFor, SleepUntil

Comunicação

Para comunicação entre tarefas são disponibilizadas pelo X Real Time Kernel funções permitindo o envio e recebimento de mensagens:

  • Envio de mensagem: Send
  • Recepção de mensagem: Receive
  • Envio de resposta: Reply
  • Envio de mensagem assíncrona: Put
  • Verificação de mensagem: CheckForMsg, CheckPutQueue

Canais de Comunicação

As funções para manipulação de canais de comunicação são:

  • Envio: Put
  • Recepção: Get
  • Monitoração: PipeId, Size, IsEmpty, IsFull

Interrupções de Hardware

O tratamento de interrupções de hardware pode ser feito através das seguintes funções:

  • Registro de rotinas de atendimento: RegisterISR, UnregisterISR
  • Habilitação de interrupções: Enable, Disable
  • Mascaramento de interrupções: MaskHWInt, UnmaskHWInt
  • Configuração de interrupções: ConfigHWInt

Interrupções de Software

O tratamento de interrupções de software pode ser feito através das seguintes funções:

  • Registro de interrupção: Handler
  • Ativação de interrupção: Signal

Semáforos

O emprego de semáforos pode ser feito através das seguintes funções:

  • Solicitação de semáforo: Wait
  • Devolução de semáforo: Signal
  • Verificação de semáforo: Check