Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
| so:escalonador_por_prioridades [2016/09/27 13:55] – [Escalonamento por prioridades] maziero | so:escalonador_por_prioridades [2023/04/27 20:22] (atual) – maziero | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| + | ====== Escalonamento por prioridades ====== | ||
| + | |||
| + | :!: alterações na interface em 03/ | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | 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 '' | ||
| + | |||
| + | * funções para consulta e ajuste de prioridades, | ||
| + | |||
| + | |||
| + | <code c> | ||
| + | void task_setprio (task_t *task, int prio) | ||
| + | </ | ||
| + | |||
| + | Esta função ajusta a prioridade **estática**((Pode ajustar a prioridade dinâmica também, para que o efeito da mudança seja imediato.)) da tarefa '' | ||
| + | |||
| + | <code c> | ||
| + | int task_getprio (task_t *task) | ||
| + | </ | ||
| + | |||
| + | Esta função devolve o valor da prioridade **estática** da tarefa '' | ||
| + | |||
| + | ===== Observações ===== | ||
| + | |||
| + | * O escalonador deve usar prioridades no estilo UNIX (valores entre -20 e +20, com escala negativa). | ||
| + | * Para que o escalonador funcione corretamente, | ||
| + | * Ao ser criada, cada tarefa recebe a prioridade default (0). | ||
| + | |||
| + | Sua implementação deve funcionar com {{pingpong-scheduler.c|este código}}. A saída da execução deve ser **similar** a {{pingpong-scheduler.txt|este exemplo}} (pequenos desvios são aceitáveis). | ||
| + | |||
| + | <note tip> | ||
| + | No exemplo acima, observe que a tarefa '' | ||
| + | </ | ||
| + | |||
| + | ===== Outras informações ===== | ||
| + | |||
| + | * Duração estimada: 3 horas. | ||
| + | * Dependências: | ||
| + | * [[Gestão de Tarefas]] | ||
| + | * [[Dispatcher]] | ||