ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
5 июля
149359 Топик полностью
Алексей Мусин (26.02.2009 12:02, просмотров: 200) ответил testerplus на Статья по RTOS OSA
Небольшой комент 
В качестве примера можно привести использование счетного семафора в качестве счетчика цикла. Он, конечно, может применяться в этих целях, принципами ОСРВ это не возбраняется, но здравый смысл должен говорить за неэффективность такого подхода. Сравните два приведенных ниже фрагмента кода:
OS_Csem_SetValue(csem, 10); do { /*...*/ OS_Csem_Accept(csem); } while (OS_Csem_Check(scem)); i = 10; do { /*...*/ } while (--i);
Здесь очевидно злоупотребление сервисами ОС. Возможно, этот пример кажется утрированным, тем не менее, это фрагмент реальной программы.
Далеко не всегда. Например, внутри цикла выполняется что-то длительное, и нам надо регулярно отдавать управление ядру, чтобы не пропустить важное событие, которое может ожидать более приоритетная задача. Для того и вызывается сервис ОС. Код ОС не смотрел, наверное там есть что-то типа yield (), и лучше использовать его внутри цикла №2, но и первый вариант законен.