Autor Tema: Bloqueos en RTOS  (Leído 655 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Roman

  • PIC10
  • *
  • Mensajes: 1
Bloqueos en RTOS
« en: 29 de Octubre de 2015, 22:39:45 »
Buenas noches a todos, espero me puedan ayudar.

En el capitulo 8 del libro "An Embedded Software Primer" el autor recomienda la siguiente estructura de tarea:

==================================================

vtaska.c

!! Aquí se declaran datos estáticos privados

void vTaskA (void)
{
!! Aquí, se declaran más datos privados, sean estáticos o locales
   
!! Código de inicialización, si es necesario.

while (FOREVER)
{
!! Espera por una señal del sistema (eventos, cola de mensajes, etc.)
   
switch (!! Tipo de señal)
{
case !! señal tipo 1:
.
.
.
break;
   
case !! señal tipo 2:
.
.
.
break;
.
.
.
}
}
}
=========================================================

 e indica sus ventajes, una de las cuales dice:

- La tarea se bloquea en un sólo lugar. Cuando otra tarea pone una solicitud en la cola de esta tarea, la tarea no se encuentra detenida a la espera de un evento que pueda o no ocurrir oportunamente. (Inclusive, idealmente la tarea no se bloquea a causa de semáforos en ninguna parte, ya que todos sus datos son privados, aunque esto sea una regla que a menudo se rompa.)

Mi pregunta es:

A qué se refiere con: "La tarea se bloquea en un solo lugar".

¿En que casos las tareas se bloquearian en mas de un lugar? ¿Algún ejemplo?

De antemano muchas gracias por la respuesta.

Nota: El libro de origen esta en ingles.



 

anything