Голод и конвои могут происходить обоими алгоритмами. Самое простое голодание может быть смоделировано заданием, входящим в этот цикл (надеюсь, это не UDB):
while (1) {
}
В FCFS эта задача никогда не откажется от процессора, поэтому все задачи, стоящие за ней, будут голодать. В системе, основанной на приоритетах, эта же задача будет истощать каждую задачу с более низким приоритетом.
Конвои могут быть более широко признаны как проблема конфликта ресурсов; одна задача имеет ресурсы (ЦП), а другие задачи должны ждать, пока это не будет сделано с ней. В системе на основе приоритетов это проявляется в инверсии приоритетов , где задача с высоким приоритетом блокируется, поскольку для нее требуется ресурс, принадлежащий задаче с более низким приоритетом. Есть способы смягчить их, включая протокол наследования приоритетов и потолок . В отсутствие этих механизмов задачи, борющиеся за ресурс, будут образовывать конвой, как в fcfs; в отличие от fcfs, задачи, не относящиеся к ресурсу, могут выполняться по желанию.
Стремление к быстроте реагирования, пропускной способности и справедливости часто расходится, поэтому отчасти у нас нет правильного решения проблем планирования.