Exercício 1


Ligações importantes

Perguntas frequentes

Para o processo pai enviar um signal a todos os seus filhos, devo i) chamar a função kill individualmente para cada processo filho; ou ii) chamar a função kill apenas uma vez usando pid=0 no primeiro argumento?

Ambas as alternativas serão aceites, desde que corretamente implementadas.

Os "outputs" do processo pai e processos filho a correr simulações aparecem todos intercalados no ecrã, o que dificulta a visualização dos mesmos. Deve a solução do 1º exercício resolver esse problema?

Não. Essa limitação está prevista nesta fase do projeto. Essa limitação será eliminada num exercício posterior.

No caso de 'sair agora', os processos filho terminados na sequência do signal enviado pelo processo pai devem ser considerados como 'terminou normalmente' ou 'terminou abruptamente'?

Apesar de ter sido desencadeada por um signal, a terminação do filho no caso do "sair agora" é feita de forma ordeira e usando a função exit. Logo deve ser impresso "terminou normalmente" nesse caso.

Devo usar a função "atrasar" na implementação do comando simular?

Não sendo obrigatório, recomenda-se que a função "simular" recorra às funções já existentes (debitar, creditar e lerSaldo) para acesso aos saldos de cada conta.

Dessa forma, cada acesso feito durante uma simulação é implicitamente atrasado (por via da função atrasar), o que torna mais fácil observar a evolução concorrente dos processos pai e filho; isto é fundamental para compreender se o programa está a sincronizar corretamente os processos no caso dos comandos "sair" e "sair agora".