Для координации использования одиночных или фиксированных множеств ресурсов несколькими вычислительными процессами используются семафоры. Проблема производительности семафоров заключается в том, что при взаимодействии процессов возникают требования доступа к общим ресурсам, которые приводят к столкновению транзакций, поскольку они вступают в конфликт друг с другом. Конфликты приводят к потерям производительности операционной системы. Наиболее характерно это проявляется в параллельных и мультипрограммных системах, когда взаимодействующие процессы реализуются в независимых процессорах, которые могут потребовать одновременно общий ресурс. Если ресурс требуется слишком большому числу процессов, то они ставятся в очередь. При этом, запросы удовлетворяются по принципу: «первым пришел - первым обслужен» (FIFO) [1].
Модель для оценки временных потерь. Пусть вычислительная система содержит один общий ресурс, доступный множеству процессов, выполняемых в n процессорных узлах и защищаемый семафором S.
Аналитическая модель n-процессорной системы с одиночным общим ресурсом для оценки потерь производительности из-за конфликтов за доступ к семафору, при использовании концепции планирования типа FIFO, изображена на рисунке а. Модель представлена в виде разомкнутой стохастической сети массового обслуживания (СМО), состоящей из n (S1,...,Sn) СМО, моделирующих процессорные узлы, и одноканальной СМО (Sn+1), которая моделирует семафор. На вход n-процессорной системы поступает поток запросов на выполнение процессов с интенсивностью λ0 = 1/T, где T - средняя длительность интервала между поступающими на вход запросами.
Поток запросов распределяется предварительным планировщиком по процессорным узлам с вероятностями р01,...,роn, представленным в виде графа вероятностей передач стохастической сети, изображенной на рисунке б. Предположим для упрощения, что потоки запросов на выполнение процессов на входе многопроцессорной системы распределяются равновероятно по процессорным узлам, т.е. р01 = ... = роn = 1/n (рисунок б). Заявки, получившие обслуживание в семафоре, с равной вероятностью возвращаются на продолжение обслуживания в процессорные узлы, следовательно, pn+1,1 =...= pn+1,n = 1/n.
a б
Схема аналитической модели n-процессорной системы (а) и её граф передач (б)
Время ожидания заявки в сети оценивается выражением [2]:
Tw = α1tw1 + α2tw2 + ... + αntwn + αn+1 twn+1, (1)
где αi = λi / λ0 - коэффициент передачи сети (i = 1, ..., n + 1); twi - время ожидания в i-й СМО.
Интенсивности потоков заявок определятся системой уравнений:
где pji - вероятность передачи из СМО Sj в СМО Si; i, j = 0, 1, ..., n + 1.
В работе показано, что планирование на основе приоритетов дает выигрыш по времени ожидания в очереди к семафору почти в 2 раза, чем при использовании стратегии на основе FIFO. Полученные модели позволяют произвести количественные оценки времени ожидания процессов, обращающихся к общему ресурсу через посредство семафора. Модели могут быть использованы при проектировании параллельных операционных систем, где критичным является время выполнения процессов.
Список литературы
- Таненбаум Э. Современные операционные системы. - СПб.: Питер, 2004. - 1040 с.
- Основы теории вычислительных систем / под ред. С.А. Майорова. - М.: Высшая школа, 1978. - 408 с.