[an error occurred while processing this directive]
|
Мне кажется семафор (флаг, указатель,...) должен состоять из 2 частей (слов) - одна (одно) модифицируется только фоном, другая(ое) прерыванием, анализируются обеими, а может обоими. Я об этом уже писал, только обозвал там указателем и отнес к цикл. буферу.
Может быть даже на каждый буфер по такой паре флагов.
Фоновая перед анализом может создать копию флага оперативной (1 команда) и анализировать копию, а оперативной и так не никто не может изменить флаг фоновой. Флаги должны видимо содержать информацию не только типа буфер готов/не готов, но и наверное какой-то условный номер таблички (буфера). Вам безусловно виднее, но по моему какая-то экзотика с невозможностью запрещения конкретного прерывания на короткое время, но это к слову. Под словом асинхронный понимается нерегулярный, с меняющейся скоростью, входной поток? Мне кажется нужно его анализировать - максим. временной интервал в течении к-го данные валятся с максим. скоростью, чтобы определить размеры буферов и/или их число.
E-mail: info@telesys.ru