qual é a política global de programação do Linux?

3

Estou aprendendo sistemas operacionais. Tenho uma dúvida. Por exemplo, se a política de agendamento para algum conjunto de processos (conjunto 1) for SCHED_RR e a política de agendamento para algum outro conjunto de processos (conjunto 2) for SCHED_FIFO .

Agora, quando o kernel precisa escolher algum processo desses dois conjuntos, que política de agendamento usa o Linux?

É possível alterar essa política? Se sim, como fazer isso?

    
por anapneo 19.11.2016 / 09:14

1 resposta

3

man sched

Conceptually, the scheduler maintains a list of runnable threads for each possible sched_priority value. In order to determine which thread runs next, the scheduler looks for the nonempty list with the highest static priority and selects the thread at the head of this list.

A thread's scheduling policy determines where it will be inserted into the list of threads with equal static priority and how it will move inside this list.

embora exista mais uma política em tempo real, em que a prioridade não é (de todo?) significativa

In order to fulfil the guarantees that are made when a thread is admit‐ ted to the SCHED_DEADLINE policy, SCHED_DEADLINE threads are the high‐ est priority (user controllable) threads in the system; if any SCHED_DEADLINE thread is runnable, it will preempt any thread scheduled under one of the other policies.

    
por 19.11.2016 / 10:00