На прошлом уроке мы уже работали с семафорами, но это были двоичные семафоры. Теперь на повестке дня семафоры счётные. Двоичные семафоры от счётных практически не отличаются ничем, только количество элементов в них всегда равно одному, а в счётных — более одного. Счётные семафоры как правило требуются тогда, когда либо надо подсчитать несколько событий из различных задач или прерываний, либо когда двоичные не успевают срабатывать в том случае, когда прерывания от одного устройства происходят со слишком большой частотой и задача-обработчик, в которую отдаётся семафор, не успевает перейти в блокированное состояние по завершении обработки предыдущего прерывания, а сразу же займётся обслуживанием следующего. Только это всё теоретическая информация. На самом деле в обычной жизни счётные семафоры применяются и в других случаях, не обязательно для синхронизации векторов прерываний с обслуживающими задачами. И сегодня мы это увидим на практике. Для создания счётного семафора применяется вот та