Операционная система
Пример: SJF=”shortest job first” (может быть как с вытеснением, так и без него).
Выбирает самое короткое задание, т.е. приоритет обратно пропорционален времени обработки программы. Если вытеснение запрещено, то следующий процесс блокируется. Если вытеснение разрешить, то выбирается процесс с наименьшим временем выполнения, а текущий вытесняется. Если вытеснение разрешено, то “длинным” процессам трудно удерживать работу ЦП, а для “коротких”, наоборот, выгоднее, чтобы вытеснение было разрешено. С 3-ей стороны: вытеснение лучше для коротких процессов, но время затраченное на вытеснение!
Формирование приоритетов. Динамические (статистика, выбираемая попутно) более правильно. Существуют классы правил, которые используют линейно возрастающий приоритет. Каждому процессу присваивается приоритет. Когда процесс находится в очереди готовых процессов, приоритет возрастает с коэффициентом a, и с некоторым коэффициентом b, когда он находится на обработке. В зависимости от взаимодействия используется стратегия FIFO или LIFO.
Замечание. Одна из важнейших задач планирования - занятость ВУ. Процессу можно присвоить более высокий приоритет, когда он активно использует устройство ввода/вывода. В частности приоритет может быть обратно пропорционален длине промежутка времени, с момента его последнего обращения к устройствам ввода/вывода.
Проблемы: у кого низкий приоритет тому долго ждать. Простой класс не использует ни статических ни динамических характеристик для формирования приоритета.
В очереди k процессов. Каждый получает q секунд (квант времени) из kq секунд процессорного времени. Скорость ЦП V=1/k. Длина очереди будет определять быстроту обслуживания процесса.
предыдущаяследующая