ЖУРНАЛ СТА 2/2012

● 1,5 мкс (максимум 26,3 и 13,5 мкс) для Beagle-XM Board. Время захвата и освобождения семафора, не использующе- гося другими потоками, невелико и составляет в среднем для тех же платформ соответственно 0,5/1,2/2,5 мкс. В следующем тесте ставилась задача выяснить, каким обра- зом количество заблокированных потоков влияет на время за- хвата и освобождения семафора. В случае когда на семафоре заблокировано несколько потоков, его захват или освобожде- ние вызывает перепланирование, то есть такой тест отвечает на вопрос, сколько времени тратит ОС на перепланирование. В тесте создаётся 128 потоков с различными приоритетами, приоритет потока, создающего другие потоки, ниже, чем у создаваемого. Когда созданный поток получает управление, он пытается захватить семафор, но тот уже занят, поток бло- кируется, и управление получает создающий поток. Время от попытки захвата семафора до получения управления создаю- щим потоком в этом тесте называется временем попытки за- хвата семафора, это время включает задержку переключения между потоками. После того как создан последний поток, создающий поток начинает освобождать семафор. Время от момента освобожде- ния семафора до получения управления потоком, заблокиро- ванным на семафоре с высшим приоритетом, называется вре- менем освобождения семафора (в этом случае это время также будет включать задержку переключения между потоками). Как показывают результаты тестов, время освобождения се- мафора не зависит от количества заблокированных на нем по- токов, что безусловно хорошо. Компьютер на базе Pentium 200 MMX Процессорный модуль Advantech SOM-6760 на базе Intel Atom Процессорная плата Beagle-XM Board (ARM Cortex A8) В РЕМЯ СОЗДАНИЯ , ЗАХВАТА И УДАЛЕНИЯ МЬЮТЕКСОВ Взаимно исключающий семафор – мьютекс можно назвать двоичным семафором, но его поведение отличается от сема- форов. Мьютекс имеет концепцию захвата владельцем и в от- личие от семафоров может использоваться для предотвраще- ния инверсии приоритетов. Время захвата и освобождения мьютекса единственным по- током, то есть без конкуренции за мьютекс, очень мало и в случае с Intel Atom и Beagle-XM Board находится на уровне погрешности измерений. Это достигается за счёт поддержки атомарных операций и отсутствия необходимости в полно- ценном системном вызове. Компьютер на базе Pentium 200 MMX Процессорный модуль Advantech SOM-6760 на базе Intel Atom Процессорная плата BeagleXM Board (ARM Cortex A8) В следующем тесте запрос и освобождение мьютекса про- исходили в разных потоках. Высокоприоритетный поток, ожидающий мьютекс, находится в заблокированном состоя- нии, низкоприоритетный поток освобождает мьютекс. Время захвата мьютекса в этом случае измеряется от момента запро- са мьютекса до момента получения управления потоком, вла- деющим мьютексом. Также перед освобождением мьютекса низкоприоритетным потоком дополнительный поток со средним приоритетом на- ходится в готовом к исполнению состоянии, однако он не по- лучает управление, поскольку низкоприоритетный поток, владеющий мьютексом, перед освобождением мьютекса на- следует высокий приоритет потока, ожидающего мьютекс. Время освобождения мьютекса измеряется от момента за- проса на освобождение мьютекса до момента получения управления потоком, ожидающим мьютекс. В обоих случаях полученный результат включает в себя за- держку переключения между потоками. Компьютер на базе Pentium 200 MMX Процессорный модуль Advantech SOM-6760 на базе Intel Atom Процессорная плата BeagleXM Board (ARM Cortex A8) О БРАБОТКА ПРЕРЫВАНИЙ Обработка прерываний является ключевой частью систем реального времени, поэтому крайне важно, чтобы задержки при их обработке были минимальными. При возникновении прерывания микроядро сохраняет контекст выполняющегося потока и после идентификации прерывания передаёт управление обработчику прерывания. 84 СТА 2/2012 П РОГ РАММНОЕ ОБ Е СП Е Ч Е НИЕ / СИС Т ЕМЫ Р Е АЛ Ь НОГО В Р ЕМЕ НИ www.cta.ru Операция Среднее время, мкс Максимальное время, мкс Минимальное время, мкс Попытка захвата семафора 12,7 37,6 10,2 Освобождение семафора 12,1 138 7,8 Операция Среднее время, мкс Максимальное время, мкс Минимальное время, мкс Попытка захвата семафора 1,4 12,8 1,3 Освобождение семафора 1,3 12 1 Операция Среднее время, мкс Максимальное время, мкс Минимальное время, мкс Попытка захвата семафора 3,8 62,3 2,2 Освобождение семафора 3,7 28,5 2,3 Процедура Среднее время, мкс Максимальное время, мкс Минимальное время, мкс Захват мьютекса 0,6 8,8 0,5 Освобождение мьютекса 0,8 14,3 0,7 Процедура Среднее время, мкс Максимальное время, мкс Минимальное время, мкс Захват мьютекса 0,1 2,5 <0,1 Освобождение мьютекса 0,1 2,5 <0,1 Процедура Среднее время, мкс Максимальное время, мкс Минимальное время, мкс Захват мьютекса 0,2 3,6 0,2 Освобождение мьютекса 0,2 3,2 0,2 Процедура Среднее время, мкс Максимальное время, мкс Минимальное время, мкс Захват мьютекса 6,6 23,7 6,1 Освобождение мьютекса 9,4 33,1 9,1 Процедура Среднее время, мкс Максимальное время, мкс Минимальное время, мкс Захват мьютекса 0,9 4,2 0,8 Освобождение мьютекса 1,2 5,3 1,1 Процедура Среднее время, мкс Максимальное время, мкс Минимальное время, мкс Захват мьютекса 2,2 7.2 2,1 Освобождение мьютекса 3,3 13,5 3,2 © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy