Наверх Системное программирование
Предыдущий раздел Оглавление Следующий раздел

3.4.3.3. Гарантированное планирование

Совершенно иной подход к планированию заключается в предоставлении пользовате¬лям реальных обещаний относительно производительности, а затем в выполнении этих обещаний. Одно из обещаний, которое можно дать и просто выполнить, заключается в следующем: если в процессе работы в системе зарегистрированы n пользователей, то вы получите 1/n от мощности центрального процессора. Аналогично этому в однопользовательской системе, имеющей n работающих процессов, при прочих равных условиях каждый из них получит 1/n от общего числа процессорных циклов. Это представляется вполне справедливым решением.

Чтобы выполнить это обещание, система должна отслеживать, сколько процессорного времени затрачено на каждый процесс с момента его создания. Затем она вычисляет количество процессорного времени, на которое каждый из них имел право, а именно время с момента его создания, деленное на n. Поскольку также известно и количество времени центрального процессора, уже полученное каждым процессом, нетрудно подсчитать соотношение израсходованного и отпущенного времени центрального процессора. Соотношение 0,5 означает, что процесс получил только половину от того, что должен был получить, а соотношение 2,0 означает, что процесс получил вдвое больше времени, чем то, на которое он имел право. Согласно алгоритму, после этого будет запущен процесс с самым низким соотношением, который будет работать до тех пор, пока его соотношение не превысит соотношение его ближайшего конкурента. Затем для запуска в следующую очередь выбирается этот процесс.

Предыдущий раздел Оглавление Следующий раздел