Национальный технический университет
Украины «КПИ»
Пускай у нас есть
программ, каждая из
которых состоит из
взаимосвязанных
процессов. Матрица приоритетов процессов будет иметь следующий вид:
(5)
Каждый процесс
имеет определённый
приоритет
.и время
выполнения
.
Связанность процессов
задана матрицей
связности
:
|
|
|
|
|
… |
|
|
|
|
|
|
|
… |
|
|
|
|
|
… |
|
|
… |
|
|
… |
|
|
|
|
|
|
|
|
|
… |
|
|
… |
|
|
|
|
|
|
… |
|
|
, (6)
где
і
- суммарное
количество процессов всех программ, при равном количестве процессов в
программах
,
і
– индексы в матрице
связности, которые соответствуют конкретным процессам
,
,
.
Таким образом в системе существуют процессы, результат
которых может быть использован другим потоком. При наличии конкурирующих
потоков нужно не допустить повторного параллельного выполнения процессов. Для
этого нужно использовать метод выравнивания приоритетов для связанных
процессов.
Для всех связанных процессов (
),перед
которыми выполняются процессы с меньшим приоритетом, поднимем приоритет:
, (8)
где
- максимальный приоритет связанных процессов.
Уменьшая время
ответа сервера для одного пользователя можно сильно увеличить время ожидания
для другого пользователя. Учитывая тот факт, что пользователи для нас имеют
одинаковую важность, необходимо ввести еще один критерий оптимальности -
разница между временем ответа сервера для различных пользователей (потоков).
Значение этого показателя вычислим через стандартное отклонение
.
, (9)
где
– количество
программ,
– время выполнения одной программы,
- среднее время выполнения программы.
Этот показатель тогда лучше, когда среднее отклонение
меньше. Получаем оптимизированный алгоритм выбора процесса для выполнения на
каждом шагу:
1. Определяем
связанные процессы
2. Применяем
метод выравнивания приоритетов (8)
3. Предполагаем
исключение из планировщика решенных процессов другим потоком
4. Проверяем
показатели качества (9) и ограничения (4)
5. Если
показатели качества улучшились и при этом не нарушаются наложены ограничения,
то фиксируем шаги 2-3, иначе отменяем эти шаги
6.
Выбираем процесс для выполнения с наибольшим приоритетом.
Если прошлый квант времени выполнялся процесс из этого потока, при этом
существует процесс с таким же приоритетом, отдаем ему право на выполнение
Основной характеристикой быстродействия веб с точки
зрения конечного пользователя является его время ответа. Поэтому сервер будет
тогда оптимальный, когда время ответа для каждого пользователя будет
наименьшим, то есть при выполнении всех программ будет наименьшим. Таким
показателем качества является время выполнения последнего процесса в последней
программе
.
Пусть существует веб-сервер, который одновременно
обрабатывает
запросов (программ).
В каждой программе ему надо выполнить
процессов:
аутентифицировать пользователя (процесс 1), получить общую информацию из базы
данных (процесс 2), сформировать ответ (процесс 3). следующая система потоков с
процессами, которые имеют следующие статические приоритеты и продолжительность
в формате "приоритет; продолжительность ":
Таблица 1
Начальные
приоритеты и длительности процессов
|
|
Программы |
||
|
Процессы |
1 |
2 |
3 |
|
1 |
1;2 |
1;2 |
1;2 |
|
3 |
3;2 |
3;2 |
3;2 |
|
2 |
2;2 |
2;2 |
2;2 |

Рисунок
1. – Временная диаграмма работы системы по методу карусельной диспетчеризации
Время
выполнения алгоритма – 18. Подсчитаем показатель качества:
. (10)
Процесс 2 хоть и имеет больший приоритет чем процесс 1,
но в программах 2 и 3 он вынужден ждать окончания выполнения менее приоритетных
процессов других потоков, поскольку процесс, от которого она зависит не может
быть выполнена. Построим матрицу связности
:
(11)

Применим
предложенный алгоритм и сравним показатель качества системы.
Таблица 2
Приоритеты
и длительности процессов после применения предложенного алгоритма
|
|
Программы |
||
|
Процессы |
1 |
2 |
3 |
|
1 |
4;2 |
3;2 |
3;2 |
|
3 |
4;2 |
3;0 |
3;0 |
|
2 |
2;2 |
2;2 |
2;2 |

Рисунок
2. – Временная диаграмма работы системы по предложенному алгоритму
Время выполнения
алгоритма – 14. Подсчитаем показатель качества:
1. В
этой статье рассмотрены необходимость создания планировщика для веб-сервера.
2. Предложено
использование метода карусельной диспетчеризации и осуществлено его
модификацию.
3. Проведенное
исследование, которое показало эффективность модифицированного метода, который
улучшает показатели работы веб-сервера на 28% и на 572%.
Литература:
1.
Климентьев К.Е. Системы реального времени / Климентьев
К.Е. – Самара, 2008. – С. 21-22.
2.
Егоров. В.Ю. Новые подходы к
диспетчеризации задач в операционных системах. / В.Ю. Егоров // Известия высших
учебных заведений. Поволжский регион. Технические науки. –
2008 – Вып. 2