Gerente de execução postergada de processos
02/2003
Prof. Alba
Título: Gerente de execução postergada de processos
Especificação: O presente trabalho consiste da implementação de um gerente de execução postergada de processos. O mecanismo a ser implementado possui função similar ao comando at existente no Unix. Vamos ter no mínimo 2 processos: processo de escalonamento de execução e processo de execução de processos.
1) Processo de escalonamento de execução: Será executado via shell.
1.1) Sintaxe: executa_postergado : parâmetro obrigatório, a ser fornecido no formato hh:mm. Especifica o delay de execução em relação à hora corrente.
: parâmetro obrigatório, a ser fornecido como um inteiro n. Especifica o número de vezes que o comando será executado.
: nome do arquivo executável a ser executado postergado
1.2) Comportamento: Se não houver parâmetro inválido, é atribuído um número de job único à tupla , , , que é colocada em uma estrutura de dados compartilhada. Ao final da execução, o processo de escalonamento da execução imprime o número do job e a tupla.
1.3) Exemplos: 1) executa_postergado 1:00 3 hello_world Admitindo que são 15:00, executa o programa hello_world às 16:00, 17:00 e 18:00
2) executa_postergado 1:30 1 teste Admitindo que são 15:00, executa o programa teste às 16:30
2) Processo de execução de processos: Roda em background.
2.1) Sintaxe: Não possui
2.2) Comportamento:
É acordado cada vez que for necessário executar um processo escalonado para execução postergada. Verifica a estrutura de dados compartilhada à procura do processo a executar. Se o número de vezes for 1, retira o processo da estrutura. Senão, decrementa o número de vezes de 1. Recupera o nome do arquivo executável e cria um processo para executá-lo.
2.3) Exemplo: 1) Às 16:00 temos a seguinte configuração na estrutura de dados:
job arq_exec ddmm vezes incr 5