Как алгоритм планирования SJF работает как с процессами ЦП, так и с процессами ввода-вывода? В чем разница между FCFS и C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как алгоритм планирования SJF работает как с процессами ЦП, так и с процессами ввода-вывода? В чем разница между FCFS и

Сообщение Anonymous »

Как алгоритм планирования SJF работает как с процессами ЦП, так и с процессами ввода-вывода? В чем разница между SJF и FCFS?
Я попытался реализовать алгоритм SJF, отслеживая следующий пакет процессора. Однако мое время ожидания примерно такое же, как и время ожидания FCFS, поэтому я уверен, что оно неверно.
Насколько я понимаю, FCFS отслеживает, какой процесс завершает свой ввод-вывод. в первую очередь, чтобы запустить пакетную нагрузку ЦП. И я считаю, что SJF отслеживает, какие процессы готовы (еще не в пакете ввода-вывода), и запускает тот, у которого самое короткое задание? Насколько я понял, разница между ними заключалась в том, что FCFS будет проверять только то, что процесс сначала завершает пакет ввода-вывода, а SJF будет проверять только тот процесс, который имеет следующий самый короткий пакет процессора. Пожалуйста, поправьте меня, если я ошибаюсь и в чем я ошибаюсь.
Я знаю, что мой алгоритм FCFS верен, но я очень озадачен тем, почему мой SJF не так, ведь там должно быть 30. + разница во времени ожидания между ними. Я отслеживаю время ожидания одинаково для обоих алгоритмов, переключая только способ загрузки процессов в очередь ЦП. Любые советы или возможные вещи, которые я должен проверить, очень ценятся!
Редактировать: Мой алгоритм для SJF - сначала проверить, выполняется ли какой-либо процесс с его пакетом ввода-вывода. Если да, выберите тот, который имеет наименьшую загрузку процессора, если нет, то выберите тот, который ближе всего к завершению.
Он помещается на второе место в очереди, а затем информация для этого процесса обновляется, а также «текущее время», которое отслеживает общий график всего.
bool done = false;

while (done == false) {

int leastest; // used to keep track of what is the least cpu burst

// used to keep track if there is at least 1 process done with it's cpu burst by the time it loops around
int acounter = 0;
for (int i = 0; i < 8; i++) {
if (p_info.finished_time

Подробнее здесь: https://stackoverflow.com/questions/791 ... esses-what
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Алгоритм планирования FCFS в Python
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Алгоритм планирования FCFS в Python
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Алгоритм планирования FCFS в Python
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Приоритет планирования каждого потока в Linux с политикой планирования по умолчанию (SCHED_OTHER)
    Anonymous » » в форуме C++
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • Приоритет планирования каждого потока в Linux с политикой планирования по умолчанию (SCHED_OTHER)
    Anonymous » » в форуме Linux
    0 Ответы
    50 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»