Я понимаю, как работает планирование первоочередного (не упреждающего) задания.По сути, когда процессор завершит текущее задание, он выберет самое короткое задание в очереди для выполнения следующим.
Это пример, который я нашел в Интернете.
Я пытаюсь понять, как будет выглядеть этот пример, если этодля SJF с будущим прогнозом.Есть много примеров того, как вычислить следующий прогноз [пример] .Но я не могу найти пример, который иллюстрирует, как прогнозируемое время загрузки ЦП будет использоваться для выбора следующего задания для выполнения.
Скажем, Tn - это прогнозируемое время пакета для n-го задания.tn - фактическое время взрыва.Первоначальный прогноз T1 = 5, а = 0,5.
Используя приведенный выше пример, P1 - это первое задание, поэтому ЦП будет загружаться немедленно.Но когда P2 достигает 2, как мы вычисляем T2?
Это T2 = 0,5 * T1 + 0,5 * t1?Но в 2, P1 еще не закончил, как мы узнаем фактическое время t1 для P1?
Редактировать: Как упомянуто @Zain Arshad, T2 может быть вычислено, когда P1 заканчивается в 7. Но в 7,оба P2 и P3 прибыли.То есть Т2 = 0,5 * Т1 + 0,5 * Т1 и Т3 = 0,5 * Т1 + 0,5 * Т1?Тогда какой из P2 и P3 выполнить следующим?
Или у моего понимания есть фундаментальная проблема?