Controlador de recursos do sistema
Este artigo fornece informações sobre o Controlador de Recursos do Sistema (SRC), o que facilita a gestão e o controle de subsistemas complexos.
O SRC é um controlador de subsistema. Programadores de subsistema que possuem um ou mais processos de daemon podem utilizar os serviços do SRC para definir uma interface de gerenciamento de sistema consistente para suas aplicações. O SRC fornece um único conjunto de comandos para iniciar, parar, rastrear, atualizar e consultar o status de um subsistema.
Além disso, o SRC fornece uma facilidade de notificação de erro. Você pode usar esta facilidade para incorporar métodos de recuperação específicos do subsistema. O tipo de informação de recuperação incluído é limitado apenas pelo requisito de que o método de notificação seja uma string em um arquivo e é executável.
Consulte as informações a seguir para saber mais sobre os requisitos de programação do SRC:
Interação do subsistema com o SRC
O SRC define um subsistema como um programa ou conjunto de programas relacionados projetado como uma unidade para executar funções relacionadas. Consulte "Controlador de Recursos do Sistema" em Sistema operacional e gerenciamento de dispositivos para uma descrição mais detalhada das características de um subsistema.
Um subservidor é um processo que pertence e é controlado por um subsistema.
O SRC opera em objetos na classe de objetos SRC. Os subsistemas são definidos para o SRC como objetos do subsistema; subservidores, como objetos do tipo subservidor. As estruturas associadas a cada tipo de objeto são predefinidas no arquivo usr/include/sys/srcobj.h
O SRC pode emitir comandos SRC contra objetos nos níveis de subsistema, subservidor e grupo de subsistema. Um grupo de subsistema é um grupo de quaisquer subsistemas especificados pelo usuário. Os subsistemas de agrupamento permitem que vários subsistemas sejam controlados, invocando um único comando. Os grupos de subsistemas podem também compartilhar um método de notificação comum.
O SRC se comunica com subsistemas enviando sinais e trocando pacotes de solicitação e resposta. Além dos sinais, o SRC reconhece os soquetes e tipos de comunicação de filas de mensagens IPC. Um número de subroutines estão disponíveis como uma API SRC para auxiliar na comunicação de programação entre os subsistemas e o SRC. A API SRC também suporta a comunicação de programação entre os programas clientes e o SRC.
O SRC e o comando init
O SRC é operacionalmente independente do comando init . No entanto, o SRC tem o objetivo de estender a funcionalidade de desova de processo fornecida por este comando. Além de fornecer um ponto único de controle para iniciar, parar, rastrear, atualizar e consultar o status dos subsistemas, o SRC pode controlar as operações de subsistemas individuais, suportar controle remoto do sistema e falhas do subsistema de log.
Operacionalmente, a única vez que o comando init e o SRC interagem ocorre quando o daemon srcmstr (SRC master) está inserido dentro do arquivo inittab . Por padrão, o daemon srcmstr está no arquivo inittab . Neste caso, o comando init inicia o daemon srcmstr na inicialização do sistema, como acontece com todos os outros processos. Você deve ter autoridade de usuário root ou estar no grupo do sistema para chamar o daemon srcmstr .
Compilando programas para interagir com o daemon srcmstr
Para ativar programas para interagir com o daemon srcmstr , o arquivo /usr/include/spc.h deve ser incluído e o programa deve ser compilado com a biblioteca libsrc.a . Esse suporte não é necessário se o subsistema usar sinais para se comunicar com o SRC.
Operações SRC
Para fazer uso da funcionalidade SRC, um subsistema deve interagir com o daemon srcmstr de duas maneiras:
- Um objeto do subsistema deve ser criado para o subsistema na classe de objetos do subsistema SRC.
- Se um subsistema usa sinais, ele não precisa utilizar subroutines SRC. No entanto, se ele usar filas de mensagens ou soquetes, ele deve responder a pedidos de parada usando as subroutines SRC.
Todos os subsistemas SRC devem suportar o comando stopsrc . O SRC usa este comando para parar subsistemas e seus subservidores com os sinais SIGNORM (stop normal), SIGFORCE (stop force) ou SIGCANCELAR (sistemas de cancelamento).
O suporte ao subsistema é opcional para os comandos startsrc, lssrc -l, traceson, tracesoff e refresh, status longo e relatório de status do subservidor, além do mecanismo de notificação do SRC.
Recursos de SRC
O SRC fornece o seguinte suporte para o programador do subsistema:
- Uma interface de comando comum para suportar iniciar, parar e enviar solicitações para um subsistema
- Um ponto central de controle para subsistemas e grupos de subsistemas
- Um formato comum para os pedidos ao subsistema
- Uma definição de subservidores para que cada subservidor possa ser gerenciado já que ele é definido exclusivamente para o subsistema
- A capacidade de definir métodos de notificação de erros específicos do subsistema
- A capacidade de definir respostas específicas do subsistema a pedidos de status, suporte de rastreio e atualização de configuração
- Um único ponto de controle para atendimento de solicitações do subsistema em um ambiente de computação em rede