Escalonamento por prioridades
 alterações na interface em 03/2023 
Este projeto consiste em adicionar um escalonador baseado em prioridades com envelhecimento ao nosso sistema operacional.
As seguintes operações devem ser implementadas:
- uma função
schedulerque analisa a fila de tarefas prontas, devolvendo um ponteiro para a próxima tarefa a receber o processador. 
- funções para consulta e ajuste de prioridades, indicadas abaixo.
 
void task_setprio (task_t *task, int prio)
Esta função ajusta a prioridade estática1) da tarefa task para o valor prio (que deve estar entre -20 e +20). Caso task seja nulo, ajusta a prioridade da tarefa atual.
int task_getprio (task_t *task)
Esta função devolve o valor da prioridade estática da tarefa task (ou da tarefa corrente, se task for nulo).
Observações
- O escalonador deve usar prioridades no estilo UNIX (valores entre -20 e +20, com escala negativa).
 - Para que o escalonador funcione corretamente, ele deve implementar um esquema de envelhecimento de tarefas (task aging com α = -1). Caso contrário, sempre a mesma tarefa será escalonada para execução. O envelhecimento deve ser implementado dentro do escalonador.
 - Ao ser criada, cada tarefa recebe a prioridade default (0).
 
Sua implementação deve funcionar com este código. A saída da execução deve ser similar a este exemplo (pequenos desvios são aceitáveis).
No exemplo acima, observe que a tarefa 
pang executa com mais frequência que peng, esta executa com mais frequência que ping e assim sucessivamente. Isso mostra claramente a influência das prioridades das tarefas no escalonamento.
Outras informações
- Duração estimada: 3 horas.
 - Dependências:
 
1) 
Pode ajustar a prioridade dinâmica também, para que o efeito da mudança seja imediato.