Цитата Сообщение от Titus Посмотреть сообщение
Нет, тормозов нет)
Когда какой-либо процесс дает запрос на VIRQ, вызывается подпрограмма ВПО, которая добавляет этот запрос в специальную табличку (это делается программно).
Далее, как только в USER-процессе будут разрешены прерывания, аппаратный контроллер VIRQ сразу даст прерывания и подсунет вектор, который он вычислит из этой таблички. Затем он уберет вектор из таблички и сдвинет очередь. Если в табличке остались запросы на прерывания по другим векторам, то при следующем разрешении прерываний, этот контроллер выдаст прерывание по следующему вектору из таблички, который был в очереди. И т.д.
Так вектор из этой таблички берет какой-то аппаратный контроллер? Да ещё анализирует её и двигает?