Estou com um trabalho sobre processos e preciso imprimir de forma gráfica a relação entre eles, essas relações são da seguinte forma
Um processo nasce de outro(s) em um momento especifico
Um processo pode estar encerrado ou rodando
Podem existir 2 ou 1 processos iniciais que começam sozinhos no tempo 0
Processos podem mudar de estado com o tempo
Um processo só nasce de outro(s) que estejam em execução
(opcional) Cada processo tem uma prioridade
Esse é o esboço de como seria um gráfico solicitado.
Na imagem o tempo corre de baixo para cima, a faixa azul seria o futuro e a parte cinza o passado, a barra preta entre os dois o tempo t atual, as barras brancas são os processos e as linhas pretas as relações entre eles, os traços pretos dentro do processo seriam as mudanças de estado, a parte de prioridade eu estava pensando em usar a largura ou cor do retângulo para indicar a prioridade, as linhas vermelhas seriam apenas para indicar o tempo naquela altura (tipo a primeira linha indica o tempo t = 1 seg, a segunda t = 2 seg...).
As informações dadas de cada processo são:
-Tempo t onde o processo foi iniciado
-Identificador do(s) processos pai(s)
-Tempo k onde o processo foi encerrado (NULL caso ainda esteja em execução)
-Tempos U de mudança de estado (pode ser representado apenas um inteiro que começa em zero e vai sendo incrementado a cada mudança de estado)
Antes de usar os dados devem ser verificada a consistência dos dados (um processor nascer de um processo já encerrado por exemplo é proibido), essa parte é tranquila.
Gostaria de saber se alguém tem uma indicação de alguma biblioteca ou ferramenta que possa ajudar na criação desses gráficos? Pode ser em qualquer linguagem mais minha preferência é Python e/ou Javascript que são as linguagens que eu já estou usando.