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:
scheduler
que analisa a fila de tarefas prontas, devolvendo um ponteiro para a próxima tarefa a receber o processador.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).
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).
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.