Problema Reportando La Memoria Con Dispositivos De Sistema Operativo En Tiempo Real



Software Primario: LabVIEW Modules>>LabVIEW Real-Time Module
Versión de Software Primario: 2013
Versión de Software Primario Corregido: N/A
Software Secundario: N/A
Hardware: CompactRIO>>Controllers

Problema:
He estado usando el Nodo de Propiedad de Sistema con mi dispositivo de sistema operativo NI Linux Real-Time y estoy preocupado de la cantidad de memoria física disponible en mi sistema. Con mi código actual, estoy esperando ver mucha más memoria RAM disponible. ¿Qué podrá causar esta disparidad?

Solución:
En un dispositivo con sistema operativo NI Linux Real-Time, el nodo de propiedad de disponibilidad de memoria física (Free Physical Memory) en la API de System Configuration falla en dar un valor preciso de la memoria física disponible en el dispositivo. El manejo de memoria y reportes en los dispositivos con Linux difiere significativamente de los dispositivos corriendo sistemas operativos como Windows o VxWorks. Puede ser difícil tener un simple conteo del uso memoria en el sistema debido al método como la memoria es manejada en un sistema con el sistema operativo de Linux.

Sin embargo, podemos usar las herramientas proporcionadas por el sistema operativo de Linux para hacer un monitoreo del uso de memoria en el dispositivo de tiempo real. Para obtener un conteo certero del uso de memoria, podemos concentrarnos en el proceso que sea ejecutado en el dispositivo y que use la mayor cantidad de memoria. Cuando descargamos una aplicación de tiempo real escrita usando el módulo de LabVIEW Real-Time, esperamos que LabVIEW sea el proceso que use la mayor cantidad de memoria.

Para monitorear una aplicación creada con LabVIEW Real-Time podemos usar el VI System Exec para ejecutar comandos en la consola Linux. El comando cat/proc/$(pidof LVRT)/status | grep RSS devuelve la cantidad de memoria que está asignada al proceso (Resident Set Size del proceso de LabVIEW).

Refierase a la imagen a continuación como ejemplo de cómo se usa este comando. Para ejecutar este código usted necesitará configurar su proyecto de LabVIEW para correr en su dispositivo con sistema operativo de tiempo real y crear un VI con un código como el que se presenta en la imagen de abajo en el Diagrama de Bloques. Adicionalmente, este VI se encuentra adjunto abajo y ha sido guardado en la versión 2013 de LabVIEW.





Figure 1: System Exec VI Shell Command for LVRT's Memory Information



Ligas Relacionadas:
Documento de Soporte 6H2CJRR0: ¿Cómo accedo al "shell" de un controlador con sistema operativo NI Real-Time Linux?
Liga Externa: Determining free memory in Linux (en inglés)
Nota Técnica: Conozca a Fondo NI Linux Real-Time
Nota Técnica: Introducción a NI Linux Real-Time
Documento de Soporte 2MHFIIGU : ¿Cómo Monitoreo el Espacio de Memoria Disponible en mi Controlador de LabVIEW Real-Time?

Archivos Adjuntos:
Memory_RTMemory_RT.vi




Día del Reporte: 06/09/2017
Última Actualización: 07/17/2017
Identificación del Documento: 6IRD67R0