Controlador de recursos del sistema
Este artículo proporciona información sobre el Controlador de recursos del sistema (SRC), que facilita la gestión y el control de subsistemas complejos.
El SRC es un controlador de subsistema. Los programadores de subsistemas que poseen uno o varios procesos de daemon pueden utilizar servicios SRC para definir una interfaz de gestión del sistema coherente para sus aplicaciones. El SRC proporciona un único conjunto de mandatos para iniciar, detener, rastrear, renovar y consultar el estado de un subsistema.
Además, el SRC proporciona un recurso de notificación de errores. Puede utilizar este recurso para incorporar métodos de recuperación específicos del subsistema. El tipo de información de recuperación incluida sólo está limitado por el requisito de que el método de notificación sea una serie en un archivo y sea ejecutable.
Consulte la información siguiente para obtener más información sobre los requisitos de programación de SRC:
Interacción del subsistema con el SRC
El SRC define un subsistema como un programa o conjunto de programas relacionados diseñados como una unidad para realizar funciones relacionadas. Consulte "Controlador de recursos del sistema" en Gestión de sistemas operativos y dispositivos para obtener una descripción más detallada de las características de un subsistema.
Un subservidor es un proceso que pertenece a y está controlado por un subsistema.
El SRC opera en objetos de la clase de objeto SRC. Los subsistemas se definen en el SRC como objetos de subsistema; subservidores, como objetos de tipo de subservidor. Las estructuras asociadas con cada tipo de objeto están predefinidas en el archivo usr/include/sys/srcobj.h .
El SRC puede emitir mandatos SRC contra objetos a nivel de subsistema, subservidor y grupo de subsistemas. Un grupo de subsistemas es un grupo de subsistemas especificados por el usuario. La agrupación de subsistemas permite controlar varios subsistemas invocando un único mandato. Los grupos de subsistemas también pueden compartir un método de notificación común.
El SRC se comunica con subsistemas enviando señales e intercambiando paquetes de solicitud y respuesta. Además de las señales, el SRC reconoce los sockets y los tipos de comunicación de cola de mensajes IPC. Hay varias subrutinas disponibles como una API de SRC para ayudar a programar la comunicación entre subsistemas y el SRC. La API de SRC también da soporte a la comunicación de programación entre los programas cliente y el SRC.
El SRC y el mandato init
El SRC es operativamente independiente del mandato init . Sin embargo, el SRC está pensado para ampliar la funcionalidad de generación de procesos proporcionada por este mandato. Además de proporcionar un único punto de control para iniciar, detener, rastrear, renovar y consultar el estado de los subsistemas, el SRC puede controlar las operaciones de subsistemas individuales, soportar el control del sistema remoto y registrar las anomalías del subsistema.
De forma operativa, la única vez que el mandato init y el SRC interactúan se produce cuando el daemon srcmstr (maestro SRC) está incorporado en el archivo inittab . De forma predeterminada, el daemon srcmstr está en el archivo inittab . En este caso, el mandato init inicia el daemon srcmstr durante el inicio del sistema, como con todos los demás procesos. Debe tener autorización de usuario root o estar en el grupo del sistema para invocar el daemon srcmstr .
Compilación de programas para interactuar con el daemon srcmstr
Para permitir que los programas interactúen con el daemon srcmstr , debe incluirse el archivo /usr/include/spc.h y el programa debe compilarse con la biblioteca libsrc.a . Este soporte no es necesario si el subsistema utiliza señales para comunicarse con el SRC.
Operaciones de SRC
Para utilizar la funcionalidad SRC, un subsistema debe interactuar con el daemon srcmstr de dos maneras:
- Debe crearse un objeto de subsistema para el subsistema en la clase de objeto de subsistema SRC.
- Si un subsistema utiliza señales, no es necesario que utilice subrutinas SRC. Sin embargo, si utiliza colas de mensajes o sockets, debe responder a las solicitudes de detención utilizando las subrutinas SRC.
Todos los subsistemas SRC deben soportar el mandato stopsrc . El SRC utiliza este mandato para detener subsistemas y sus subservidores con las señales SIGNORM (stop normal), SIGFORCE (stop force) o SIGCANCEL (cancelar sistemas).
El soporte del subsistema es opcional para los comandos startsrc, lssrc -l, traceson, tracesoff y refresh, los informes de estado largo y estado de subservidor, y el mecanismo de notificación SRC.
Prestaciones de SRC
El SRC proporciona el siguiente soporte para el programador del subsistema:
- Una interfaz de mandatos común para dar soporte al inicio, la detención y el envío de solicitudes a un subsistema
- Un punto central de control para subsistemas y grupos de subsistemas
- Un formato común para las solicitudes al subsistema
- Una definición de subservidores para que cada subservidor se pueda gestionar tal como se define de forma exclusiva en el subsistema
- La capacidad de definir métodos de notificación de errores específicos del subsistema
- La capacidad de definir respuestas específicas del subsistema a solicitudes de estado, soporte de rastreo y renovación de configuración
- Un único punto de control para dar servicio a las solicitudes de subsistema en un entorno informático de red